|
54 | 54 | "import gsw_xarray as gsw\n", |
55 | 55 | "import matplotlib.pyplot as plt\n", |
56 | 56 | "import xarray as xr\n", |
57 | | - "from c3s_eqc_automatic_quality_control import diagnostics, download\n", |
| 57 | + "from c3s_eqc_automatic_quality_control import diagnostics, download, utils\n", |
58 | 58 | "\n", |
59 | 59 | "plt.style.use(\"seaborn-v0_8-notebook\")" |
60 | 60 | ] |
|
92 | 92 | }, |
93 | 93 | "outputs": [], |
94 | 94 | "source": [ |
| 95 | + "# Time\n", |
95 | 96 | "year_start = 2004\n", |
96 | | - "year_stop = 2023" |
| 97 | + "year_stop = 2023\n", |
| 98 | + "\n", |
| 99 | + "# Space\n", |
| 100 | + "lat_slice = slice(-60, 60)\n", |
| 101 | + "lon_slice = slice(-180, 180)" |
97 | 102 | ] |
98 | 103 | }, |
99 | 104 | { |
|
216 | 221 | " return ssl\n", |
217 | 222 | "\n", |
218 | 223 | "\n", |
219 | | - "def compute_ssl(collection_id, request, prefix, **download_kwargs):\n", |
| 224 | + "def compute_ssl(\n", |
| 225 | + " collection_id, request, prefix, lon_slice, lat_slice, **download_kwargs\n", |
| 226 | + "):\n", |
220 | 227 | " ds = download.download_and_transform(\n", |
221 | 228 | " collection_id, request, transform_func=compute_gsw_ds, **download_kwargs\n", |
222 | 229 | " )\n", |
| 230 | + " ds = utils.regionalise(ds, lon_slice=lon_slice, lat_slice=lat_slice)\n", |
223 | 231 | " if prefix == \"\":\n", |
224 | 232 | " rho = ds[\"rho\"]\n", |
225 | 233 | " elif prefix == \"thermo\":\n", |
|
232 | 240 | "\n", |
233 | 241 | "\n", |
234 | 242 | "@cacholote.cacheable\n", |
235 | | - "def compute_ssl_timeseries(collection_id, request, prefix, **download_kwargs):\n", |
236 | | - " ssl = compute_ssl(collection_id, request, prefix, **download_kwargs)\n", |
| 243 | + "def compute_ssl_timeseries(\n", |
| 244 | + " collection_id,\n", |
| 245 | + " request,\n", |
| 246 | + " prefix,\n", |
| 247 | + " lon_slice,\n", |
| 248 | + " lat_slice,\n", |
| 249 | + " **download_kwargs,\n", |
| 250 | + "):\n", |
| 251 | + " ssl = compute_ssl(\n", |
| 252 | + " collection_id,\n", |
| 253 | + " request,\n", |
| 254 | + " prefix,\n", |
| 255 | + " lon_slice=lon_slice,\n", |
| 256 | + " lat_slice=lat_slice,\n", |
| 257 | + " **download_kwargs,\n", |
| 258 | + " )\n", |
237 | 259 | " return diagnostics.spatial_weighted_mean(ssl)" |
238 | 260 | ] |
239 | 261 | }, |
|
273 | 295 | "dataarrays = []\n", |
274 | 296 | "for prefix in [\"\", \"thermo\", \"halo\"]:\n", |
275 | 297 | " name = \"_\".join(([prefix] if prefix else []) + [\"ssl\"])\n", |
276 | | - " da = compute_ssl_timeseries(*request_reanalysis, prefix=prefix, **download_kwargs)\n", |
| 298 | + " print(f\"{name = }\")\n", |
| 299 | + " da = compute_ssl_timeseries(\n", |
| 300 | + " *request_reanalysis,\n", |
| 301 | + " prefix=prefix,\n", |
| 302 | + " lon_slice=lon_slice,\n", |
| 303 | + " lat_slice=lat_slice,\n", |
| 304 | + " **download_kwargs,\n", |
| 305 | + " )\n", |
277 | 306 | " dataarrays.append(da.rename(name))\n", |
278 | 307 | "ds_reanalysis = xr.merge(dataarrays)\n", |
279 | 308 | "\n", |
|
0 commit comments