Skip to content

Commit 0772da9

Browse files
authored
Merge pull request #73 from maresb/fix-notebook
Fix sample_output_analyses notebook
2 parents 28598a2 + ef9ab45 commit 0772da9

File tree

1 file changed

+42
-24
lines changed

1 file changed

+42
-24
lines changed

notebooks/sample_output_analyses.ipynb

Lines changed: 42 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -105,18 +105,23 @@
105105
" output_core_dims=[\n",
106106
" [], [], [], [], []\n",
107107
" ],\n",
108-
" vectorize=True\n",
108+
" vectorize=True,\n",
109+
" keep_attrs=\"drop_conflicts\",\n",
109110
" )\n",
110111
"\n",
111112
" vmax, pmin, ifl, t0, otl = result\n",
112113
" \n",
113-
" out_ds=xr.Dataset({\n",
114-
" 'vmax': vmax, \n",
115-
" 'pmin': pmin,\n",
116-
" 'ifl': ifl,\n",
117-
" 't0': t0,\n",
118-
" 'otl': otl\n",
119-
" })\n",
114+
" out_ds=xr.Dataset(\n",
115+
" {\n",
116+
" 'vmax': vmax, \n",
117+
" 'pmin': pmin,\n",
118+
" 'ifl': ifl,\n",
119+
" 't0': t0,\n",
120+
" 'otl': otl,\n",
121+
" },\n",
122+
" coords=ds.coords,\n",
123+
" attrs=ds.attrs,\n",
124+
" )\n",
120125
" \n",
121126
" # add names and units\n",
122127
" out_ds.vmax.attrs['standard_name'],out_ds.vmax.attrs['units']='Maximum Potential Intensity','m/s'\n",
@@ -286,7 +291,8 @@
286291
" output_core_dims=[\n",
287292
" [],\n",
288293
" ],\n",
289-
" vectorize=True\n",
294+
" vectorize=True,\n",
295+
" keep_attrs=\"drop_conflicts\",\n",
290296
" )\n",
291297
" \n",
292298
" diseq = xr.apply_ufunc(\n",
@@ -299,7 +305,8 @@
299305
" output_core_dims=[\n",
300306
" [],\n",
301307
" ],\n",
302-
" vectorize=True\n",
308+
" vectorize=True,\n",
309+
" keep_attrs=\"drop_conflicts\",\n",
303310
" )\n",
304311
" \n",
305312
" result1 = xr.apply_ufunc(\n",
@@ -312,19 +319,24 @@
312319
" output_core_dims=[\n",
313320
" [], [], [], [],\n",
314321
" ],\n",
315-
" vectorize=True\n",
322+
" vectorize=True,\n",
323+
" keep_attrs=\"drop_conflicts\",\n",
316324
" )\n",
317325
"\n",
318326
" lnpi, lneff, lndiseq, lnCKCD = result1\n",
319327
" \n",
320-
" out_ds = xr.Dataset({\n",
321-
" 'eff': efficiency, \n",
322-
" 'diseq': diseq,\n",
323-
" 'lnpi': lnpi,\n",
324-
" 'lneff': lneff,\n",
325-
" 'lndiseq': lndiseq,\n",
326-
" 'lnCKCD': lnCKCD[0,0,0]\n",
327-
" })\n",
328+
" out_ds = xr.Dataset(\n",
329+
" {\n",
330+
" 'eff': efficiency, \n",
331+
" 'diseq': diseq,\n",
332+
" 'lnpi': lnpi,\n",
333+
" 'lneff': lneff,\n",
334+
" 'lndiseq': lndiseq,\n",
335+
" 'lnCKCD': lnCKCD[0,0,0],\n",
336+
" },\n",
337+
" coords=pi_ds.coords,\n",
338+
" attrs=pi_ds.attrs,\n",
339+
" )\n",
328340
" \n",
329341
" # add names and units (where applicable)\n",
330342
" out_ds.eff.attrs['standard_name'],out_ds.eff.attrs['units']='Tropical Cyclone Efficiency','unitless fraction'\n",
@@ -379,7 +391,10 @@
379391
" 'lneff': diag_ds.lneff,\n",
380392
" 'lndiseq': diag_ds.lndiseq,\n",
381393
" 'lnCKCD': diag_ds.lnCKCD\n",
382-
" })\n",
394+
" },\n",
395+
" coords=diag_ds.coords,\n",
396+
" attrs=diag_ds.attrs,\n",
397+
")\n",
383398
"del pi_ds, ds, diag_ds"
384399
]
385400
},
@@ -703,8 +718,11 @@
703718
" weights = np.cos(np.deg2rad(dat_array.lat))\n",
704719
" \n",
705720
" # find the basin locations in the data structure\n",
706-
" var_slice=dat_array.sel(lon=slice(basin_dict.bounds.values[1,0], basin_dict.bounds.values[1,1]), \\\n",
707-
" lat=slice(basin_dict.bounds.values[0,1], basin_dict.bounds.values[0,0]))\n",
721+
" var_slice=dat_array.sel(\n",
722+
" lon=slice(basin_dict[\"lon_min\"], basin_dict[\"lon_max\"]),\n",
723+
" # Warning: latitude is decreasing from 90 to -90, so the slice is reversed\n",
724+
" lat=slice(basin_dict[\"lat_max\"], basin_dict[\"lat_min\"]),\n",
725+
" )\n",
708726
" \n",
709727
" # take latitude weighted basin average\n",
710728
" basin_mean=var_slice.weighted(weights).mean((\"lon\", \"lat\"))\n",
@@ -766,11 +784,11 @@
766784
"outputs": [],
767785
"source": [
768786
"# define the function to plot the seasonal cycle of a variable\n",
769-
"def plot_pi_seascycle(var_want,meanb,basin_dict):\n",
787+
"def plot_pi_seascycle(var_want,meanb,basins):\n",
770788
" plt.figure()\n",
771789
" mongrid=np.linspace(1,12,12)\n",
772790
" for k in basins.keys():\n",
773-
" plt.plot(mongrid,meanb[var_want][k],lw=4,color=str(basins[k].color.values),label=str(basins[k].shortname.values))\n",
791+
" plt.plot(mongrid,meanb[var_want][k],lw=4,color=str(basins[k][\"color\"]),label=str(basins[k][\"shortname\"]))\n",
774792
" plt.xlim([0.75,12.25])\n",
775793
" plt.xticks(mongrid,labels=monlabels)\n",
776794
" plt.xlabel('Month')\n",

0 commit comments

Comments
 (0)