{ "cells": [ { "cell_type": "markdown", "id": "d52e464a3b45c1ba", "metadata": {}, "source": [ "# Read CMIP-PPE data and emulate with Gaussian Processor" ] }, { "cell_type": "markdown", "id": "7f45a45c-df17-4238-b264-8b7a9aec1953", "metadata": {}, "source": [ "\n", "**Adjusted for the eScience course from Duncan Watson-Parris' example here: [gist.github.com/duncanwp](https://gist.github.com/duncanwp/89175a17b7221e4d3639765621c7f7f9)**" ] }, { "cell_type": "markdown", "id": "b58e60b8-51f6-4034-8bf3-526d5da67751", "metadata": {}, "source": [ "You have to use the env:ml-notebook to run this example. " ] }, { "cell_type": "code", "execution_count": 31, "id": "d98ac0ce-2f20-4e3d-8620-450325c76c25", "metadata": { "tags": [] }, "outputs": [], "source": [ "import xarray as xr\n", "import numpy as np\n", "import pandas as pd\n", "from esem import gp_model\n", "from esem.utils import validation_plot, get_param_mask\n", "from pathlib import Path\n", "xr.set_options(display_style='html')\n", "import intake\n", "import cftime\n", "import matplotlib.pyplot as plt\n", "import cartopy.crs as ccrs\n", "import datetime\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 32, "id": "82ad6e05-9c2c-4c63-bc19-91eedd386cfa", "metadata": {}, "outputs": [], "source": [ "def global_mean(ds):\n", " weights = np.cos(np.deg2rad(ds.lat))\n", " return ds.weighted(weights).mean(['lat', 'lon'])\n", "\n", "def get_ensemble_member(ds):\n", " fname = ds.encoding['source']\n", " member = int(fname.split('.')[-4])\n", " return ds.assign_coords(member=member).expand_dims('member')" ] }, { "cell_type": "markdown", "id": "fe2babd9-e578-4f7e-84e7-0b663f382b5c", "metadata": {}, "source": [ "## Open the overview over the parameters in the CAM6 CESM PPE" ] }, { "cell_type": "code", "execution_count": 33, "id": "92417e17-40ad-4f5b-82fb-3eb2f7939743", "metadata": {}, "outputs": [], "source": [ "data_path = Path('~/shared-craas1-ns9989k-ns9560k/CAM6_CESM_PPE/')\n", "\n", "params = (xr.open_dataset(data_path / \"parameter_262_w_control.nc\")\n", " .to_pandas()\n", " .drop(columns = ['Sample_nmb'])\n", " )\n" ] }, { "cell_type": "markdown", "id": "ad02937f-4434-47c3-b722-7b4fd03bc5c5", "metadata": {}, "source": [ "### Open CMIP6 online catalog" ] }, { "cell_type": "code", "execution_count": 34, "id": "263acb2b-8f49-48ed-acc7-072f91c4edfb", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
cesm-ppe catalog with 2 dataset(s) from 32571 asset(s):
\n", " | unique | \n", "
---|---|
experiment | \n", "1 | \n", "
ensemble | \n", "262 | \n", "
frequency | \n", "2 | \n", "
variable | \n", "124 | \n", "
units | \n", "27 | \n", "
long_name | \n", "124 | \n", "
vertical_levels | \n", "3 | \n", "
start_time | \n", "2 | \n", "
end_time | \n", "3 | \n", "
time_range | \n", "3 | \n", "
path | \n", "32571 | \n", "
derived_variable | \n", "0 | \n", "
\n", " | experiment | \n", "ensemble | \n", "frequency | \n", "variable | \n", "units | \n", "long_name | \n", "vertical_levels | \n", "start_time | \n", "end_time | \n", "time_range | \n", "path | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "present-day | \n", "0.0 | \n", "monthly | \n", "SWCF | \n", "W/m2 | \n", "Shortwave cloud forcing | \n", "1.0 | \n", "0001-01-16 | \n", "0003-12-16 | \n", "0001-01-16-0003-12-16 | \n", "/mnt/craas1-ns9989k-ns9560k/CAM6_CESM_PPE/PD/m... | \n", "
1 | \n", "present-day | \n", "1.0 | \n", "monthly | \n", "SWCF | \n", "W/m2 | \n", "Shortwave cloud forcing | \n", "1.0 | \n", "0001-01-16 | \n", "0003-12-16 | \n", "0001-01-16-0003-12-16 | \n", "/mnt/craas1-ns9989k-ns9560k/CAM6_CESM_PPE/PD/m... | \n", "
2 | \n", "present-day | \n", "2.0 | \n", "monthly | \n", "SWCF | \n", "W/m2 | \n", "Shortwave cloud forcing | \n", "1.0 | \n", "0001-01-16 | \n", "0003-12-16 | \n", "0001-01-16-0003-12-16 | \n", "/mnt/craas1-ns9989k-ns9560k/CAM6_CESM_PPE/PD/m... | \n", "
3 | \n", "present-day | \n", "3.0 | \n", "monthly | \n", "SWCF | \n", "W/m2 | \n", "Shortwave cloud forcing | \n", "1.0 | \n", "0001-01-16 | \n", "0003-12-16 | \n", "0001-01-16-0003-12-16 | \n", "/mnt/craas1-ns9989k-ns9560k/CAM6_CESM_PPE/PD/m... | \n", "
4 | \n", "present-day | \n", "4.0 | \n", "monthly | \n", "SWCF | \n", "W/m2 | \n", "Shortwave cloud forcing | \n", "1.0 | \n", "0001-01-16 | \n", "0003-12-16 | \n", "0001-01-16-0003-12-16 | \n", "/mnt/craas1-ns9989k-ns9560k/CAM6_CESM_PPE/PD/m... | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
257 | \n", "present-day | \n", "258.0 | \n", "monthly | \n", "SWCF | \n", "W/m2 | \n", "Shortwave cloud forcing | \n", "1.0 | \n", "0001-01-16 | \n", "0003-12-16 | \n", "0001-01-16-0003-12-16 | \n", "/mnt/craas1-ns9989k-ns9560k/CAM6_CESM_PPE/PD/m... | \n", "
258 | \n", "present-day | \n", "259.0 | \n", "monthly | \n", "SWCF | \n", "W/m2 | \n", "Shortwave cloud forcing | \n", "1.0 | \n", "0001-01-16 | \n", "0003-12-16 | \n", "0001-01-16-0003-12-16 | \n", "/mnt/craas1-ns9989k-ns9560k/CAM6_CESM_PPE/PD/m... | \n", "
259 | \n", "present-day | \n", "260.0 | \n", "monthly | \n", "SWCF | \n", "W/m2 | \n", "Shortwave cloud forcing | \n", "1.0 | \n", "0001-01-16 | \n", "0003-12-16 | \n", "0001-01-16-0003-12-16 | \n", "/mnt/craas1-ns9989k-ns9560k/CAM6_CESM_PPE/PD/m... | \n", "
260 | \n", "present-day | \n", "261.0 | \n", "monthly | \n", "SWCF | \n", "W/m2 | \n", "Shortwave cloud forcing | \n", "1.0 | \n", "0001-01-16 | \n", "0003-12-16 | \n", "0001-01-16-0003-12-16 | \n", "/mnt/craas1-ns9989k-ns9560k/CAM6_CESM_PPE/PD/m... | \n", "
261 | \n", "present-day | \n", "262.0 | \n", "monthly | \n", "SWCF | \n", "W/m2 | \n", "Shortwave cloud forcing | \n", "1.0 | \n", "0001-01-16 | \n", "0003-12-16 | \n", "0001-01-16-0003-12-16 | \n", "/mnt/craas1-ns9989k-ns9560k/CAM6_CESM_PPE/PD/m... | \n", "
262 rows × 11 columns
\n", "<xarray.Dataset> Size: 2GB\n", "Dimensions: (lat: 192, lon: 288, time: 36, ensemble: 262)\n", "Coordinates:\n", " * lat (lat) float64 2kB -90.0 -89.06 -88.12 -87.17 ... 88.12 89.06 90.0\n", " * lon (lon) float64 2kB 0.0 1.25 2.5 3.75 ... 355.0 356.2 357.5 358.8\n", " * time (time) object 288B 0001-01-16 12:00:00 ... 0003-12-16 12:00:00\n", " * ensemble (ensemble) float64 2kB 0.0 1.0 2.0 3.0 ... 259.0 260.0 261.0 262.0\n", "Data variables:\n", " SWCF (ensemble, time, lat, lon) float32 2GB dask.array<chunksize=(1, 36, 192, 288), meta=np.ndarray>\n", "Attributes:\n", " intake_esm_vars: ['SWCF']\n", " intake_esm_attrs:experiment: present-day\n", " intake_esm_attrs:frequency: monthly\n", " intake_esm_attrs:variable: SWCF\n", " intake_esm_attrs:units: W/m2\n", " intake_esm_attrs:long_name: Shortwave cloud forcing\n", " intake_esm_attrs:vertical_levels: 1.0\n", " intake_esm_attrs:start_time: 0001-01-16\n", " intake_esm_attrs:end_time: 0003-12-16\n", " intake_esm_attrs:time_range: 0001-01-16-0003-12-16\n", " intake_esm_attrs:_data_format_: netcdf\n", " intake_esm_dataset_key: present-day.monthly
\n", " | micro_mg_autocon_nd_exp | \n", "micro_mg_dcs | \n", "cldfrc_dp1 | \n", "cldfrc_dp2 | \n", "clubb_C6thlb | \n", "clubb_C8 | \n", "clubb_c1 | \n", "clubb_c11 | \n", "clubb_c14 | \n", "dust_emis_fact | \n", "... | \n", "micro_mg_berg_eff_factor | \n", "micro_mg_homog_size | \n", "micro_mg_iaccr_factor | \n", "micro_mg_vtrmi_factor | \n", "microp_aero_wsub_scale | \n", "microp_aero_wsubi_scale | \n", "seasalt_emis_scale | \n", "zmconv_capelmt | \n", "zmconv_ke | \n", "zmconv_tiedke_add | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nmb_sim | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
25 | \n", "0.971500 | \n", "0.805847 | \n", "0.206424 | \n", "0.671471 | \n", "0.684229 | \n", "0.793950 | \n", "0.779754 | \n", "0.227661 | \n", "0.300534 | \n", "0.974161 | \n", "... | \n", "0.106340 | \n", "0.556251 | \n", "0.469144 | \n", "0.505458 | \n", "0.931798 | \n", "0.049484 | \n", "0.955314 | \n", "0.074489 | \n", "0.798951 | \n", "0.634364 | \n", "
26 | \n", "0.649866 | \n", "0.894649 | \n", "0.618148 | \n", "0.938361 | \n", "0.518324 | \n", "0.538249 | \n", "0.665506 | \n", "0.812990 | \n", "0.567041 | \n", "0.865573 | \n", "... | \n", "0.032305 | \n", "0.301909 | \n", "0.499515 | \n", "0.088459 | \n", "0.731500 | \n", "0.092761 | \n", "0.432079 | \n", "0.058586 | \n", "0.084965 | \n", "0.833772 | \n", "
27 | \n", "0.703768 | \n", "0.767592 | \n", "0.051199 | \n", "0.348967 | \n", "0.086444 | \n", "0.549257 | \n", "0.273296 | \n", "0.979376 | \n", "0.715680 | \n", "0.107133 | \n", "... | \n", "0.783043 | \n", "0.644865 | \n", "0.811843 | \n", "0.905836 | \n", "0.991289 | \n", "0.268722 | \n", "0.468469 | \n", "0.823717 | \n", "0.698678 | \n", "0.404756 | \n", "
28 | \n", "0.948312 | \n", "0.000000 | \n", "0.888282 | \n", "0.481579 | \n", "0.058440 | \n", "0.964224 | \n", "0.379381 | \n", "0.530253 | \n", "0.069777 | \n", "0.730504 | \n", "... | \n", "0.756368 | \n", "0.749765 | \n", "0.772850 | \n", "0.655938 | \n", "0.489364 | \n", "0.415544 | \n", "0.174367 | \n", "0.469552 | \n", "0.591195 | \n", "0.371451 | \n", "
29 | \n", "0.123560 | \n", "0.365255 | \n", "0.674939 | \n", "0.979595 | \n", "0.072070 | \n", "0.271905 | \n", "0.706585 | \n", "0.654203 | \n", "0.923545 | \n", "0.517474 | \n", "... | \n", "0.887158 | \n", "0.438671 | \n", "0.960535 | \n", "0.433522 | \n", "0.682204 | \n", "0.255607 | \n", "0.757154 | \n", "0.702068 | \n", "0.835647 | \n", "0.854877 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
258 | \n", "0.725604 | \n", "0.924849 | \n", "0.092477 | \n", "0.631673 | \n", "0.705486 | \n", "0.747839 | \n", "0.605231 | \n", "0.586143 | \n", "0.377838 | \n", "0.898157 | \n", "... | \n", "0.357568 | \n", "0.320785 | \n", "0.139384 | \n", "0.989630 | \n", "0.379718 | \n", "0.667079 | \n", "0.751509 | \n", "0.923623 | \n", "0.522542 | \n", "0.081568 | \n", "
259 | \n", "0.633606 | \n", "0.341112 | \n", "0.076788 | \n", "0.264890 | \n", "0.977408 | \n", "0.668325 | \n", "0.017842 | \n", "0.878602 | \n", "0.976971 | \n", "0.009132 | \n", "... | \n", "0.971503 | \n", "0.063019 | \n", "0.132357 | \n", "0.034985 | \n", "0.057183 | \n", "0.494946 | \n", "0.397352 | \n", "0.818635 | \n", "0.491236 | \n", "0.056177 | \n", "
260 | \n", "0.619860 | \n", "0.568149 | \n", "0.765996 | \n", "0.915039 | \n", "0.338742 | \n", "0.983273 | \n", "0.243526 | \n", "0.099371 | \n", "0.314178 | \n", "0.179294 | \n", "... | \n", "0.693411 | \n", "0.448854 | \n", "0.205011 | \n", "0.371056 | \n", "0.273651 | \n", "0.185371 | \n", "0.772156 | \n", "0.323095 | \n", "0.959486 | \n", "0.484692 | \n", "
261 | \n", "0.992654 | \n", "0.126066 | \n", "0.255441 | \n", "0.698665 | \n", "0.249564 | \n", "0.683599 | \n", "0.718731 | \n", "0.917675 | \n", "0.627753 | \n", "0.204757 | \n", "... | \n", "0.416335 | \n", "0.667422 | \n", "0.226351 | \n", "0.178084 | \n", "0.944702 | \n", "0.452394 | \n", "0.803122 | \n", "0.049163 | \n", "0.247609 | \n", "0.997869 | \n", "
262 | \n", "0.297873 | \n", "0.868720 | \n", "0.830021 | \n", "0.961661 | \n", "0.997973 | \n", "0.375101 | \n", "0.032601 | \n", "0.586763 | \n", "0.050706 | \n", "0.727236 | \n", "... | \n", "0.159003 | \n", "0.856063 | \n", "0.925182 | \n", "0.108261 | \n", "0.105863 | \n", "0.560436 | \n", "0.720056 | \n", "0.649758 | \n", "0.205458 | \n", "0.675950 | \n", "
237 rows × 23 columns
\n", "