{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from glob import glob\n",
"import xarray as xr\n",
"import cftime\n",
"import nc_time_axis\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"pd.options.display.max_rows = 200\n",
"import intake, intake_esm\n",
"! pip install cmip6_preprocessing\n",
"from cmip6_preprocessing.preprocessing import (correct_units,rename_cmip6)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Functions for preprocessing CMIP6 data "
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"def chunk_time(ds):\n",
" if 'time' in ds.dims:\n",
" ds = ds.chunk({'time':1})\n",
" return ds"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"# Necessary for creating a common time axis for all models\n",
"# We want to create a common time axis so there will be no gaps when plotting the results \n",
"\n",
"def fix_time(ds):\n",
" \"\"\" force calendar to noleap\"\"\"\n",
" import xarray as xr\n",
" \n",
" if \"time\" not in ds.dims:\n",
" return ds\n",
" \n",
" if (\"calendar\" not in ds[\"time\"].attrs): \n",
" ds[\"time\"].attrs.update({\"calendar\": \"noleap\"})\n",
" \n",
" if ds[\"time\"].attrs[\"calendar\"] not in [\"noleap\", \"NOLEAP\", \"365_day\"]:\n",
" ds[\"time\"].attrs.update({\"calendar\": \"noleap\"})\n",
" \n",
" ds = xr.decode_cf(ds)\n",
" return ds"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"# Pass this function for preprocessing thetao data \n",
"def pp_thetao(ds):\n",
" ds = rename_cmip6(ds)\n",
" ds = fix_time(ds)\n",
" ds = correct_units(ds)\n",
" return ds"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"# Pass this function for preprocessing volcello and areacello data\n",
"def pp_volcello(ds):\n",
" ds = rename_cmip6(ds)\n",
" ds = chunk_time(ds)\n",
" ds = fix_time(ds)\n",
" ds = correct_units(ds)\n",
" return ds"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"# Use this function to reconstruct areacello \n",
"def compute_area_regular_grid(ds, Rearth=6378e3):\n",
" \"\"\" compute the cells area on a regular grid \"\"\"\n",
"\n",
" rfac = 2 * np.pi * Rearth / 360\n",
"\n",
" dx1d = rfac * 1 \n",
" dy1d = rfac * 1\n",
"\n",
" dx2d, dy2d = np.meshgrid(dx1d, dy1d)\n",
" _, lat2d = np.meshgrid(ds[\"x\"].values, ds[\"y\"].values)\n",
"\n",
" dx = dx2d * np.cos(2 * np.pi * lat2d / 360)\n",
" dy = dy2d\n",
" area = dx * dy\n",
" return xr.DataArray(area, dims=('y', 'x'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load the catalog with Intake-ESM"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"col_url = \"https://raw.githubusercontent.com/aradhakrishnanGFDL/gfdl-aws-analysis/community/esm-collection-spec-examples/esgf-world.json\""
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
gfdltest catalog with 9266 dataset(s) from 956306 asset(s):
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" unique | \n",
"
\n",
" \n",
" \n",
" \n",
" project | \n",
" 1 | \n",
"
\n",
" \n",
" institute | \n",
" 38 | \n",
"
\n",
" \n",
" model | \n",
" 106 | \n",
"
\n",
" \n",
" experiment_id | \n",
" 217 | \n",
"
\n",
" \n",
" frequency | \n",
" 2 | \n",
"
\n",
" \n",
" modeling_realm | \n",
" 3 | \n",
"
\n",
" \n",
" mip_table | \n",
" 37 | \n",
"
\n",
" \n",
" ensemble_member | \n",
" 2725 | \n",
"
\n",
" \n",
" grid_label | \n",
" 13 | \n",
"
\n",
" \n",
" variable | \n",
" 738 | \n",
"
\n",
" \n",
" temporal subset | \n",
" 25151 | \n",
"
\n",
" \n",
" version | \n",
" 510 | \n",
"
\n",
" \n",
" path | \n",
" 956306 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"col = intake.open_esm_datastore(col_url)\n",
"esmcol_data = col.esmcol_data\n",
"col"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [],
"source": [
"#def latest_version(ds):\n",
"# \"\"\"filters latest DRS versions of datasets only\"\"\"\n",
"# ds=ds.df.sort_values(['version'],ascending=False).groupby(['temporal subset','model','mip_table',\n",
"# 'institute','variable','ensemble_member',\n",
"# 'grid_label','experiment_id'],as_index=False)#.head(1)\n",
"# return ds\n",
"\n",
"def latest_version(cat):\n",
" \"\"\"\n",
" input\n",
" cat: esmdatastore \n",
" output\n",
" esmdatastore with latest DRS versions\n",
" \"\"\"\n",
" \n",
" latest_cat = cat.df.sort_values(by=['version','path']).drop_duplicates(['temporal subset','model','mip_table',\n",
" 'institute','variable','ensemble_member',\n",
" 'grid_label','experiment_id'],keep='last')\n",
" return latest_cat"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/srv/conda/envs/notebook/lib/python3.8/site-packages/intake_esm/search.py:102: UserWarning: Query returned zero results.\n",
" warn(message)\n"
]
}
],
"source": [
"\n",
"# gn_models = ['ACCESS-ESM1-5','BCC-CSM2-MR','BCC-ESM1','CAMS-CSM1-0','EC-Earth3',\n",
"# 'EC-Earth3-Veg','FIO-ESM-2-0','GISS-E2-1-G','GISS-E2-1-G-CC','NESM3','ACCESS-CM2','CIESM','SAM0-UNICON','MPI-ESM1-2-HR',\n",
"# 'CanESM5','FGOALS-f3-L','IPSL-CM6A-LR','MIROC6','MPI-ESM-1-2-HAM','MPI-ESM1-2-LR']\n",
"gn_models = ['CESM2', 'CESM2-FV2', 'CESM2-WACCM-FV2','IPSL-CM6A-LR','MPI-ESM1-2-HR','MPI-ESM1-2-LR','MIROC6','CanESM5',\n",
" 'MPI-ESM-1-2-HAM','MRI-ESM2-0','SAM0-UNICON']\n",
"\n",
"cat_T_gn = col.search(experiment_id=['historical'],\n",
" mip_table='Omon',\n",
" ensemble_member=[\"r1i1p1f1\"],\n",
" model=gn_models,\n",
" grid_label=['gn'],\n",
" variable=[\"thetao\"])\n",
"\n",
"cat_VOmon_gn = col.search(experiment_id=['historical'],\n",
" mip_table=['Omon'],\n",
" ensemble_member=\"r1i1p1f1\",\n",
" model=gn_models,\n",
" grid_label='gn',\n",
" variable=[\"volcello\"])\n",
"\n",
"cat_VOfx_gn = col.search(experiment_id=['historical'],\n",
" mip_table=['Ofx'],\n",
" ensemble_member=\"r1i1p1f1\",\n",
" model=gn_models,\n",
" grid_label='gn',\n",
" variable=[\"volcello\"])\n",
"\n",
"\n",
"cat_A_gn = col.search(experiment_id=['historical'],\n",
" mip_table=['Omon','Ofx'],\n",
" ensemble_member=\"r1i1p1f1\",\n",
" model=gn_models,\n",
" grid_label='gn',\n",
" variable=['areacello'])"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" project | \n",
" institute | \n",
" model | \n",
" experiment_id | \n",
" frequency | \n",
" modeling_realm | \n",
" mip_table | \n",
" ensemble_member | \n",
" grid_label | \n",
" variable | \n",
" temporal subset | \n",
" version | \n",
" path | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" CMIP6 | \n",
" MPI-M | \n",
" MPI-ESM1-2-HR | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20190710 | \n",
" s3://esgf-world/CMIP6/CMIP/MPI-M/MPI-ESM1-2-HR... | \n",
"
\n",
" \n",
" 1 | \n",
" CMIP6 | \n",
" NCAR | \n",
" CESM2-FV2 | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20191120 | \n",
" s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-FV2/hist... | \n",
"
\n",
" \n",
" 2 | \n",
" CMIP6 | \n",
" NCAR | \n",
" CESM2-WACCM-FV2 | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20191120 | \n",
" s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-WACCM-FV... | \n",
"
\n",
" \n",
" 3 | \n",
" CMIP6 | \n",
" NCAR | \n",
" CESM2 | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20190308 | \n",
" s3://esgf-world/CMIP6/CMIP/NCAR/CESM2/historic... | \n",
"
\n",
" \n",
" 4 | \n",
" CMIP6 | \n",
" SNU | \n",
" SAM0-UNICON | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20190323 | \n",
" s3://esgf-world/CMIP6/CMIP/SNU/SAM0-UNICON/his... | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" project institute model experiment_id frequency modeling_realm \\\n",
"0 CMIP6 MPI-M MPI-ESM1-2-HR historical NaN NaN \n",
"1 CMIP6 NCAR CESM2-FV2 historical NaN NaN \n",
"2 CMIP6 NCAR CESM2-WACCM-FV2 historical NaN NaN \n",
"3 CMIP6 NCAR CESM2 historical NaN NaN \n",
"4 CMIP6 SNU SAM0-UNICON historical NaN NaN \n",
"\n",
" mip_table ensemble_member grid_label variable temporal subset version \\\n",
"0 Ofx r1i1p1f1 gn volcello NaN v20190710 \n",
"1 Ofx r1i1p1f1 gn volcello NaN v20191120 \n",
"2 Ofx r1i1p1f1 gn volcello NaN v20191120 \n",
"3 Ofx r1i1p1f1 gn volcello NaN v20190308 \n",
"4 Ofx r1i1p1f1 gn volcello NaN v20190323 \n",
"\n",
" path \n",
"0 s3://esgf-world/CMIP6/CMIP/MPI-M/MPI-ESM1-2-HR... \n",
"1 s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-FV2/hist... \n",
"2 s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-WACCM-FV... \n",
"3 s3://esgf-world/CMIP6/CMIP/NCAR/CESM2/historic... \n",
"4 s3://esgf-world/CMIP6/CMIP/SNU/SAM0-UNICON/his... "
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cat_VOfx_gn.df"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [],
"source": [
"cat_T_gn_latest = latest_version(cat_T_gn)\n",
"cat_VOmon_gn_latest = latest_version(cat_VOmon_gn)\n",
"cat_VOfx_gn_latest = latest_version(cat_VOfx_gn)\n",
"cat_A_gn_latest = latest_version(cat_A_gn)"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" project | \n",
" institute | \n",
" model | \n",
" experiment_id | \n",
" frequency | \n",
" modeling_realm | \n",
" mip_table | \n",
" ensemble_member | \n",
" grid_label | \n",
" variable | \n",
" temporal subset | \n",
" version | \n",
" path | \n",
"
\n",
" \n",
" \n",
" \n",
" 3 | \n",
" CMIP6 | \n",
" NCAR | \n",
" CESM2 | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20190308 | \n",
" s3://esgf-world/CMIP6/CMIP/NCAR/CESM2/historic... | \n",
"
\n",
" \n",
" 4 | \n",
" CMIP6 | \n",
" SNU | \n",
" SAM0-UNICON | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20190323 | \n",
" s3://esgf-world/CMIP6/CMIP/SNU/SAM0-UNICON/his... | \n",
"
\n",
" \n",
" 0 | \n",
" CMIP6 | \n",
" MPI-M | \n",
" MPI-ESM1-2-HR | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20190710 | \n",
" s3://esgf-world/CMIP6/CMIP/MPI-M/MPI-ESM1-2-HR... | \n",
"
\n",
" \n",
" 1 | \n",
" CMIP6 | \n",
" NCAR | \n",
" CESM2-FV2 | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20191120 | \n",
" s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-FV2/hist... | \n",
"
\n",
" \n",
" 2 | \n",
" CMIP6 | \n",
" NCAR | \n",
" CESM2-WACCM-FV2 | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20191120 | \n",
" s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-WACCM-FV... | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" project institute model experiment_id frequency modeling_realm \\\n",
"3 CMIP6 NCAR CESM2 historical NaN NaN \n",
"4 CMIP6 SNU SAM0-UNICON historical NaN NaN \n",
"0 CMIP6 MPI-M MPI-ESM1-2-HR historical NaN NaN \n",
"1 CMIP6 NCAR CESM2-FV2 historical NaN NaN \n",
"2 CMIP6 NCAR CESM2-WACCM-FV2 historical NaN NaN \n",
"\n",
" mip_table ensemble_member grid_label variable temporal subset version \\\n",
"3 Ofx r1i1p1f1 gn volcello NaN v20190308 \n",
"4 Ofx r1i1p1f1 gn volcello NaN v20190323 \n",
"0 Ofx r1i1p1f1 gn volcello NaN v20190710 \n",
"1 Ofx r1i1p1f1 gn volcello NaN v20191120 \n",
"2 Ofx r1i1p1f1 gn volcello NaN v20191120 \n",
"\n",
" path \n",
"3 s3://esgf-world/CMIP6/CMIP/NCAR/CESM2/historic... \n",
"4 s3://esgf-world/CMIP6/CMIP/SNU/SAM0-UNICON/his... \n",
"0 s3://esgf-world/CMIP6/CMIP/MPI-M/MPI-ESM1-2-HR... \n",
"1 s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-FV2/hist... \n",
"2 s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-WACCM-FV... "
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cat_VOfx_gn_latest.head()"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" project | \n",
" institute | \n",
" model | \n",
" experiment_id | \n",
" frequency | \n",
" modeling_realm | \n",
" mip_table | \n",
" ensemble_member | \n",
" grid_label | \n",
" variable | \n",
" temporal subset | \n",
" version | \n",
" path | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" CMIP6 | \n",
" MPI-M | \n",
" MPI-ESM1-2-HR | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20190710 | \n",
" s3://esgf-world/CMIP6/CMIP/MPI-M/MPI-ESM1-2-HR... | \n",
"
\n",
" \n",
" 1 | \n",
" CMIP6 | \n",
" NCAR | \n",
" CESM2-FV2 | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20191120 | \n",
" s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-FV2/hist... | \n",
"
\n",
" \n",
" 2 | \n",
" CMIP6 | \n",
" NCAR | \n",
" CESM2-WACCM-FV2 | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20191120 | \n",
" s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-WACCM-FV... | \n",
"
\n",
" \n",
" 3 | \n",
" CMIP6 | \n",
" NCAR | \n",
" CESM2 | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20190308 | \n",
" s3://esgf-world/CMIP6/CMIP/NCAR/CESM2/historic... | \n",
"
\n",
" \n",
" 4 | \n",
" CMIP6 | \n",
" SNU | \n",
" SAM0-UNICON | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20190323 | \n",
" s3://esgf-world/CMIP6/CMIP/SNU/SAM0-UNICON/his... | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" project institute model experiment_id frequency modeling_realm \\\n",
"0 CMIP6 MPI-M MPI-ESM1-2-HR historical NaN NaN \n",
"1 CMIP6 NCAR CESM2-FV2 historical NaN NaN \n",
"2 CMIP6 NCAR CESM2-WACCM-FV2 historical NaN NaN \n",
"3 CMIP6 NCAR CESM2 historical NaN NaN \n",
"4 CMIP6 SNU SAM0-UNICON historical NaN NaN \n",
"\n",
" mip_table ensemble_member grid_label variable temporal subset version \\\n",
"0 Ofx r1i1p1f1 gn volcello NaN v20190710 \n",
"1 Ofx r1i1p1f1 gn volcello NaN v20191120 \n",
"2 Ofx r1i1p1f1 gn volcello NaN v20191120 \n",
"3 Ofx r1i1p1f1 gn volcello NaN v20190308 \n",
"4 Ofx r1i1p1f1 gn volcello NaN v20190323 \n",
"\n",
" path \n",
"0 s3://esgf-world/CMIP6/CMIP/MPI-M/MPI-ESM1-2-HR... \n",
"1 s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-FV2/hist... \n",
"2 s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-WACCM-FV... \n",
"3 s3://esgf-world/CMIP6/CMIP/NCAR/CESM2/historic... \n",
"4 s3://esgf-world/CMIP6/CMIP/SNU/SAM0-UNICON/his... "
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cat_VOfx_gn.df"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"cat_T_gn = intake.open_esm_datastore(cat_T_gn_latest,esmcol_data=esmcol_data)\n",
"cat_VOmon_gn = intake.open_esm_datastore(cat_VOmon_gn_latest,esmcol_data=esmcol_data)\n",
"cat_VOfx_gn = intake.open_esm_datastore(cat_VOfx_gn_latest,esmcol_data=esmcol_data)\n",
"cat_A_gn = intake.open_esm_datastore(cat_A_gn_latest,esmcol_data=esmcol_data)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" project | \n",
" institute | \n",
" model | \n",
" experiment_id | \n",
" frequency | \n",
" modeling_realm | \n",
" mip_table | \n",
" ensemble_member | \n",
" grid_label | \n",
" variable | \n",
" temporal subset | \n",
" version | \n",
" path | \n",
"
\n",
" \n",
" \n",
" \n",
" 3 | \n",
" CMIP6 | \n",
" NCAR | \n",
" CESM2 | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20190308 | \n",
" s3://esgf-world/CMIP6/CMIP/NCAR/CESM2/historic... | \n",
"
\n",
" \n",
" 4 | \n",
" CMIP6 | \n",
" SNU | \n",
" SAM0-UNICON | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20190323 | \n",
" s3://esgf-world/CMIP6/CMIP/SNU/SAM0-UNICON/his... | \n",
"
\n",
" \n",
" 0 | \n",
" CMIP6 | \n",
" MPI-M | \n",
" MPI-ESM1-2-HR | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20190710 | \n",
" s3://esgf-world/CMIP6/CMIP/MPI-M/MPI-ESM1-2-HR... | \n",
"
\n",
" \n",
" 1 | \n",
" CMIP6 | \n",
" NCAR | \n",
" CESM2-FV2 | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20191120 | \n",
" s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-FV2/hist... | \n",
"
\n",
" \n",
" 2 | \n",
" CMIP6 | \n",
" NCAR | \n",
" CESM2-WACCM-FV2 | \n",
" historical | \n",
" NaN | \n",
" NaN | \n",
" Ofx | \n",
" r1i1p1f1 | \n",
" gn | \n",
" volcello | \n",
" NaN | \n",
" v20191120 | \n",
" s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-WACCM-FV... | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" project institute model experiment_id frequency modeling_realm \\\n",
"3 CMIP6 NCAR CESM2 historical NaN NaN \n",
"4 CMIP6 SNU SAM0-UNICON historical NaN NaN \n",
"0 CMIP6 MPI-M MPI-ESM1-2-HR historical NaN NaN \n",
"1 CMIP6 NCAR CESM2-FV2 historical NaN NaN \n",
"2 CMIP6 NCAR CESM2-WACCM-FV2 historical NaN NaN \n",
"\n",
" mip_table ensemble_member grid_label variable temporal subset version \\\n",
"3 Ofx r1i1p1f1 gn volcello NaN v20190308 \n",
"4 Ofx r1i1p1f1 gn volcello NaN v20190323 \n",
"0 Ofx r1i1p1f1 gn volcello NaN v20190710 \n",
"1 Ofx r1i1p1f1 gn volcello NaN v20191120 \n",
"2 Ofx r1i1p1f1 gn volcello NaN v20191120 \n",
"\n",
" path \n",
"3 s3://esgf-world/CMIP6/CMIP/NCAR/CESM2/historic... \n",
"4 s3://esgf-world/CMIP6/CMIP/SNU/SAM0-UNICON/his... \n",
"0 s3://esgf-world/CMIP6/CMIP/MPI-M/MPI-ESM1-2-HR... \n",
"1 s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-FV2/hist... \n",
"2 s3://esgf-world/CMIP6/CMIP/NCAR/CESM2-WACCM-FV... "
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cat_VOfx_gn_latest"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" project | \n",
" institute | \n",
" model | \n",
" experiment_id | \n",
" frequency | \n",
" modeling_realm | \n",
" mip_table | \n",
" ensemble_member | \n",
" grid_label | \n",
" variable | \n",
" temporal subset | \n",
" path | \n",
"
\n",
" \n",
" version | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" v20190306 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 17 | \n",
" 17 | \n",
"
\n",
" \n",
" v20190429 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 17 | \n",
" 17 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" project institute model experiment_id frequency \\\n",
"version \n",
"v20190306 1 1 1 1 1 \n",
"v20190429 1 1 1 1 1 \n",
"\n",
" modeling_realm mip_table ensemble_member grid_label variable \\\n",
"version \n",
"v20190306 1 1 1 1 1 \n",
"v20190429 1 1 1 1 1 \n",
"\n",
" temporal subset path \n",
"version \n",
"v20190306 17 17 \n",
"v20190429 17 17 "
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"cat_T_gn.df[cat_T_gn.df['model']=='CanESM5'].groupby(['version']).nunique() #one distinct version only, latest one.\n"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" project | \n",
" institute | \n",
" model | \n",
" experiment_id | \n",
" frequency | \n",
" modeling_realm | \n",
" mip_table | \n",
" ensemble_member | \n",
" grid_label | \n",
" variable | \n",
" temporal subset | \n",
" path | \n",
"
\n",
" \n",
" version | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" v20190429 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 17 | \n",
" 17 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" project institute model experiment_id frequency \\\n",
"version \n",
"v20190429 1 1 1 1 1 \n",
"\n",
" modeling_realm mip_table ensemble_member grid_label variable \\\n",
"version \n",
"v20190429 1 1 1 1 1 \n",
"\n",
" temporal subset path \n",
"version \n",
"v20190429 17 17 "
]
},
"execution_count": 82,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cat_T_gn_latest[cat_T_gn_latest['model']=='CanESM5'].groupby(['version']).nunique() #one distinct version only, latest one."
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" project | \n",
" institute | \n",
" experiment_id | \n",
" frequency | \n",
" modeling_realm | \n",
" mip_table | \n",
" ensemble_member | \n",
" grid_label | \n",
" variable | \n",
" temporal subset | \n",
" version | \n",
" path | \n",
"
\n",
" \n",
" model | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" CESM2 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" CESM2-FV2 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" CESM2-WACCM-FV2 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" CanESM5 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 17 | \n",
" 2 | \n",
" 34 | \n",
"
\n",
" \n",
" IPSL-CM6A-LR | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
"
\n",
" \n",
" MIROC6 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 17 | \n",
" 1 | \n",
" 17 | \n",
"
\n",
" \n",
" MPI-ESM-1-2-HAM | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 9 | \n",
" 1 | \n",
" 9 | \n",
"
\n",
" \n",
" MPI-ESM1-2-HR | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 33 | \n",
" 1 | \n",
" 33 | \n",
"
\n",
" \n",
" MPI-ESM1-2-LR | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 9 | \n",
" 1 | \n",
" 9 | \n",
"
\n",
" \n",
" MRI-ESM2-0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" 1 | \n",
" 3 | \n",
"
\n",
" \n",
" SAM0-UNICON | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 17 | \n",
" 1 | \n",
" 17 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" project institute experiment_id frequency modeling_realm \\\n",
"model \n",
"CESM2 1 1 1 1 1 \n",
"CESM2-FV2 1 1 1 1 1 \n",
"CESM2-WACCM-FV2 1 1 1 1 1 \n",
"CanESM5 1 1 1 1 1 \n",
"IPSL-CM6A-LR 1 1 1 1 1 \n",
"MIROC6 1 1 1 1 1 \n",
"MPI-ESM-1-2-HAM 1 1 1 1 1 \n",
"MPI-ESM1-2-HR 1 1 1 1 1 \n",
"MPI-ESM1-2-LR 1 1 1 1 1 \n",
"MRI-ESM2-0 1 1 1 1 1 \n",
"SAM0-UNICON 1 1 1 1 1 \n",
"\n",
" mip_table ensemble_member grid_label variable \\\n",
"model \n",
"CESM2 1 1 1 1 \n",
"CESM2-FV2 1 1 1 1 \n",
"CESM2-WACCM-FV2 1 1 1 1 \n",
"CanESM5 1 1 1 1 \n",
"IPSL-CM6A-LR 1 1 1 1 \n",
"MIROC6 1 1 1 1 \n",
"MPI-ESM-1-2-HAM 1 1 1 1 \n",
"MPI-ESM1-2-HR 1 1 1 1 \n",
"MPI-ESM1-2-LR 1 1 1 1 \n",
"MRI-ESM2-0 1 1 1 1 \n",
"SAM0-UNICON 1 1 1 1 \n",
"\n",
" temporal subset version path \n",
"model \n",
"CESM2 1 1 1 \n",
"CESM2-FV2 4 1 4 \n",
"CESM2-WACCM-FV2 4 1 4 \n",
"CanESM5 17 2 34 \n",
"IPSL-CM6A-LR 2 1 2 \n",
"MIROC6 17 1 17 \n",
"MPI-ESM-1-2-HAM 9 1 9 \n",
"MPI-ESM1-2-HR 33 1 33 \n",
"MPI-ESM1-2-LR 9 1 9 \n",
"MRI-ESM2-0 3 1 3 \n",
"SAM0-UNICON 17 1 17 "
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cat_T_gn.df.groupby(['model']).nunique()"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" project | \n",
" institute | \n",
" experiment_id | \n",
" frequency | \n",
" modeling_realm | \n",
" mip_table | \n",
" ensemble_member | \n",
" grid_label | \n",
" variable | \n",
" temporal subset | \n",
" version | \n",
" path | \n",
"
\n",
" \n",
" model | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" CESM2 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" CESM2-FV2 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" CESM2-WACCM-FV2 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" CanESM5 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" IPSL-CM6A-LR | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" MIROC6 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" MPI-ESM-1-2-HAM | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" MPI-ESM1-2-HR | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" MPI-ESM1-2-LR | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" MRI-ESM2-0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" SAM0-UNICON | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" project institute experiment_id frequency modeling_realm \\\n",
"model \n",
"CESM2 1 1 1 0 0 \n",
"CESM2-FV2 1 1 1 0 0 \n",
"CESM2-WACCM-FV2 1 1 1 0 0 \n",
"CanESM5 1 1 1 0 0 \n",
"IPSL-CM6A-LR 1 1 1 0 0 \n",
"MIROC6 1 1 1 0 0 \n",
"MPI-ESM-1-2-HAM 1 1 1 0 0 \n",
"MPI-ESM1-2-HR 1 1 1 0 0 \n",
"MPI-ESM1-2-LR 1 1 1 0 0 \n",
"MRI-ESM2-0 1 1 1 0 0 \n",
"SAM0-UNICON 1 1 1 0 0 \n",
"\n",
" mip_table ensemble_member grid_label variable \\\n",
"model \n",
"CESM2 1 1 1 1 \n",
"CESM2-FV2 1 1 1 1 \n",
"CESM2-WACCM-FV2 1 1 1 1 \n",
"CanESM5 1 1 1 1 \n",
"IPSL-CM6A-LR 1 1 1 1 \n",
"MIROC6 1 1 1 1 \n",
"MPI-ESM-1-2-HAM 1 1 1 1 \n",
"MPI-ESM1-2-HR 1 1 1 1 \n",
"MPI-ESM1-2-LR 1 1 1 1 \n",
"MRI-ESM2-0 1 1 1 1 \n",
"SAM0-UNICON 1 1 1 1 \n",
"\n",
" temporal subset version path \n",
"model \n",
"CESM2 0 1 1 \n",
"CESM2-FV2 0 1 1 \n",
"CESM2-WACCM-FV2 0 1 1 \n",
"CanESM5 0 1 1 \n",
"IPSL-CM6A-LR 0 1 1 \n",
"MIROC6 0 1 1 \n",
"MPI-ESM-1-2-HAM 0 1 1 \n",
"MPI-ESM1-2-HR 0 1 1 \n",
"MPI-ESM1-2-LR 0 1 1 \n",
"MRI-ESM2-0 0 1 1 \n",
"SAM0-UNICON 0 1 1 "
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cat_A_gn.df.groupby(['model']).nunique() "
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" project | \n",
" institute | \n",
" experiment_id | \n",
" frequency | \n",
" modeling_realm | \n",
" mip_table | \n",
" ensemble_member | \n",
" grid_label | \n",
" variable | \n",
" temporal subset | \n",
" version | \n",
" path | \n",
"
\n",
" \n",
" model | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" CESM2 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" CESM2-FV2 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" CESM2-WACCM-FV2 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" CanESM5 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" IPSL-CM6A-LR | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" MIROC6 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" MPI-ESM-1-2-HAM | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" MPI-ESM1-2-HR | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" MPI-ESM1-2-LR | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" MRI-ESM2-0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" SAM0-UNICON | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" project institute experiment_id frequency modeling_realm \\\n",
"model \n",
"CESM2 1 1 1 0 0 \n",
"CESM2-FV2 1 1 1 0 0 \n",
"CESM2-WACCM-FV2 1 1 1 0 0 \n",
"CanESM5 1 1 1 0 0 \n",
"IPSL-CM6A-LR 1 1 1 0 0 \n",
"MIROC6 1 1 1 0 0 \n",
"MPI-ESM-1-2-HAM 1 1 1 0 0 \n",
"MPI-ESM1-2-HR 1 1 1 0 0 \n",
"MPI-ESM1-2-LR 1 1 1 0 0 \n",
"MRI-ESM2-0 1 1 1 0 0 \n",
"SAM0-UNICON 1 1 1 0 0 \n",
"\n",
" mip_table ensemble_member grid_label variable \\\n",
"model \n",
"CESM2 1 1 1 1 \n",
"CESM2-FV2 1 1 1 1 \n",
"CESM2-WACCM-FV2 1 1 1 1 \n",
"CanESM5 1 1 1 1 \n",
"IPSL-CM6A-LR 1 1 1 1 \n",
"MIROC6 1 1 1 1 \n",
"MPI-ESM-1-2-HAM 1 1 1 1 \n",
"MPI-ESM1-2-HR 1 1 1 1 \n",
"MPI-ESM1-2-LR 1 1 1 1 \n",
"MRI-ESM2-0 1 1 1 1 \n",
"SAM0-UNICON 1 1 1 1 \n",
"\n",
" temporal subset version path \n",
"model \n",
"CESM2 0 1 1 \n",
"CESM2-FV2 0 1 1 \n",
"CESM2-WACCM-FV2 0 1 1 \n",
"CanESM5 0 1 1 \n",
"IPSL-CM6A-LR 0 1 1 \n",
"MIROC6 0 1 1 \n",
"MPI-ESM-1-2-HAM 0 1 1 \n",
"MPI-ESM1-2-HR 0 1 1 \n",
"MPI-ESM1-2-LR 0 1 1 \n",
"MRI-ESM2-0 0 1 1 \n",
"SAM0-UNICON 0 1 1 "
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cat_A_gn_latest.groupby(['model']).nunique() #.nunique()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:notebook] *",
"language": "python",
"name": "conda-env-notebook-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}