Skip to content

Commit

Permalink
separate seasons
Browse files Browse the repository at this point in the history
  • Loading branch information
malmans2 committed Jul 19, 2023
1 parent 5c52216 commit 2b53053
Showing 1 changed file with 12 additions and 22 deletions.
34 changes: 12 additions & 22 deletions notebooks/wp4/clima_and_bias_cordex_cmip6_regionalised.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
"year_stop = 2000\n",
"\n",
"# Choose annual or seasonal timeseries\n",
"timeseries = \"JJA\"\n",
"timeseries = \"annual\"\n",
"assert timeseries in (\"annual\", \"DJF\", \"MAM\", \"JJA\", \"SON\")\n",
"\n",
"# Variable\n",
Expand Down Expand Up @@ -260,15 +260,11 @@
"metadata": {},
"outputs": [],
"source": [
"def rechunk(obj):\n",
" return obj.chunk(**{dim: 1 for dim in set(obj.dims) & {\"season\", \"year\"}})\n",
"\n",
"\n",
"def compute_regridded_timeseries(\n",
" ds, year_start, year_stop, annual, grid_out=None, **kwargs\n",
" ds, year_start, year_stop, timeseries, grid_out=None, **kwargs\n",
"):\n",
" # Drop useless data\n",
" if annual:\n",
" if timeseries == \"annual\":\n",
" mask = (ds[\"time\"].dt.year >= year_start) & (ds[\"time\"].dt.year <= year_stop)\n",
" else:\n",
" # Select years (shift -1 to get D(year-1)J(year)F(year))\n",
Expand All @@ -290,11 +286,9 @@
" da = ds[var_name].rename(field)\n",
"\n",
" # Create timeseries\n",
" if annual:\n",
" da = diagnostics.annual_weighted_mean(da)\n",
" else:\n",
" da[\"year\"] = da[\"year\"].astype(int)\n",
" da = da.groupby(\"year\").map(diagnostics.seasonal_weighted_mean)\n",
" da = diagnostics.annual_weighted_mean(da)\n",
" if timeseries != \"annual\":\n",
" da = da.assign_coords(season=timeseries)\n",
"\n",
" # Regid\n",
" if grid_out is not None:\n",
Expand All @@ -311,7 +305,6 @@
" da = da.assign_coords(height=ds[\"height\"] if \"height\" in ds else None)\n",
" else:\n",
" raise ValueError\n",
" da = rechunk(da)\n",
" da.encoding[\"chunksizes\"] = tuple(map(max, da.chunks))\n",
" return da.to_dataset()"
]
Expand All @@ -330,8 +323,7 @@
"metadata": {},
"outputs": [],
"source": [
"annual = timeseries == \"annual\"\n",
"transform_chunks = annual\n",
"transform_chunks = timeseries == \"annual\"\n",
"print(\"Downloading and processing ERA5\")\n",
"ds_era = download.download_and_transform(\n",
" *request_era,\n",
Expand All @@ -341,10 +333,10 @@
" transform_func_kwargs={\n",
" \"year_start\": year_start,\n",
" \"year_stop\": year_stop,\n",
" \"annual\": annual,\n",
" \"timeseries\": timeseries,\n",
" },\n",
").expand_dims(model=[\"ERA5\"])\n",
"ds_era = rechunk(ds_era)\n",
"ds_era = ds_era.chunk(year=chunks.get(\"year\", -1))\n",
"\n",
"datasets = []\n",
"for model in models:\n",
Expand All @@ -360,12 +352,12 @@
" \"grid_out\": ds_era[[\"longitude\", \"latitude\"]],\n",
" \"year_start\": year_start,\n",
" \"year_stop\": year_stop,\n",
" \"annual\": annual,\n",
" \"timeseries\": timeseries,\n",
" \"method\": \"bilinear\",\n",
" \"periodic\": periodic,\n",
" },\n",
" )\n",
" datasets.append(rechunk(ds).expand_dims(model=[model]))\n",
" datasets.append(ds.chunk(year=chunks.get(\"year\", -1)).expand_dims(model=[model]))\n",
"ds_sim = xr.concat(datasets, \"model\")"
]
},
Expand All @@ -391,8 +383,6 @@
" ],\n",
" \"model\",\n",
")\n",
"if timeseries != \"annual\":\n",
" ds_timeseries = ds_timeseries.sel(season=timeseries)\n",
"ds_timeseries = utils.regionalise(\n",
" ds_timeseries, lon_slice=lon_slice, lat_slice=lat_slice\n",
")\n",
Expand All @@ -405,7 +395,7 @@
" transform_func=utils.regionalise,\n",
" transform_func_kwargs={\"lon_slice\": lon_slice, \"lat_slice\": lat_slice},\n",
" )\n",
" da_lsm = ds_lsm[\"lsm\"].squeeze(\"time\", drop=True).compute()\n",
" da_lsm = ds_lsm[\"lsm\"].squeeze(\"time\", drop=True)\n",
" ds = ds.where(da_lsm > 0.5)\n",
"ds = ds.compute()\n",
"with xr.set_options(keep_attrs=True):\n",
Expand Down

0 comments on commit 2b53053

Please sign in to comment.