|
94 | 94 | "metadata": {}, |
95 | 95 | "outputs": [], |
96 | 96 | "source": [ |
97 | | - "def weight_dataset(ds):\n", |
98 | | - " weights = np.abs(np.cos(np.deg2rad(ds[\"latitude\"])))\n", |
99 | | - " return ds.weighted(weights)\n", |
| 97 | + "def weight_dataset(obj):\n", |
| 98 | + " weights = np.abs(np.cos(np.deg2rad(obj[\"latitude\"])))\n", |
| 99 | + " return obj.weighted(weights)\n", |
100 | 100 | "\n", |
101 | 101 | "\n", |
102 | | - "def spatial_weighted_mean(ds, dim=None):\n", |
103 | | - " return weight_dataset(ds).mean(dim, keep_attrs=True)\n", |
| 102 | + "def spatial_weighted_mean(obj, dim=None):\n", |
| 103 | + " return weight_dataset(obj).mean(dim, keep_attrs=True)\n", |
104 | 104 | "\n", |
105 | 105 | "\n", |
106 | | - "def spatial_weighted_std(ds, dim=None):\n", |
107 | | - " return weight_dataset(ds).std(dim, keep_attrs=True)\n", |
| 106 | + "def spatial_weighted_std(obj, dim=None):\n", |
| 107 | + " return weight_dataset(obj).std(dim, keep_attrs=True)\n", |
108 | 108 | "\n", |
109 | 109 | "\n", |
110 | 110 | "def regrid(ds, d_lon, d_lat, lon1=180):\n", |
|
240 | 240 | "id": "15", |
241 | 241 | "metadata": {}, |
242 | 242 | "source": [ |
243 | | - "## Plot yearly mean growth rate" |
| 243 | + "## Heat map" |
244 | 244 | ] |
245 | 245 | }, |
246 | 246 | { |
|
249 | 249 | "id": "16", |
250 | 250 | "metadata": {}, |
251 | 251 | "outputs": [], |
| 252 | + "source": [ |
| 253 | + "with xr.set_options(keep_attrs=True):\n", |
| 254 | + " anomaly = da - spatial_weighted_mean(da)\n", |
| 255 | + "anomaly.attrs[\"long_name\"] = \"Δ\" + anomaly.long_name\n", |
| 256 | + "facet = anomaly.plot(row=\"method\", robust=True, x=\"time\", figsize=(10, 10))\n", |
| 257 | + "for ax in facet.axs.flatten():\n", |
| 258 | + " for label in ax.get_xticklabels():\n", |
| 259 | + " label.set_rotation(90)" |
| 260 | + ] |
| 261 | + }, |
| 262 | + { |
| 263 | + "cell_type": "markdown", |
| 264 | + "id": "17", |
| 265 | + "metadata": {}, |
| 266 | + "source": [ |
| 267 | + "## Plot yearly mean growth rate" |
| 268 | + ] |
| 269 | + }, |
| 270 | + { |
| 271 | + "cell_type": "code", |
| 272 | + "execution_count": null, |
| 273 | + "id": "18", |
| 274 | + "metadata": {}, |
| 275 | + "outputs": [], |
252 | 276 | "source": [ |
253 | 277 | "grouped = da.groupby(\"time.year\")\n", |
254 | 278 | "da_mean = grouped.map(spatial_weighted_mean, dim=[\"time\", \"latitude\"])\n", |
|
0 commit comments