diff --git a/notebooks/download-stats.ipynb b/notebooks/download-stats.ipynb
index 0ee300f..3e466a1 100644
--- a/notebooks/download-stats.ipynb
+++ b/notebooks/download-stats.ipynb
@@ -18,7 +18,8 @@
"from rook.usage import Downloads\n",
"from datetime import datetime\n",
"import os\n",
- "import pandas as pd"
+ "import pandas as pd\n",
+ "import time"
]
},
{
@@ -81,18 +82,21 @@
"metadata": {},
"outputs": [
{
- "data": {
- "text/plain": [
- "'./downloads.csv'"
- ]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "duration: 31.28702998161316 secs\n"
+ ]
}
],
"source": [
- "d.collect(outdir=os.curdir)"
+ "start = time.time()\n",
+ "\n",
+ "d.collect(outdir=os.curdir)\n",
+ "\n",
+ "duration = time.time() - start\n",
+ "\n",
+ "print(f\"duration: {duration} secs\")"
]
},
{
@@ -387,6 +391,11 @@
"
referer | \n",
" user_agent | \n",
" filename | \n",
+ " collection | \n",
+ " name | \n",
+ " t | \n",
+ " r | \n",
+ " experiment | \n",
" model | \n",
" freq | \n",
" var | \n",
@@ -407,6 +416,11 @@
" - | \n",
" Python-urllib/3.6\" \"- | \n",
" ta_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20220816... | \n",
+ " cmip6 | \n",
+ " ta_Amon_GFDL-ESM4_ssp585 | \n",
+ " 20220816-20220816.nc | \n",
+ " r1i1p1f1 | \n",
+ " ssp585 | \n",
" GFDL-ESM4 | \n",
" Amon | \n",
" ta | \n",
@@ -425,6 +439,11 @@
" - | \n",
" Python-urllib/3.6\" \"- | \n",
" uas_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... | \n",
+ " cmip6 | \n",
+ " uas_Amon_GFDL-ESM4_ssp585 | \n",
+ " 20220816-20220816.nc | \n",
+ " r1i1p1f1 | \n",
+ " ssp585 | \n",
" GFDL-ESM4 | \n",
" Amon | \n",
" uas | \n",
@@ -443,6 +462,11 @@
" - | \n",
" Python-urllib/3.6\" \"- | \n",
" tas_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... | \n",
+ " cmip6 | \n",
+ " tas_Amon_GFDL-ESM4_ssp585 | \n",
+ " 20220816-20220816.nc | \n",
+ " r1i1p1f1 | \n",
+ " ssp585 | \n",
" GFDL-ESM4 | \n",
" Amon | \n",
" tas | \n",
@@ -461,6 +485,11 @@
" - | \n",
" Python-urllib/3.6\" \"- | \n",
" hur_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... | \n",
+ " cmip6 | \n",
+ " hur_Amon_GFDL-ESM4_ssp585 | \n",
+ " 20220816-20220816.nc | \n",
+ " r1i1p1f1 | \n",
+ " ssp585 | \n",
" GFDL-ESM4 | \n",
" Amon | \n",
" hur | \n",
@@ -479,6 +508,11 @@
" - | \n",
" Python-urllib/3.6\" \"- | \n",
" psl_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... | \n",
+ " cmip6 | \n",
+ " psl_Amon_GFDL-ESM4_ssp585 | \n",
+ " 20220816-20220816.nc | \n",
+ " r1i1p1f1 | \n",
+ " ssp585 | \n",
" GFDL-ESM4 | \n",
" Amon | \n",
" psl | \n",
@@ -500,6 +534,11 @@
" ... | \n",
" ... | \n",
" ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
" \n",
" \n",
" 221072 | \n",
@@ -515,6 +554,11 @@
" - | \n",
" Python-urllib/3.6\" \"- | \n",
" pr_day_ACCESS-CM2_ssp245_r1i1p1f1_gn_20150101-... | \n",
+ " cmip6 | \n",
+ " pr_day_ACCESS-CM2_ssp245 | \n",
+ " 20150101-20640705.nc | \n",
+ " r1i1p1f1 | \n",
+ " ssp245 | \n",
" ACCESS-CM2 | \n",
" day | \n",
" pr | \n",
@@ -533,6 +577,11 @@
" - | \n",
" Python-urllib/3.6\" \"- | \n",
" pr_day_MIROC6_historical_r1i1p1f1_gn_19810101-... | \n",
+ " cmip6 | \n",
+ " pr_day_MIROC6_historical | \n",
+ " 19810101-20101231.nc | \n",
+ " r1i1p1f1 | \n",
+ " historical | \n",
" MIROC6 | \n",
" day | \n",
" pr | \n",
@@ -551,6 +600,11 @@
" - | \n",
" Python-urllib/3.6\" \"- | \n",
" tos_Omon_CanESM5-CanOE_ssp585_r1i1p2f1_gn_2050... | \n",
+ " cmip6 | \n",
+ " tos_Omon_CanESM5-CanOE_ssp585 | \n",
+ " 20500116-20991216.nc | \n",
+ " r1i1p2f1 | \n",
+ " ssp585 | \n",
" CanESM5-CanOE | \n",
" Omon | \n",
" tos | \n",
@@ -569,6 +623,11 @@
" - | \n",
" Python-urllib/3.6\" \"- | \n",
" pr_day_NorESM2-MM_historical_r1i1p1f1_gn_19810... | \n",
+ " cmip6 | \n",
+ " pr_day_NorESM2-MM_historical | \n",
+ " 19810101-20101231.nc | \n",
+ " r1i1p1f1 | \n",
+ " historical | \n",
" NorESM2-MM | \n",
" day | \n",
" pr | \n",
@@ -587,13 +646,18 @@
" - | \n",
" Python-urllib/3.6\" \"- | \n",
" pr_day_HadGEM3-GC31-LL_historical_r1i1p1f3_gn_... | \n",
+ " cmip6 | \n",
+ " pr_day_HadGEM3-GC31-LL_historical | \n",
+ " 19810101-20101230.nc | \n",
+ " r1i1p1f3 | \n",
+ " historical | \n",
" HadGEM3-GC31-LL | \n",
" day | \n",
" pr | \n",
"
\n",
" \n",
"\n",
- "221077 rows × 15 columns
\n",
+ "221077 rows × 20 columns
\n",
""
],
"text/plain": [
@@ -636,33 +700,46 @@
"221075 HTTP/1.1 200 127257297 - Python-urllib/3.6\" \"- \n",
"221076 HTTP/1.1 200 61905737 - Python-urllib/3.6\" \"- \n",
"\n",
- " filename model \\\n",
- "0 ta_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20220816... GFDL-ESM4 \n",
- "1 uas_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... GFDL-ESM4 \n",
- "2 tas_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... GFDL-ESM4 \n",
- "3 hur_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... GFDL-ESM4 \n",
- "4 psl_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... GFDL-ESM4 \n",
- "... ... ... \n",
- "221072 pr_day_ACCESS-CM2_ssp245_r1i1p1f1_gn_20150101-... ACCESS-CM2 \n",
- "221073 pr_day_MIROC6_historical_r1i1p1f1_gn_19810101-... MIROC6 \n",
- "221074 tos_Omon_CanESM5-CanOE_ssp585_r1i1p2f1_gn_2050... CanESM5-CanOE \n",
- "221075 pr_day_NorESM2-MM_historical_r1i1p1f1_gn_19810... NorESM2-MM \n",
- "221076 pr_day_HadGEM3-GC31-LL_historical_r1i1p1f3_gn_... HadGEM3-GC31-LL \n",
- "\n",
- " freq var \n",
- "0 Amon ta \n",
- "1 Amon uas \n",
- "2 Amon tas \n",
- "3 Amon hur \n",
- "4 Amon psl \n",
- "... ... ... \n",
- "221072 day pr \n",
- "221073 day pr \n",
- "221074 Omon tos \n",
- "221075 day pr \n",
- "221076 day pr \n",
- "\n",
- "[221077 rows x 15 columns]"
+ " filename collection \\\n",
+ "0 ta_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20220816... cmip6 \n",
+ "1 uas_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... cmip6 \n",
+ "2 tas_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... cmip6 \n",
+ "3 hur_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... cmip6 \n",
+ "4 psl_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... cmip6 \n",
+ "... ... ... \n",
+ "221072 pr_day_ACCESS-CM2_ssp245_r1i1p1f1_gn_20150101-... cmip6 \n",
+ "221073 pr_day_MIROC6_historical_r1i1p1f1_gn_19810101-... cmip6 \n",
+ "221074 tos_Omon_CanESM5-CanOE_ssp585_r1i1p2f1_gn_2050... cmip6 \n",
+ "221075 pr_day_NorESM2-MM_historical_r1i1p1f1_gn_19810... cmip6 \n",
+ "221076 pr_day_HadGEM3-GC31-LL_historical_r1i1p1f3_gn_... cmip6 \n",
+ "\n",
+ " name t r \\\n",
+ "0 ta_Amon_GFDL-ESM4_ssp585 20220816-20220816.nc r1i1p1f1 \n",
+ "1 uas_Amon_GFDL-ESM4_ssp585 20220816-20220816.nc r1i1p1f1 \n",
+ "2 tas_Amon_GFDL-ESM4_ssp585 20220816-20220816.nc r1i1p1f1 \n",
+ "3 hur_Amon_GFDL-ESM4_ssp585 20220816-20220816.nc r1i1p1f1 \n",
+ "4 psl_Amon_GFDL-ESM4_ssp585 20220816-20220816.nc r1i1p1f1 \n",
+ "... ... ... ... \n",
+ "221072 pr_day_ACCESS-CM2_ssp245 20150101-20640705.nc r1i1p1f1 \n",
+ "221073 pr_day_MIROC6_historical 19810101-20101231.nc r1i1p1f1 \n",
+ "221074 tos_Omon_CanESM5-CanOE_ssp585 20500116-20991216.nc r1i1p2f1 \n",
+ "221075 pr_day_NorESM2-MM_historical 19810101-20101231.nc r1i1p1f1 \n",
+ "221076 pr_day_HadGEM3-GC31-LL_historical 19810101-20101230.nc r1i1p1f3 \n",
+ "\n",
+ " experiment model freq var \n",
+ "0 ssp585 GFDL-ESM4 Amon ta \n",
+ "1 ssp585 GFDL-ESM4 Amon uas \n",
+ "2 ssp585 GFDL-ESM4 Amon tas \n",
+ "3 ssp585 GFDL-ESM4 Amon hur \n",
+ "4 ssp585 GFDL-ESM4 Amon psl \n",
+ "... ... ... ... ... \n",
+ "221072 ssp245 ACCESS-CM2 day pr \n",
+ "221073 historical MIROC6 day pr \n",
+ "221074 ssp585 CanESM5-CanOE Omon tos \n",
+ "221075 historical NorESM2-MM day pr \n",
+ "221076 historical HadGEM3-GC31-LL day pr \n",
+ "\n",
+ "[221077 rows x 20 columns]"
]
},
"execution_count": 7,
@@ -671,7 +748,26 @@
}
],
"source": [
+ "def classify(name):\n",
+ " count = name.count(\"_\")\n",
+ " if count == 6:\n",
+ " val = \"cmip6\"\n",
+ " elif count == 5:\n",
+ " val = \"cmip6_fx\"\n",
+ " elif count == 4:\n",
+ " val = \"atlas\"\n",
+ " elif count > 6:\n",
+ " val = \"cordex\"\n",
+ " else:\n",
+ " val = \"other\"\n",
+ " return val\n",
+ "\n",
"df[\"filename\"] = df[\"request\"].apply(lambda x: x.split('/')[-1])\n",
+ "df[\"collection\"] = df[\"filename\"].apply(lambda x: classify(x))\n",
+ "df[\"name\"] = df[\"filename\"].apply(lambda x: \"_\".join(x.split('_')[0:4]))\n",
+ "df[\"t\"] = df[\"filename\"].apply(lambda x: \"_\".join(x.split('_')[6:7]))\n",
+ "df[\"r\"] = df[\"filename\"].apply(lambda x: \"_\".join(x.split('_')[4:5]))\n",
+ "df[\"experiment\"] = df[\"filename\"].apply(lambda x: \"_\".join(x.split('_')[3:4]))\n",
"df[\"model\"] = df[\"filename\"].apply(lambda x: \"_\".join(x.split('_')[2:3]))\n",
"df[\"freq\"] = df[\"filename\"].apply(lambda x: \"_\".join(x.split('_')[1:2]))\n",
"df[\"var\"] = df[\"filename\"].apply(lambda x: \"_\".join(x.split('_')[0:1]))\n",
@@ -681,27 +777,13 @@
{
"cell_type": "code",
"execution_count": 8,
- "id": "5390a351-649a-4559-a8a9-3486ee5d300b",
+ "id": "62c28699-a0a5-4484-b20a-6e84db7d4091",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "array(['GFDL-ESM4', 'CNRM-CM6-1-HR', 'CanESM5', 'CMCC-ESM2', 'FGOALS-g3',\n",
- " 'MPI-ESM1-2-LR', 'INM-CM4-8', 'ACCESS-CM2', 'AWI-CM-1-1-MR',\n",
- " 'BCC-CSM2-MR', 'CAMS-CSM1-0', 'CanESM5-CanOE', 'EC-Earth3-AerChem',\n",
- " 'INM-CM5-0', 'IPSL-CM6A-LR', 'MIROC6', 'MIROC-ES2L', 'FGOALS-f3-L',\n",
- " 'NorESM2-MM', 'TaiESM1', 'CESM2-WACCM', 'CESM2', 'CMCC-CM2-SR5',\n",
- " 'EC-Earth3-Veg', 'CNRM-CM6-1', 'CNRM-ESM2-1', 'EC-Earth3-Veg-LR',\n",
- " 'IPSL-CM5A2-INCA', 'KACE-1-0-G', 'MCM-UA-1-0', 'UKESM1-0-LL',\n",
- " 'NorESM2-LM', 'EC-Earth3-CC', 'FIO-ESM-2-0', 'NESM3',\n",
- " 'ACCESS-ESM1-5', 'MRI-ESM2-0', 'EC-Earth3', 'CMCC-CM2-HR4',\n",
- " 'HadGEM3-GC31-MM', 'AWI-ESM-1-1-LR', 'HadGEM3-GC31-LL', 'IITM-ESM',\n",
- " 'KIOST-ESM', 'MPI-ESM-1-2-HAM', 'E3SM-1-1', 'CIESM', 'CESM2-FV2',\n",
- " 'MPI-ESM1-2-HR', 'CESM2-WACCM-FV2', 'E3SM-1-0', 'E3SM-1-1-ECA',\n",
- " 'NorCPM1', 'BCC-ESM1', 'MIROC-ES2H', 'SAM0-UNICON', 'GISS-E2-1-G',\n",
- " 'GISS-E2-1-H', 'IPSL-CM5B-LR', 'MOHC-HadGEM2-ES', 'no-expt',\n",
- " 'rcp26'], dtype=object)"
+ "array(['cmip6', 'cmip6_fx', 'cordex', 'atlas'], dtype=object)"
]
},
"execution_count": 8,
@@ -710,25 +792,71 @@
}
],
"source": [
- "df[\"model\"].unique()"
+ "df[\"collection\"].unique()"
]
},
{
"cell_type": "code",
"execution_count": 9,
- "id": "20eb375e-aee5-4195-b82a-fae9b00c7c67",
+ "id": "253ea766-64ec-49fd-b45a-9c4085eeb690",
"metadata": {},
"outputs": [
{
"data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " collection | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " cmip6 | \n",
+ " 221016 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " cmip6_fx | \n",
+ " 44 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " atlas | \n",
+ " 13 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " cordex | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
"text/plain": [
- "array(['ta', 'uas', 'tas', 'hur', 'psl', 'hus', 'huss', 'ts', 'ua', 'zg',\n",
- " 'mrsos', 'sfcWind', 'va', 'ps', 'clt', 'pr', 'zos', 'hurs', 'mrro',\n",
- " 'tasmax', 'tasmin', 'evspsbl', 'rlut', 'rlds', 'rsds', 'tos',\n",
- " 'vas', 'sos', 'orog', 'prsn', 'rsdt', 'snd', 'snw', 'siconc',\n",
- " 'rlus', 'rsus', 'sftof', 'sithick', 'hfls', 'hfss', 'zg500',\n",
- " 'sftlf', 'simass', 'rsut', 'tauu', 'tauv', 'mrsofc', 'cdd', 't',\n",
- " 'sfcwind', 'tx35', 'txx', 'tn', 'tx', 'area'], dtype=object)"
+ " collection count\n",
+ "0 cmip6 221016\n",
+ "1 cmip6_fx 44\n",
+ "2 atlas 13\n",
+ "3 cordex 4"
]
},
"execution_count": 9,
@@ -737,35 +865,15 @@
}
],
"source": [
- "df[\"var\"].unique()"
+ "col_counts = df['collection'].value_counts().reset_index()\n",
+ "col_counts.columns = ['collection', 'count']\n",
+ "col_counts"
]
},
{
"cell_type": "code",
"execution_count": 10,
- "id": "93d4cd72-6bf8-4c9a-b092-5592c7d2de8e",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "array(['Amon', 'Lmon', 'Omon', 'day', 'fx', 'LImon', 'SImon', 'Ofx',\n",
- " 'EUR-11', 'AERday', 'E-OBS', 'CMIP5'], dtype=object)"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "df[\"freq\"].unique()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "id": "b3066814-9872-4125-84d5-116c3d1092d6",
+ "id": "75850eaa-7c02-488d-9ad2-b4226090d540",
"metadata": {},
"outputs": [
{
@@ -789,103 +897,438 @@
" \n",
" \n",
" | \n",
+ " remote_host_ip | \n",
+ " ip_number | \n",
+ " datetime | \n",
+ " timezone | \n",
+ " request_type | \n",
+ " request | \n",
+ " protocol | \n",
+ " status_code | \n",
+ " size | \n",
+ " referer | \n",
+ " user_agent | \n",
+ " filename | \n",
+ " collection | \n",
+ " name | \n",
+ " t | \n",
+ " r | \n",
+ " experiment | \n",
" model | \n",
- " count | \n",
+ " freq | \n",
+ " var | \n",
"
\n",
" \n",
" \n",
" \n",
- " 0 | \n",
- " MPI-ESM1-2-LR | \n",
- " 11491 | \n",
+ " 123871 | \n",
+ " 136.156.139.146 | \n",
+ " 2291960722 | \n",
+ " 2024-08-01 16:35:35 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/4f8d2838-5013-11ef-ac87-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 64586 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " cdd_E-OBS_no-expt_yr_19500101-20210101.nc | \n",
+ " atlas | \n",
+ " cdd_E-OBS_no-expt_yr | \n",
+ " | \n",
+ " 19500101-20210101.nc | \n",
+ " yr | \n",
+ " no-expt | \n",
+ " E-OBS | \n",
+ " cdd | \n",
"
\n",
" \n",
- " 1 | \n",
- " ACCESS-CM2 | \n",
- " 10339 | \n",
+ " 123901 | \n",
+ " 136.156.137.114 | \n",
+ " 2291960178 | \n",
+ " 2024-08-01 16:41:25 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/2039b1ea-5014-11ef-ac55-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 965094 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " t_E-OBS_no-expt_mon_19500101-20211201.nc | \n",
+ " atlas | \n",
+ " t_E-OBS_no-expt_mon | \n",
+ " | \n",
+ " 19500101-20211201.nc | \n",
+ " mon | \n",
+ " no-expt | \n",
+ " E-OBS | \n",
+ " t | \n",
"
\n",
" \n",
- " 2 | \n",
- " CNRM-ESM2-1 | \n",
- " 9546 | \n",
+ " 128575 | \n",
+ " 136.156.138.207 | \n",
+ " 2291960527 | \n",
+ " 2024-08-02 16:55:15 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/375fefc6-50df-11ef-9a31-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 665905 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " rsds_E-OBS_no-expt_mon_19500101-20211201.nc | \n",
+ " atlas | \n",
+ " rsds_E-OBS_no-expt_mon | \n",
+ " | \n",
+ " 19500101-20211201.nc | \n",
+ " mon | \n",
+ " no-expt | \n",
+ " E-OBS | \n",
+ " rsds | \n",
"
\n",
" \n",
- " 3 | \n",
- " MIROC-ES2L | \n",
- " 9480 | \n",
+ " 128576 | \n",
+ " 136.156.140.238 | \n",
+ " 2291961070 | \n",
+ " 2024-08-02 16:58:53 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/bb34e8f6-50df-11ef-b6b5-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 540626 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " sfcwind_E-OBS_no-expt_mon_19500101-20211201.nc | \n",
+ " atlas | \n",
+ " sfcwind_E-OBS_no-expt_mon | \n",
+ " | \n",
+ " 19500101-20211201.nc | \n",
+ " mon | \n",
+ " no-expt | \n",
+ " E-OBS | \n",
+ " sfcwind | \n",
"
\n",
" \n",
- " 4 | \n",
- " MRI-ESM2-0 | \n",
- " 9422 | \n",
+ " 128577 | \n",
+ " 136.156.139.188 | \n",
+ " 2291960764 | \n",
+ " 2024-08-02 17:06:07 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/bd85f07c-50e0-11ef-b422-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 965094 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " t_E-OBS_no-expt_mon_19500101-20211201.nc | \n",
+ " atlas | \n",
+ " t_E-OBS_no-expt_mon | \n",
+ " | \n",
+ " 19500101-20211201.nc | \n",
+ " mon | \n",
+ " no-expt | \n",
+ " E-OBS | \n",
+ " t | \n",
"
\n",
" \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
+ " 128578 | \n",
+ " 136.156.138.149 | \n",
+ " 2291960469 | \n",
+ " 2024-08-02 17:07:12 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/e4c15fd2-50e0-11ef-aa72-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 102286 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " tx35_E-OBS_no-expt_mon_19500101-20211201.nc | \n",
+ " atlas | \n",
+ " tx35_E-OBS_no-expt_mon | \n",
+ " | \n",
+ " 19500101-20211201.nc | \n",
+ " mon | \n",
+ " no-expt | \n",
+ " E-OBS | \n",
+ " tx35 | \n",
"
\n",
" \n",
- " 57 | \n",
- " E3SM-1-0 | \n",
- " 46 | \n",
+ " 128579 | \n",
+ " 136.156.139.146 | \n",
+ " 2291960722 | \n",
+ " 2024-08-02 17:10:29 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/59e4e4b4-50e1-11ef-8859-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 957903 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " txx_E-OBS_no-expt_mon_19500101-20211201.nc | \n",
+ " atlas | \n",
+ " txx_E-OBS_no-expt_mon | \n",
+ " | \n",
+ " 19500101-20211201.nc | \n",
+ " mon | \n",
+ " no-expt | \n",
+ " E-OBS | \n",
+ " txx | \n",
"
\n",
" \n",
- " 58 | \n",
+ " 128581 | \n",
+ " 136.156.138.199 | \n",
+ " 2291960519 | \n",
+ " 2024-08-02 17:17:34 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/575dd3bc-50e2-11ef-8ef3-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 912057 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " pr_E-OBS_no-expt_mon_19500101-20211201.nc | \n",
+ " atlas | \n",
+ " pr_E-OBS_no-expt_mon | \n",
+ " | \n",
+ " 19500101-20211201.nc | \n",
+ " mon | \n",
" no-expt | \n",
- " 11 | \n",
+ " E-OBS | \n",
+ " pr | \n",
"
\n",
" \n",
- " 59 | \n",
- " IPSL-CM5B-LR | \n",
- " 4 | \n",
+ " 128582 | \n",
+ " 136.156.140.220 | \n",
+ " 2291961052 | \n",
+ " 2024-08-02 17:18:32 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/79bd31aa-50e2-11ef-b6bd-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 64586 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " cdd_E-OBS_no-expt_yr_19500101-20210101.nc | \n",
+ " atlas | \n",
+ " cdd_E-OBS_no-expt_yr | \n",
+ " | \n",
+ " 19500101-20210101.nc | \n",
+ " yr | \n",
+ " no-expt | \n",
+ " E-OBS | \n",
+ " cdd | \n",
"
\n",
" \n",
- " 60 | \n",
- " MOHC-HadGEM2-ES | \n",
- " 4 | \n",
+ " 128583 | \n",
+ " 136.156.140.238 | \n",
+ " 2291961070 | \n",
+ " 2024-08-02 17:19:29 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/9c00f0d0-50e2-11ef-b64b-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 963043 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " tn_E-OBS_no-expt_mon_19500101-20211201.nc | \n",
+ " atlas | \n",
+ " tn_E-OBS_no-expt_mon | \n",
+ " | \n",
+ " 19500101-20211201.nc | \n",
+ " mon | \n",
+ " no-expt | \n",
+ " E-OBS | \n",
+ " tn | \n",
"
\n",
" \n",
- " 61 | \n",
+ " 128584 | \n",
+ " 136.156.139.146 | \n",
+ " 2291960722 | \n",
+ " 2024-08-02 17:20:19 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/b9ce1ff2-50e2-11ef-8917-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 971325 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " tx_E-OBS_no-expt_mon_19500101-20211201.nc | \n",
+ " atlas | \n",
+ " tx_E-OBS_no-expt_mon | \n",
+ " | \n",
+ " 19500101-20211201.nc | \n",
+ " mon | \n",
+ " no-expt | \n",
+ " E-OBS | \n",
+ " tx | \n",
+ "
\n",
+ " \n",
+ " 208574 | \n",
+ " 136.156.138.53 | \n",
+ " 2291960373 | \n",
+ " 2024-08-09 12:05:05 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/492e11f4-5636-11ef-910e-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 920848260 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " txx_CMIP5_rcp26_mon_20060101-20730801.nc | \n",
+ " atlas | \n",
+ " txx_CMIP5_rcp26_mon | \n",
+ " | \n",
+ " 20060101-20730801.nc | \n",
+ " mon | \n",
" rcp26 | \n",
- " 2 | \n",
+ " CMIP5 | \n",
+ " txx | \n",
+ "
\n",
+ " \n",
+ " 208575 | \n",
+ " 136.156.138.53 | \n",
+ " 2291960373 | \n",
+ " 2024-08-09 12:05:14 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/492e2572-5636-11ef-910e-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 371556139 | \n",
+ " - | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " txx_CMIP5_rcp26_mon_20730901-21001201.nc | \n",
+ " atlas | \n",
+ " txx_CMIP5_rcp26_mon | \n",
+ " | \n",
+ " 20730901-21001201.nc | \n",
+ " mon | \n",
+ " rcp26 | \n",
+ " CMIP5 | \n",
+ " txx | \n",
"
\n",
" \n",
"\n",
- "62 rows × 2 columns
\n",
""
],
"text/plain": [
- " model count\n",
- "0 MPI-ESM1-2-LR 11491\n",
- "1 ACCESS-CM2 10339\n",
- "2 CNRM-ESM2-1 9546\n",
- "3 MIROC-ES2L 9480\n",
- "4 MRI-ESM2-0 9422\n",
- ".. ... ...\n",
- "57 E3SM-1-0 46\n",
- "58 no-expt 11\n",
- "59 IPSL-CM5B-LR 4\n",
- "60 MOHC-HadGEM2-ES 4\n",
- "61 rcp26 2\n",
- "\n",
- "[62 rows x 2 columns]"
+ " remote_host_ip ip_number datetime timezone \\\n",
+ "123871 136.156.139.146 2291960722 2024-08-01 16:35:35 200 \n",
+ "123901 136.156.137.114 2291960178 2024-08-01 16:41:25 200 \n",
+ "128575 136.156.138.207 2291960527 2024-08-02 16:55:15 200 \n",
+ "128576 136.156.140.238 2291961070 2024-08-02 16:58:53 200 \n",
+ "128577 136.156.139.188 2291960764 2024-08-02 17:06:07 200 \n",
+ "128578 136.156.138.149 2291960469 2024-08-02 17:07:12 200 \n",
+ "128579 136.156.139.146 2291960722 2024-08-02 17:10:29 200 \n",
+ "128581 136.156.138.199 2291960519 2024-08-02 17:17:34 200 \n",
+ "128582 136.156.140.220 2291961052 2024-08-02 17:18:32 200 \n",
+ "128583 136.156.140.238 2291961070 2024-08-02 17:19:29 200 \n",
+ "128584 136.156.139.146 2291960722 2024-08-02 17:20:19 200 \n",
+ "208574 136.156.138.53 2291960373 2024-08-09 12:05:05 200 \n",
+ "208575 136.156.138.53 2291960373 2024-08-09 12:05:14 200 \n",
+ "\n",
+ " request_type request \\\n",
+ "123871 GET /outputs/rook/4f8d2838-5013-11ef-ac87-fa163e93... \n",
+ "123901 GET /outputs/rook/2039b1ea-5014-11ef-ac55-fa163e93... \n",
+ "128575 GET /outputs/rook/375fefc6-50df-11ef-9a31-fa163e93... \n",
+ "128576 GET /outputs/rook/bb34e8f6-50df-11ef-b6b5-fa163e93... \n",
+ "128577 GET /outputs/rook/bd85f07c-50e0-11ef-b422-fa163e93... \n",
+ "128578 GET /outputs/rook/e4c15fd2-50e0-11ef-aa72-fa163e93... \n",
+ "128579 GET /outputs/rook/59e4e4b4-50e1-11ef-8859-fa163e93... \n",
+ "128581 GET /outputs/rook/575dd3bc-50e2-11ef-8ef3-fa163e93... \n",
+ "128582 GET /outputs/rook/79bd31aa-50e2-11ef-b6bd-fa163e93... \n",
+ "128583 GET /outputs/rook/9c00f0d0-50e2-11ef-b64b-fa163e93... \n",
+ "128584 GET /outputs/rook/b9ce1ff2-50e2-11ef-8917-fa163e93... \n",
+ "208574 GET /outputs/rook/492e11f4-5636-11ef-910e-fa163e93... \n",
+ "208575 GET /outputs/rook/492e2572-5636-11ef-910e-fa163e93... \n",
+ "\n",
+ " protocol status_code size referer user_agent \\\n",
+ "123871 HTTP/1.1 200 64586 - python-requests/2.32.3\" \"- \n",
+ "123901 HTTP/1.1 200 965094 - python-requests/2.32.3\" \"- \n",
+ "128575 HTTP/1.1 200 665905 - python-requests/2.32.3\" \"- \n",
+ "128576 HTTP/1.1 200 540626 - python-requests/2.32.3\" \"- \n",
+ "128577 HTTP/1.1 200 965094 - python-requests/2.32.3\" \"- \n",
+ "128578 HTTP/1.1 200 102286 - python-requests/2.32.3\" \"- \n",
+ "128579 HTTP/1.1 200 957903 - python-requests/2.32.3\" \"- \n",
+ "128581 HTTP/1.1 200 912057 - python-requests/2.32.3\" \"- \n",
+ "128582 HTTP/1.1 200 64586 - python-requests/2.32.3\" \"- \n",
+ "128583 HTTP/1.1 200 963043 - python-requests/2.32.3\" \"- \n",
+ "128584 HTTP/1.1 200 971325 - python-requests/2.32.3\" \"- \n",
+ "208574 HTTP/1.1 200 920848260 - python-requests/2.32.3\" \"- \n",
+ "208575 HTTP/1.1 200 371556139 - python-requests/2.32.3\" \"- \n",
+ "\n",
+ " filename collection \\\n",
+ "123871 cdd_E-OBS_no-expt_yr_19500101-20210101.nc atlas \n",
+ "123901 t_E-OBS_no-expt_mon_19500101-20211201.nc atlas \n",
+ "128575 rsds_E-OBS_no-expt_mon_19500101-20211201.nc atlas \n",
+ "128576 sfcwind_E-OBS_no-expt_mon_19500101-20211201.nc atlas \n",
+ "128577 t_E-OBS_no-expt_mon_19500101-20211201.nc atlas \n",
+ "128578 tx35_E-OBS_no-expt_mon_19500101-20211201.nc atlas \n",
+ "128579 txx_E-OBS_no-expt_mon_19500101-20211201.nc atlas \n",
+ "128581 pr_E-OBS_no-expt_mon_19500101-20211201.nc atlas \n",
+ "128582 cdd_E-OBS_no-expt_yr_19500101-20210101.nc atlas \n",
+ "128583 tn_E-OBS_no-expt_mon_19500101-20211201.nc atlas \n",
+ "128584 tx_E-OBS_no-expt_mon_19500101-20211201.nc atlas \n",
+ "208574 txx_CMIP5_rcp26_mon_20060101-20730801.nc atlas \n",
+ "208575 txx_CMIP5_rcp26_mon_20730901-21001201.nc atlas \n",
+ "\n",
+ " name t r experiment model \\\n",
+ "123871 cdd_E-OBS_no-expt_yr 19500101-20210101.nc yr no-expt \n",
+ "123901 t_E-OBS_no-expt_mon 19500101-20211201.nc mon no-expt \n",
+ "128575 rsds_E-OBS_no-expt_mon 19500101-20211201.nc mon no-expt \n",
+ "128576 sfcwind_E-OBS_no-expt_mon 19500101-20211201.nc mon no-expt \n",
+ "128577 t_E-OBS_no-expt_mon 19500101-20211201.nc mon no-expt \n",
+ "128578 tx35_E-OBS_no-expt_mon 19500101-20211201.nc mon no-expt \n",
+ "128579 txx_E-OBS_no-expt_mon 19500101-20211201.nc mon no-expt \n",
+ "128581 pr_E-OBS_no-expt_mon 19500101-20211201.nc mon no-expt \n",
+ "128582 cdd_E-OBS_no-expt_yr 19500101-20210101.nc yr no-expt \n",
+ "128583 tn_E-OBS_no-expt_mon 19500101-20211201.nc mon no-expt \n",
+ "128584 tx_E-OBS_no-expt_mon 19500101-20211201.nc mon no-expt \n",
+ "208574 txx_CMIP5_rcp26_mon 20060101-20730801.nc mon rcp26 \n",
+ "208575 txx_CMIP5_rcp26_mon 20730901-21001201.nc mon rcp26 \n",
+ "\n",
+ " freq var \n",
+ "123871 E-OBS cdd \n",
+ "123901 E-OBS t \n",
+ "128575 E-OBS rsds \n",
+ "128576 E-OBS sfcwind \n",
+ "128577 E-OBS t \n",
+ "128578 E-OBS tx35 \n",
+ "128579 E-OBS txx \n",
+ "128581 E-OBS pr \n",
+ "128582 E-OBS cdd \n",
+ "128583 E-OBS tn \n",
+ "128584 E-OBS tx \n",
+ "208574 CMIP5 txx \n",
+ "208575 CMIP5 txx "
]
},
- "execution_count": 11,
+ "execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "model_counts = df['model'].value_counts().reset_index()\n",
- "model_counts.columns = ['model', 'count']\n",
- "model_counts"
+ "df_atlas = df[df['collection'] == 'atlas']\n",
+ "df_atlas"
]
},
{
"cell_type": "code",
- "execution_count": 12,
- "id": "f1f908d6-4845-44b3-b73b-7487879c462f",
+ "execution_count": 11,
+ "id": "cd988e05-7239-4443-a78b-5c8674a9f632",
"metadata": {},
"outputs": [
{
@@ -909,20 +1352,2693 @@
" \n",
" \n",
" | \n",
- " model | \n",
- " count | \n",
- "
\n",
- " \n",
- " \n",
+ " remote_host_ip | \n",
+ " ip_number | \n",
+ " datetime | \n",
+ " timezone | \n",
+ " request_type | \n",
+ " request | \n",
+ " protocol | \n",
+ " status_code | \n",
+ " size | \n",
+ " referer | \n",
+ " user_agent | \n",
+ " filename | \n",
+ " collection | \n",
+ " name | \n",
+ " t | \n",
+ " r | \n",
+ " experiment | \n",
+ " model | \n",
+ " freq | \n",
+ " var | \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 136.156.155.149 | \n",
+ " 2291964821 | \n",
+ " 2024-08-14 00:13:10 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/3769991e-59c1-11ef-b5c0-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 1984894 | \n",
+ " - | \n",
+ " Python-urllib/3.6\" \"- | \n",
+ " ta_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20220816... | \n",
+ " cmip6 | \n",
+ " ta_Amon_GFDL-ESM4_ssp585 | \n",
+ " 20220816-20220816.nc | \n",
+ " r1i1p1f1 | \n",
+ " ssp585 | \n",
+ " GFDL-ESM4 | \n",
+ " Amon | \n",
+ " ta | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 136.156.153.235 | \n",
+ " 2291964395 | \n",
+ " 2024-08-14 00:13:32 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/46226da0-59c1-11ef-84a3-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 215882 | \n",
+ " - | \n",
+ " Python-urllib/3.6\" \"- | \n",
+ " uas_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... | \n",
+ " cmip6 | \n",
+ " uas_Amon_GFDL-ESM4_ssp585 | \n",
+ " 20220816-20220816.nc | \n",
+ " r1i1p1f1 | \n",
+ " ssp585 | \n",
+ " GFDL-ESM4 | \n",
+ " Amon | \n",
+ " uas | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 136.156.153.87 | \n",
+ " 2291964247 | \n",
+ " 2024-08-14 00:13:44 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/4ddbf048-59c1-11ef-989d-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 168461 | \n",
+ " - | \n",
+ " Python-urllib/3.6\" \"- | \n",
+ " tas_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... | \n",
+ " cmip6 | \n",
+ " tas_Amon_GFDL-ESM4_ssp585 | \n",
+ " 20220816-20220816.nc | \n",
+ " r1i1p1f1 | \n",
+ " ssp585 | \n",
+ " GFDL-ESM4 | \n",
+ " Amon | \n",
+ " tas | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 136.156.153.87 | \n",
+ " 2291964247 | \n",
+ " 2024-08-14 00:14:03 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/579ddfba-59c1-11ef-952a-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 2560814 | \n",
+ " - | \n",
+ " Python-urllib/3.6\" \"- | \n",
+ " hur_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... | \n",
+ " cmip6 | \n",
+ " hur_Amon_GFDL-ESM4_ssp585 | \n",
+ " 20220816-20220816.nc | \n",
+ " r1i1p1f1 | \n",
+ " ssp585 | \n",
+ " GFDL-ESM4 | \n",
+ " Amon | \n",
+ " hur | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 136.156.154.193 | \n",
+ " 2291964609 | \n",
+ " 2024-08-14 00:14:33 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/6a7586b0-59c1-11ef-80c3-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 154219 | \n",
+ " - | \n",
+ " Python-urllib/3.6\" \"- | \n",
+ " psl_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... | \n",
+ " cmip6 | \n",
+ " psl_Amon_GFDL-ESM4_ssp585 | \n",
+ " 20220816-20220816.nc | \n",
+ " r1i1p1f1 | \n",
+ " ssp585 | \n",
+ " GFDL-ESM4 | \n",
+ " Amon | \n",
+ " psl | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 221072 | \n",
+ " 136.156.155.149 | \n",
+ " 2291964821 | \n",
+ " 2024-08-13 22:23:46 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/6a0d75ee-59b1-11ef-a3da-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 1833360810 | \n",
+ " - | \n",
+ " Python-urllib/3.6\" \"- | \n",
+ " pr_day_ACCESS-CM2_ssp245_r1i1p1f1_gn_20150101-... | \n",
+ " cmip6 | \n",
+ " pr_day_ACCESS-CM2_ssp245 | \n",
+ " 20150101-20640705.nc | \n",
+ " r1i1p1f1 | \n",
+ " ssp245 | \n",
+ " ACCESS-CM2 | \n",
+ " day | \n",
+ " pr | \n",
+ "
\n",
+ " \n",
+ " 221073 | \n",
+ " 136.156.155.140 | \n",
+ " 2291964812 | \n",
+ " 2024-08-13 23:25:52 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/9ce7a396-59ba-11ef-8c38-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 60959274 | \n",
+ " - | \n",
+ " Python-urllib/3.6\" \"- | \n",
+ " pr_day_MIROC6_historical_r1i1p1f1_gn_19810101-... | \n",
+ " cmip6 | \n",
+ " pr_day_MIROC6_historical | \n",
+ " 19810101-20101231.nc | \n",
+ " r1i1p1f1 | \n",
+ " historical | \n",
+ " MIROC6 | \n",
+ " day | \n",
+ " pr | \n",
+ "
\n",
+ " \n",
+ " 221074 | \n",
+ " 136.156.155.140 | \n",
+ " 2291964812 | \n",
+ " 2024-08-13 23:38:35 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/640bb8ee-59bc-11ef-b16c-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 347631 | \n",
+ " - | \n",
+ " Python-urllib/3.6\" \"- | \n",
+ " tos_Omon_CanESM5-CanOE_ssp585_r1i1p2f1_gn_2050... | \n",
+ " cmip6 | \n",
+ " tos_Omon_CanESM5-CanOE_ssp585 | \n",
+ " 20500116-20991216.nc | \n",
+ " r1i1p2f1 | \n",
+ " ssp585 | \n",
+ " CanESM5-CanOE | \n",
+ " Omon | \n",
+ " tos | \n",
+ "
\n",
+ " \n",
+ " 221075 | \n",
+ " 136.156.153.235 | \n",
+ " 2291964395 | \n",
+ " 2024-08-13 23:43:14 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/08a515bc-59bd-11ef-87ce-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 127257297 | \n",
+ " - | \n",
+ " Python-urllib/3.6\" \"- | \n",
+ " pr_day_NorESM2-MM_historical_r1i1p1f1_gn_19810... | \n",
+ " cmip6 | \n",
+ " pr_day_NorESM2-MM_historical | \n",
+ " 19810101-20101231.nc | \n",
+ " r1i1p1f1 | \n",
+ " historical | \n",
+ " NorESM2-MM | \n",
+ " day | \n",
+ " pr | \n",
+ "
\n",
+ " \n",
+ " 221076 | \n",
+ " 136.156.153.87 | \n",
+ " 2291964247 | \n",
+ " 2024-08-13 23:48:47 | \n",
+ " 200 | \n",
+ " GET | \n",
+ " /outputs/rook/cfa5965a-59bd-11ef-8cbb-fa163e93... | \n",
+ " HTTP/1.1 | \n",
+ " 200 | \n",
+ " 61905737 | \n",
+ " - | \n",
+ " Python-urllib/3.6\" \"- | \n",
+ " pr_day_HadGEM3-GC31-LL_historical_r1i1p1f3_gn_... | \n",
+ " cmip6 | \n",
+ " pr_day_HadGEM3-GC31-LL_historical | \n",
+ " 19810101-20101230.nc | \n",
+ " r1i1p1f3 | \n",
+ " historical | \n",
+ " HadGEM3-GC31-LL | \n",
+ " day | \n",
+ " pr | \n",
+ "
\n",
+ " \n",
+ "\n",
+ "221016 rows × 20 columns
\n",
+ ""
+ ],
+ "text/plain": [
+ " remote_host_ip ip_number datetime timezone \\\n",
+ "0 136.156.155.149 2291964821 2024-08-14 00:13:10 200 \n",
+ "1 136.156.153.235 2291964395 2024-08-14 00:13:32 200 \n",
+ "2 136.156.153.87 2291964247 2024-08-14 00:13:44 200 \n",
+ "3 136.156.153.87 2291964247 2024-08-14 00:14:03 200 \n",
+ "4 136.156.154.193 2291964609 2024-08-14 00:14:33 200 \n",
+ "... ... ... ... ... \n",
+ "221072 136.156.155.149 2291964821 2024-08-13 22:23:46 200 \n",
+ "221073 136.156.155.140 2291964812 2024-08-13 23:25:52 200 \n",
+ "221074 136.156.155.140 2291964812 2024-08-13 23:38:35 200 \n",
+ "221075 136.156.153.235 2291964395 2024-08-13 23:43:14 200 \n",
+ "221076 136.156.153.87 2291964247 2024-08-13 23:48:47 200 \n",
+ "\n",
+ " request_type request \\\n",
+ "0 GET /outputs/rook/3769991e-59c1-11ef-b5c0-fa163e93... \n",
+ "1 GET /outputs/rook/46226da0-59c1-11ef-84a3-fa163e93... \n",
+ "2 GET /outputs/rook/4ddbf048-59c1-11ef-989d-fa163e93... \n",
+ "3 GET /outputs/rook/579ddfba-59c1-11ef-952a-fa163e93... \n",
+ "4 GET /outputs/rook/6a7586b0-59c1-11ef-80c3-fa163e93... \n",
+ "... ... ... \n",
+ "221072 GET /outputs/rook/6a0d75ee-59b1-11ef-a3da-fa163e93... \n",
+ "221073 GET /outputs/rook/9ce7a396-59ba-11ef-8c38-fa163e93... \n",
+ "221074 GET /outputs/rook/640bb8ee-59bc-11ef-b16c-fa163e93... \n",
+ "221075 GET /outputs/rook/08a515bc-59bd-11ef-87ce-fa163e93... \n",
+ "221076 GET /outputs/rook/cfa5965a-59bd-11ef-8cbb-fa163e93... \n",
+ "\n",
+ " protocol status_code size referer user_agent \\\n",
+ "0 HTTP/1.1 200 1984894 - Python-urllib/3.6\" \"- \n",
+ "1 HTTP/1.1 200 215882 - Python-urllib/3.6\" \"- \n",
+ "2 HTTP/1.1 200 168461 - Python-urllib/3.6\" \"- \n",
+ "3 HTTP/1.1 200 2560814 - Python-urllib/3.6\" \"- \n",
+ "4 HTTP/1.1 200 154219 - Python-urllib/3.6\" \"- \n",
+ "... ... ... ... ... ... \n",
+ "221072 HTTP/1.1 200 1833360810 - Python-urllib/3.6\" \"- \n",
+ "221073 HTTP/1.1 200 60959274 - Python-urllib/3.6\" \"- \n",
+ "221074 HTTP/1.1 200 347631 - Python-urllib/3.6\" \"- \n",
+ "221075 HTTP/1.1 200 127257297 - Python-urllib/3.6\" \"- \n",
+ "221076 HTTP/1.1 200 61905737 - Python-urllib/3.6\" \"- \n",
+ "\n",
+ " filename collection \\\n",
+ "0 ta_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20220816... cmip6 \n",
+ "1 uas_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... cmip6 \n",
+ "2 tas_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... cmip6 \n",
+ "3 hur_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... cmip6 \n",
+ "4 psl_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_2022081... cmip6 \n",
+ "... ... ... \n",
+ "221072 pr_day_ACCESS-CM2_ssp245_r1i1p1f1_gn_20150101-... cmip6 \n",
+ "221073 pr_day_MIROC6_historical_r1i1p1f1_gn_19810101-... cmip6 \n",
+ "221074 tos_Omon_CanESM5-CanOE_ssp585_r1i1p2f1_gn_2050... cmip6 \n",
+ "221075 pr_day_NorESM2-MM_historical_r1i1p1f1_gn_19810... cmip6 \n",
+ "221076 pr_day_HadGEM3-GC31-LL_historical_r1i1p1f3_gn_... cmip6 \n",
+ "\n",
+ " name t r \\\n",
+ "0 ta_Amon_GFDL-ESM4_ssp585 20220816-20220816.nc r1i1p1f1 \n",
+ "1 uas_Amon_GFDL-ESM4_ssp585 20220816-20220816.nc r1i1p1f1 \n",
+ "2 tas_Amon_GFDL-ESM4_ssp585 20220816-20220816.nc r1i1p1f1 \n",
+ "3 hur_Amon_GFDL-ESM4_ssp585 20220816-20220816.nc r1i1p1f1 \n",
+ "4 psl_Amon_GFDL-ESM4_ssp585 20220816-20220816.nc r1i1p1f1 \n",
+ "... ... ... ... \n",
+ "221072 pr_day_ACCESS-CM2_ssp245 20150101-20640705.nc r1i1p1f1 \n",
+ "221073 pr_day_MIROC6_historical 19810101-20101231.nc r1i1p1f1 \n",
+ "221074 tos_Omon_CanESM5-CanOE_ssp585 20500116-20991216.nc r1i1p2f1 \n",
+ "221075 pr_day_NorESM2-MM_historical 19810101-20101231.nc r1i1p1f1 \n",
+ "221076 pr_day_HadGEM3-GC31-LL_historical 19810101-20101230.nc r1i1p1f3 \n",
+ "\n",
+ " experiment model freq var \n",
+ "0 ssp585 GFDL-ESM4 Amon ta \n",
+ "1 ssp585 GFDL-ESM4 Amon uas \n",
+ "2 ssp585 GFDL-ESM4 Amon tas \n",
+ "3 ssp585 GFDL-ESM4 Amon hur \n",
+ "4 ssp585 GFDL-ESM4 Amon psl \n",
+ "... ... ... ... ... \n",
+ "221072 ssp245 ACCESS-CM2 day pr \n",
+ "221073 historical MIROC6 day pr \n",
+ "221074 ssp585 CanESM5-CanOE Omon tos \n",
+ "221075 historical NorESM2-MM day pr \n",
+ "221076 historical HadGEM3-GC31-LL day pr \n",
+ "\n",
+ "[221016 rows x 20 columns]"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df = df[df['collection'] == 'cmip6']\n",
+ "df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "aef18386-4535-48d1-903e-773f73d804c3",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['136.156.155.149', '136.156.153.235', '136.156.153.87',\n",
+ " '136.156.154.193', '136.156.155.140', '136.156.152.196',\n",
+ " '136.156.153.89', '136.156.153.31', '136.156.155.122',\n",
+ " '136.156.152.141', '136.156.152.147', '136.156.152.91',\n",
+ " '136.156.140.74', '136.156.153.251', '136.156.152.6',\n",
+ " '136.156.136.226', '136.156.136.176', '136.156.137.214',\n",
+ " '136.156.138.214', '136.156.153.33', '136.156.137.155',\n",
+ " '136.156.139.60', '136.156.155.119', '136.156.138.199',\n",
+ " '136.156.139.223', '136.156.140.91', '136.156.137.122',\n",
+ " '136.156.138.149', '136.156.139.106', '136.156.155.89',\n",
+ " '136.156.152.219', '136.156.153.93', '136.156.154.199',\n",
+ " '136.156.138.193', '136.172.60.11', '136.156.139.188',\n",
+ " '136.156.138.53', '136.172.8.35', '136.156.133.105',\n",
+ " '136.156.132.41', '136.156.139.146', '136.156.140.167',\n",
+ " '136.156.139.101', '136.156.137.62', '136.156.137.114',\n",
+ " '136.156.137.247', '136.156.140.238', '136.156.138.207',\n",
+ " '136.156.140.220', '136.156.139.93'], dtype=object)"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[\"remote_host_ip\"].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "dff09774-b032-434c-838e-18322898224e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " ip | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 136.156.152.196 | \n",
+ " 11136 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 136.156.153.89 | \n",
+ " 11063 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 136.156.153.235 | \n",
+ " 11013 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 136.156.155.140 | \n",
+ " 10952 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 136.156.153.93 | \n",
+ " 10929 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 136.156.152.219 | \n",
+ " 10889 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 136.156.152.141 | \n",
+ " 10862 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 136.156.154.193 | \n",
+ " 10851 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 136.156.154.199 | \n",
+ " 10821 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 136.156.152.91 | \n",
+ " 10767 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 136.156.153.87 | \n",
+ " 10715 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 136.156.155.122 | \n",
+ " 10700 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 136.156.155.119 | \n",
+ " 10668 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 136.156.155.149 | \n",
+ " 10577 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 136.156.153.31 | \n",
+ " 10577 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 136.156.152.6 | \n",
+ " 10514 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 136.156.152.147 | \n",
+ " 10483 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 136.156.155.89 | \n",
+ " 10477 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 136.156.153.33 | \n",
+ " 10404 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 136.156.153.251 | \n",
+ " 10328 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 136.156.138.207 | \n",
+ " 531 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 136.156.140.74 | \n",
+ " 512 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 136.156.139.188 | \n",
+ " 488 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 136.156.139.223 | \n",
+ " 420 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 136.156.140.238 | \n",
+ " 400 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 136.156.140.167 | \n",
+ " 395 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 136.156.138.199 | \n",
+ " 379 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 136.156.139.146 | \n",
+ " 327 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 136.156.139.101 | \n",
+ " 325 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 136.156.138.149 | \n",
+ " 298 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 136.156.140.220 | \n",
+ " 298 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 136.156.139.93 | \n",
+ " 283 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 136.156.137.62 | \n",
+ " 276 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 136.156.137.114 | \n",
+ " 256 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " 136.156.137.247 | \n",
+ " 247 | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " 136.156.136.226 | \n",
+ " 126 | \n",
+ "
\n",
+ " \n",
+ " 36 | \n",
+ " 136.156.139.106 | \n",
+ " 109 | \n",
+ "
\n",
+ " \n",
+ " 37 | \n",
+ " 136.156.139.60 | \n",
+ " 96 | \n",
+ "
\n",
+ " \n",
+ " 38 | \n",
+ " 136.156.137.122 | \n",
+ " 89 | \n",
+ "
\n",
+ " \n",
+ " 39 | \n",
+ " 136.156.140.91 | \n",
+ " 76 | \n",
+ "
\n",
+ " \n",
+ " 40 | \n",
+ " 136.156.138.214 | \n",
+ " 75 | \n",
+ "
\n",
+ " \n",
+ " 41 | \n",
+ " 136.156.137.155 | \n",
+ " 73 | \n",
+ "
\n",
+ " \n",
+ " 42 | \n",
+ " 136.156.136.176 | \n",
+ " 72 | \n",
+ "
\n",
+ " \n",
+ " 43 | \n",
+ " 136.156.137.214 | \n",
+ " 63 | \n",
+ "
\n",
+ " \n",
+ " 44 | \n",
+ " 136.156.138.193 | \n",
+ " 50 | \n",
+ "
\n",
+ " \n",
+ " 45 | \n",
+ " 136.172.60.11 | \n",
+ " 14 | \n",
+ "
\n",
+ " \n",
+ " 46 | \n",
+ " 136.156.138.53 | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " 47 | \n",
+ " 136.156.132.41 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 48 | \n",
+ " 136.156.133.105 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 49 | \n",
+ " 136.172.8.35 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " ip count\n",
+ "0 136.156.152.196 11136\n",
+ "1 136.156.153.89 11063\n",
+ "2 136.156.153.235 11013\n",
+ "3 136.156.155.140 10952\n",
+ "4 136.156.153.93 10929\n",
+ "5 136.156.152.219 10889\n",
+ "6 136.156.152.141 10862\n",
+ "7 136.156.154.193 10851\n",
+ "8 136.156.154.199 10821\n",
+ "9 136.156.152.91 10767\n",
+ "10 136.156.153.87 10715\n",
+ "11 136.156.155.122 10700\n",
+ "12 136.156.155.119 10668\n",
+ "13 136.156.155.149 10577\n",
+ "14 136.156.153.31 10577\n",
+ "15 136.156.152.6 10514\n",
+ "16 136.156.152.147 10483\n",
+ "17 136.156.155.89 10477\n",
+ "18 136.156.153.33 10404\n",
+ "19 136.156.153.251 10328\n",
+ "20 136.156.138.207 531\n",
+ "21 136.156.140.74 512\n",
+ "22 136.156.139.188 488\n",
+ "23 136.156.139.223 420\n",
+ "24 136.156.140.238 400\n",
+ "25 136.156.140.167 395\n",
+ "26 136.156.138.199 379\n",
+ "27 136.156.139.146 327\n",
+ "28 136.156.139.101 325\n",
+ "29 136.156.138.149 298\n",
+ "30 136.156.140.220 298\n",
+ "31 136.156.139.93 283\n",
+ "32 136.156.137.62 276\n",
+ "33 136.156.137.114 256\n",
+ "34 136.156.137.247 247\n",
+ "35 136.156.136.226 126\n",
+ "36 136.156.139.106 109\n",
+ "37 136.156.139.60 96\n",
+ "38 136.156.137.122 89\n",
+ "39 136.156.140.91 76\n",
+ "40 136.156.138.214 75\n",
+ "41 136.156.137.155 73\n",
+ "42 136.156.136.176 72\n",
+ "43 136.156.137.214 63\n",
+ "44 136.156.138.193 50\n",
+ "45 136.172.60.11 14\n",
+ "46 136.156.138.53 9\n",
+ "47 136.156.132.41 1\n",
+ "48 136.156.133.105 1\n",
+ "49 136.172.8.35 1"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ip_counts = df['remote_host_ip'].value_counts().reset_index()\n",
+ "ip_counts.columns = ['ip', 'count']\n",
+ "ip_counts"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "820f5f2e-5b40-45ce-aa1d-50711dabc08e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([200])"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[\"status_code\"].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "bb4982e2-4fa7-4442-b5d3-103eeabae6cd",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['Python-urllib/3.6\" \"-', 'python-requests/2.32.3\" \"-',\n",
+ " 'python-requests/2.31.0\" \"-',\n",
+ " 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36\" \"-'],\n",
+ " dtype=object)"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[\"user_agent\"].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "0a5cea25-afb7-4fe3-8f67-18971c6ceabe",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " user_agent | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " Python-urllib/3.6\" \"- | \n",
+ " 214726 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " python-requests/2.32.3\" \"- | \n",
+ " 6282 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " python-requests/2.31.0\" \"- | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " Mozilla/5.0 (Windows NT 10.0; Win64; x64) Appl... | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " user_agent count\n",
+ "0 Python-urllib/3.6\" \"- 214726\n",
+ "1 python-requests/2.32.3\" \"- 6282\n",
+ "2 python-requests/2.31.0\" \"- 7\n",
+ "3 Mozilla/5.0 (Windows NT 10.0; Win64; x64) Appl... 1"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "agent_counts = df['user_agent'].value_counts().reset_index()\n",
+ "agent_counts.columns = ['user_agent', 'count']\n",
+ "agent_counts"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "29c3b4f3-ed11-4142-8a1a-251c3a65e877",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([1984894, 215882, 168461, ..., 121306, 523432, 347631])"
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[\"size\"].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "4735e2f1-8089-44cd-b63f-1e812b92d107",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " size | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 46313 | \n",
+ " 1498 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 60707 | \n",
+ " 1465 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 59543 | \n",
+ " 1427 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 45111 | \n",
+ " 1406 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 45242 | \n",
+ " 1230 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 94576 | \n",
+ " 1061288 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 94577 | \n",
+ " 1061453 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 94578 | \n",
+ " 1059414 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 94579 | \n",
+ " 1062793 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 94580 | \n",
+ " 347631 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
94581 rows × 2 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " size count\n",
+ "0 46313 1498\n",
+ "1 60707 1465\n",
+ "2 59543 1427\n",
+ "3 45111 1406\n",
+ "4 45242 1230\n",
+ "... ... ...\n",
+ "94576 1061288 1\n",
+ "94577 1061453 1\n",
+ "94578 1059414 1\n",
+ "94579 1062793 1\n",
+ "94580 347631 1\n",
+ "\n",
+ "[94581 rows x 2 columns]"
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "size_counts = df['size'].value_counts().reset_index()\n",
+ "size_counts.columns = ['size', 'count']\n",
+ "size_counts"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "f64614a9-546c-4a77-8d75-ec5a6bd1836d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['ta_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20220816-20220816.nc',\n",
+ " 'uas_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20220816-20220816.nc',\n",
+ " 'tas_Amon_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20220816-20220816.nc', ...,\n",
+ " 'tas_Amon_MPI-ESM1-2-LR_ssp370_r1i1p1f1_gn_20200116-21001216.nc',\n",
+ " 'tas_Amon_MPI-ESM1-2-LR_ssp585_r1i1p1f1_gn_20200116-21001216.nc',\n",
+ " 'tos_Omon_CanESM5-CanOE_ssp585_r1i1p2f1_gn_20500116-20991216.nc'],\n",
+ " dtype=object)"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[\"filename\"].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "ba4f3d0d-eb9d-45a0-ad03-2fd3378f948b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['ta_Amon_GFDL-ESM4_ssp585', 'uas_Amon_GFDL-ESM4_ssp585',\n",
+ " 'tas_Amon_GFDL-ESM4_ssp585', ..., 'vas_Amon_MPI-ESM1-2-LR_ssp585',\n",
+ " 'uas_Amon_MPI-ESM1-2-LR_ssp245', 'uas_Amon_MPI-ESM1-2-LR_ssp585'],\n",
+ " dtype=object)"
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[\"name\"].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "eeeefcf8-f457-470f-ba64-4486a2c7ccd4",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['r1i1p1f1', 'r1i1p1f2', 'r1i1p2f1', 'r4i1p1f1', 'r1i1p1f3',\n",
+ " 'r2i1p1f1', 'r101i1p1f1', 'r13i1p1f2', 'r14i1p1f2', 'r10i1p1f1',\n",
+ " 'r1i1p4f2', 'r1i1p5f2', 'r0i0p0f2', 'r5i1p1f1', 'r3i1p1f1',\n",
+ " 'r10i1p1f2', 'r2i1p1f2'], dtype=object)"
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[\"r\"].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "671d4b0c-7e8f-48fc-a061-271a2630ddc8",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['20220816-20220816.nc', '20230116-20231216.nc',\n",
+ " '18500116-20141216.nc', ..., '20150101-20551230.nc',\n",
+ " '19600116-19901216.nc', '20150116-20481216.nc'], dtype=object)"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[\"t\"].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "bdf4add0-6ae8-41c8-ae42-5583b0713918",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['ssp585', 'ssp126', 'historical', 'ssp370', 'ssp119', 'ssp245',\n",
+ " 'ssp434', 'dcppA-hindcast', 'dcppB-forecast', 'ssp460',\n",
+ " 'ssp534-over'], dtype=object)"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[\"experiment\"].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "id": "5390a351-649a-4559-a8a9-3486ee5d300b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['GFDL-ESM4', 'CNRM-CM6-1-HR', 'CanESM5', 'CMCC-ESM2', 'FGOALS-g3',\n",
+ " 'MPI-ESM1-2-LR', 'INM-CM4-8', 'ACCESS-CM2', 'AWI-CM-1-1-MR',\n",
+ " 'BCC-CSM2-MR', 'CAMS-CSM1-0', 'CanESM5-CanOE', 'EC-Earth3-AerChem',\n",
+ " 'INM-CM5-0', 'IPSL-CM6A-LR', 'MIROC6', 'MIROC-ES2L', 'FGOALS-f3-L',\n",
+ " 'NorESM2-MM', 'TaiESM1', 'CESM2-WACCM', 'CESM2', 'CMCC-CM2-SR5',\n",
+ " 'EC-Earth3-Veg', 'CNRM-CM6-1', 'CNRM-ESM2-1', 'EC-Earth3-Veg-LR',\n",
+ " 'IPSL-CM5A2-INCA', 'KACE-1-0-G', 'MCM-UA-1-0', 'UKESM1-0-LL',\n",
+ " 'NorESM2-LM', 'EC-Earth3-CC', 'FIO-ESM-2-0', 'NESM3',\n",
+ " 'ACCESS-ESM1-5', 'MRI-ESM2-0', 'EC-Earth3', 'CMCC-CM2-HR4',\n",
+ " 'HadGEM3-GC31-MM', 'AWI-ESM-1-1-LR', 'HadGEM3-GC31-LL', 'IITM-ESM',\n",
+ " 'KIOST-ESM', 'MPI-ESM-1-2-HAM', 'E3SM-1-1', 'CIESM', 'CESM2-FV2',\n",
+ " 'MPI-ESM1-2-HR', 'CESM2-WACCM-FV2', 'E3SM-1-0', 'E3SM-1-1-ECA',\n",
+ " 'NorCPM1', 'BCC-ESM1', 'MIROC-ES2H', 'SAM0-UNICON', 'GISS-E2-1-G',\n",
+ " 'GISS-E2-1-H'], dtype=object)"
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[\"model\"].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "id": "20eb375e-aee5-4195-b82a-fae9b00c7c67",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['ta', 'uas', 'tas', 'hur', 'psl', 'hus', 'huss', 'ts', 'ua', 'zg',\n",
+ " 'mrsos', 'sfcWind', 'va', 'ps', 'clt', 'pr', 'zos', 'hurs', 'mrro',\n",
+ " 'tasmax', 'tasmin', 'evspsbl', 'rlut', 'rlds', 'rsds', 'tos',\n",
+ " 'vas', 'sos', 'prsn', 'rsdt', 'snd', 'snw', 'siconc', 'rlus',\n",
+ " 'rsus', 'sithick', 'hfls', 'hfss', 'zg500', 'simass', 'rsut',\n",
+ " 'tauu', 'tauv', 'area'], dtype=object)"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[\"var\"].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "id": "93d4cd72-6bf8-4c9a-b092-5592c7d2de8e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['Amon', 'Lmon', 'Omon', 'day', 'LImon', 'SImon', 'AERday'],\n",
+ " dtype=object)"
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[\"freq\"].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "id": "dda6b71e-b27b-4d63-94df-80ec09fa0091",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " name | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " pr_Amon_UKESM1-0-LL_ssp245 | \n",
+ " 2110 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " pr_day_UKESM1-0-LL_ssp245 | \n",
+ " 1338 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " pr_day_GFDL-ESM4_ssp585 | \n",
+ " 1294 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " pr_day_ACCESS-CM2_ssp585 | \n",
+ " 1260 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " pr_day_INM-CM5-0_ssp585 | \n",
+ " 1208 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 4990 | \n",
+ " tasmax_Amon_INM-CM4-8_ssp370 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 4991 | \n",
+ " vas_Amon_CNRM-CM6-1_ssp245 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 4992 | \n",
+ " vas_Amon_CNRM-ESM2-1_ssp245 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 4993 | \n",
+ " psl_Amon_CNRM-ESM2-1_ssp434 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 4994 | \n",
+ " uas_Amon_MPI-ESM1-2-LR_ssp585 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
4995 rows × 2 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " name count\n",
+ "0 pr_Amon_UKESM1-0-LL_ssp245 2110\n",
+ "1 pr_day_UKESM1-0-LL_ssp245 1338\n",
+ "2 pr_day_GFDL-ESM4_ssp585 1294\n",
+ "3 pr_day_ACCESS-CM2_ssp585 1260\n",
+ "4 pr_day_INM-CM5-0_ssp585 1208\n",
+ "... ... ...\n",
+ "4990 tasmax_Amon_INM-CM4-8_ssp370 1\n",
+ "4991 vas_Amon_CNRM-CM6-1_ssp245 1\n",
+ "4992 vas_Amon_CNRM-ESM2-1_ssp245 1\n",
+ "4993 psl_Amon_CNRM-ESM2-1_ssp434 1\n",
+ "4994 uas_Amon_MPI-ESM1-2-LR_ssp585 1\n",
+ "\n",
+ "[4995 rows x 2 columns]"
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "name_counts = df['name'].value_counts().reset_index()\n",
+ "name_counts.columns = ['name', 'count']\n",
+ "name_counts"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "id": "1f3bcb80-c456-46d6-8cc5-dc20ed2e41ae",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " name | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " pr_Amon_UKESM1-0-LL_ssp245 | \n",
+ " 2110 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " pr_day_UKESM1-0-LL_ssp245 | \n",
+ " 1338 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " pr_day_GFDL-ESM4_ssp585 | \n",
+ " 1294 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " pr_day_ACCESS-CM2_ssp585 | \n",
+ " 1260 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " pr_day_INM-CM5-0_ssp585 | \n",
+ " 1208 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " pr_day_AWI-CM-1-1-MR_ssp585 | \n",
+ " 1189 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " pr_day_EC-Earth3-Veg-LR_ssp585 | \n",
+ " 1189 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " pr_day_MIROC6_ssp585 | \n",
+ " 1164 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " pr_day_MRI-ESM2-0_ssp585 | \n",
+ " 1133 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " pr_day_CESM2_ssp585 | \n",
+ " 1124 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " name count\n",
+ "0 pr_Amon_UKESM1-0-LL_ssp245 2110\n",
+ "1 pr_day_UKESM1-0-LL_ssp245 1338\n",
+ "2 pr_day_GFDL-ESM4_ssp585 1294\n",
+ "3 pr_day_ACCESS-CM2_ssp585 1260\n",
+ "4 pr_day_INM-CM5-0_ssp585 1208\n",
+ "5 pr_day_AWI-CM-1-1-MR_ssp585 1189\n",
+ "6 pr_day_EC-Earth3-Veg-LR_ssp585 1189\n",
+ "7 pr_day_MIROC6_ssp585 1164\n",
+ "8 pr_day_MRI-ESM2-0_ssp585 1133\n",
+ "9 pr_day_CESM2_ssp585 1124"
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "name_counts.head(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "id": "1a05324a-12b4-4aa5-ba26-813606245aab",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 29,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "name_counts.plot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "id": "7995a068-e212-4d9d-b924-a01ff7cc0df3",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " r | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " r1i1p1f1 | \n",
+ " 159146 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " r1i1p1f2 | \n",
+ " 38640 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " r4i1p1f1 | \n",
+ " 7504 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " r1i1p1f3 | \n",
+ " 6851 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " r2i1p1f1 | \n",
+ " 3807 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " r1i1p2f1 | \n",
+ " 2453 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " r13i1p1f2 | \n",
+ " 2061 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " r14i1p1f2 | \n",
+ " 252 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " r10i1p1f1 | \n",
+ " 127 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " r101i1p1f1 | \n",
+ " 90 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " r1i1p4f2 | \n",
+ " 51 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " r10i1p1f2 | \n",
+ " 13 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " r1i1p5f2 | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " r0i0p0f2 | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " r5i1p1f1 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " r3i1p1f1 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " r2i1p1f2 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " r count\n",
+ "0 r1i1p1f1 159146\n",
+ "1 r1i1p1f2 38640\n",
+ "2 r4i1p1f1 7504\n",
+ "3 r1i1p1f3 6851\n",
+ "4 r2i1p1f1 3807\n",
+ "5 r1i1p2f1 2453\n",
+ "6 r13i1p1f2 2061\n",
+ "7 r14i1p1f2 252\n",
+ "8 r10i1p1f1 127\n",
+ "9 r101i1p1f1 90\n",
+ "10 r1i1p4f2 51\n",
+ "11 r10i1p1f2 13\n",
+ "12 r1i1p5f2 7\n",
+ "13 r0i0p0f2 7\n",
+ "14 r5i1p1f1 3\n",
+ "15 r3i1p1f1 2\n",
+ "16 r2i1p1f2 2"
+ ]
+ },
+ "execution_count": 30,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "r_counts = df['r'].value_counts().reset_index()\n",
+ "r_counts.columns = ['r', 'count']\n",
+ "r_counts"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "id": "b323a55e-b746-4da5-8f8a-7f816539570b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " r | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " r1i1p1f1 | \n",
+ " 159146 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " r1i1p1f2 | \n",
+ " 38640 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " r4i1p1f1 | \n",
+ " 7504 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " r1i1p1f3 | \n",
+ " 6851 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " r2i1p1f1 | \n",
+ " 3807 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " r count\n",
+ "0 r1i1p1f1 159146\n",
+ "1 r1i1p1f2 38640\n",
+ "2 r4i1p1f1 7504\n",
+ "3 r1i1p1f3 6851\n",
+ "4 r2i1p1f1 3807"
+ ]
+ },
+ "execution_count": 31,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "r_counts.head(5)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "id": "99db9042-a84f-40da-afc5-b833553c3acf",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "r_counts.plot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "id": "f5d656bd-920d-43f3-b41d-beb0627c42df",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " t | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 20150116-21001216.nc | \n",
+ " 3571 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 20150101-21001231.nc | \n",
+ " 3270 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 20150101-20991231.nc | \n",
+ " 1566 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 20200101-20601231.nc | \n",
+ " 1557 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 18500116-20141216.nc | \n",
+ " 1392 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 7254 | \n",
+ " 18500116-18920916.nc | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 7255 | \n",
+ " 18500116-19510616.nc | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 7256 | \n",
+ " 20281115-20281115.nc | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 7257 | \n",
+ " 20140117-20140717.nc | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 7258 | \n",
+ " 20150116-20481216.nc | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
7259 rows × 2 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " t count\n",
+ "0 20150116-21001216.nc 3571\n",
+ "1 20150101-21001231.nc 3270\n",
+ "2 20150101-20991231.nc 1566\n",
+ "3 20200101-20601231.nc 1557\n",
+ "4 18500116-20141216.nc 1392\n",
+ "... ... ...\n",
+ "7254 18500116-18920916.nc 1\n",
+ "7255 18500116-19510616.nc 1\n",
+ "7256 20281115-20281115.nc 1\n",
+ "7257 20140117-20140717.nc 1\n",
+ "7258 20150116-20481216.nc 1\n",
+ "\n",
+ "[7259 rows x 2 columns]"
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "t_counts = df['t'].value_counts().reset_index()\n",
+ "t_counts.columns = ['t', 'count']\n",
+ "t_counts"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "id": "e84f9a3b-56e1-4627-99e4-75214964a957",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " t | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 20150116-21001216.nc | \n",
+ " 3571 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 20150101-21001231.nc | \n",
+ " 3270 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 20150101-20991231.nc | \n",
+ " 1566 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 20200101-20601231.nc | \n",
+ " 1557 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 18500116-20141216.nc | \n",
+ " 1392 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 20300101-20301231.nc | \n",
+ " 1363 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 20500101-20501231.nc | \n",
+ " 1249 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 20250101-20251231.nc | \n",
+ " 1222 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 20150116-20991216.nc | \n",
+ " 971 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 21000101-21001231.nc | \n",
+ " 945 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " t count\n",
+ "0 20150116-21001216.nc 3571\n",
+ "1 20150101-21001231.nc 3270\n",
+ "2 20150101-20991231.nc 1566\n",
+ "3 20200101-20601231.nc 1557\n",
+ "4 18500116-20141216.nc 1392\n",
+ "5 20300101-20301231.nc 1363\n",
+ "6 20500101-20501231.nc 1249\n",
+ "7 20250101-20251231.nc 1222\n",
+ "8 20150116-20991216.nc 971\n",
+ "9 21000101-21001231.nc 945"
+ ]
+ },
+ "execution_count": 34,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "t_counts.head(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "id": "b283e5f7-b2c0-4c44-bc4b-11e02f5272b6",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 35,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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r8LCQl111VV6/vnnNWbMGEmx2e5gMKjRo0dr6dKlkqQbbrhBe/bs0cqVK/XDH/7QrovFtndas2aNpkyZouzs7JDtsdxmiZ6YCzZw4EDFxcV1S551dXXdkm606pzFcL42er1etba2qr6+/rw1R44c6Xb+o0ePOvq7mjt3rl599VW9/fbbGjRokL09ltudmJioq6++WqNHj1Zpaamuv/56Pf300zHd5qqqKtXV1WnUqFGKj49XfHy8Nm/erF/+8peKj4+3rysW295VSkqK8vPztX///pj+m2dlZenaa68N2TZixAh98sknkmL7v3FJ+vjjj7Vx40Y98MAD9rZYb3MnQswFSkxM1KhRo1RRURGyvaKiQmPHjnXoqnpWbm6uvF5vSBtbW1u1efNmu42jRo1SQkJCSE1NTY12795t1xQWFsrn82nHjh12zfbt2+Xz+Rz5XRljNGfOHL388st66623lJubG7I/Vtt9NsYY+f3+mG7zhAkTtGvXLlVXV9uv0aNH695771V1dbX+5m/+Jmbb3pXf79cHH3ygrKysmP6bf/Ob3+y2bML//u//asiQIZJi/7/x5557ThkZGfr2t79tb4v1Ntu+siHEMaBzivWaNWvM3r17TUlJiUlJSTEHDx50+tIuWFNTk3nvvffMe++9ZySZp556yrz33nv2NPFly5YZy7LMyy+/bHbt2mV+8IMfnHVK3qBBg8zGjRvNn//8Z3PrrbeedUreyJEjTWVlpamsrDT5+fmOTcn70Y9+ZCzLMps2bQqZjnjixAm7JhbbvWjRIvPOO++YAwcOmPfff98sXrzYuN1u8+abbxpjYrPN53Lm7CRjYrftCxYsMJs2bTIfffSR2bZtmykqKjKpqan2/0bFart37Nhh4uPjzc9+9jOzf/9+s379epOcnGxeeOEFuyZW2x4IBMzgwYPNo48+2m1frLb5TISYMP3Hf/yHGTJkiElMTDRf//rX7Wm60eLtt982krq9pk+fbozpmIr4+OOPG6/Xazwej7n55pvNrl27Qs7R0tJi5syZY9LT001SUpIpKioyn3zySUjNsWPHzL333mtSU1NNamqquffee019ff1X1MpQZ2uvJPPcc8/ZNbHY7vvuu8/+d/WKK64wEyZMsAOMMbHZ5nPpGmJite2d64AkJCSY7Oxsc9ddd5k9e/bY+2O13cYY84c//MHk5eUZj8djrrnmGvOrX/0qZH+stv2NN94wksy+ffu67YvVNp/JZYwxjnQBAQAAXATGxAAAgKhEiAEAAFGJEAMAAKISIQYAAEQlQgwAAIhKhBgAABCVCDEAACAqEWIAAEBUIsQAAICoRIgBAABRiRADAACiEiEGAABEpf8fNrIl6GdvbuUAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "t_counts.plot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "id": "625647bf-d465-49e4-a6ad-5e81ce84779d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " experiment | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " ssp585 | \n",
+ " 70566 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " ssp245 | \n",
+ " 46204 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " historical | \n",
+ " 35541 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " ssp370 | \n",
+ " 34477 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " ssp126 | \n",
+ " 31618 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " ssp119 | \n",
+ " 1951 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " ssp460 | \n",
+ " 263 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " ssp434 | \n",
+ " 234 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " dcppA-hindcast | \n",
+ " 132 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " ssp534-over | \n",
+ " 22 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " dcppB-forecast | \n",
+ " 8 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " experiment count\n",
+ "0 ssp585 70566\n",
+ "1 ssp245 46204\n",
+ "2 historical 35541\n",
+ "3 ssp370 34477\n",
+ "4 ssp126 31618\n",
+ "5 ssp119 1951\n",
+ "6 ssp460 263\n",
+ "7 ssp434 234\n",
+ "8 dcppA-hindcast 132\n",
+ "9 ssp534-over 22\n",
+ "10 dcppB-forecast 8"
+ ]
+ },
+ "execution_count": 36,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "exp_counts = df['experiment'].value_counts().reset_index()\n",
+ "exp_counts.columns = ['experiment', 'count']\n",
+ "exp_counts"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "id": "b3f0c2a9-88a4-4545-aff2-946526fffbbe",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " experiment | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " ssp585 | \n",
+ " 70566 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " ssp245 | \n",
+ " 46204 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " historical | \n",
+ " 35541 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " ssp370 | \n",
+ " 34477 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " ssp126 | \n",
+ " 31618 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " ssp119 | \n",
+ " 1951 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " ssp460 | \n",
+ " 263 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " experiment count\n",
+ "0 ssp585 70566\n",
+ "1 ssp245 46204\n",
+ "2 historical 35541\n",
+ "3 ssp370 34477\n",
+ "4 ssp126 31618\n",
+ "5 ssp119 1951\n",
+ "6 ssp460 263"
+ ]
+ },
+ "execution_count": 37,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "exp_counts.head(7)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "id": "2d1fe476-924a-4bde-ba2e-9f1310e91aef",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 38,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "exp_counts.plot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "id": "b3066814-9872-4125-84d5-116c3d1092d6",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " model | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " MPI-ESM1-2-LR | \n",
+ " 11488 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " ACCESS-CM2 | \n",
+ " 10331 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " CNRM-ESM2-1 | \n",
+ " 9546 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " MIROC-ES2L | \n",
+ " 9479 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " MRI-ESM2-0 | \n",
+ " 9421 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " GFDL-ESM4 | \n",
+ " 9174 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " UKESM1-0-LL | \n",
+ " 9024 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " MIROC6 | \n",
+ " 8766 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " CESM2 | \n",
+ " 8493 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " NorESM2-MM | \n",
+ " 8130 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " INM-CM5-0 | \n",
+ " 7985 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " EC-Earth3-Veg-LR | \n",
+ " 7759 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " IPSL-CM6A-LR | \n",
+ " 7263 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " CNRM-CM6-1 | \n",
+ " 7109 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " INM-CM4-8 | \n",
+ " 7003 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " BCC-CSM2-MR | \n",
+ " 6802 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " CMCC-ESM2 | \n",
+ " 5768 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " AWI-CM-1-1-MR | \n",
+ " 5561 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " CNRM-CM6-1-HR | \n",
+ " 5545 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " CMCC-CM2-SR5 | \n",
+ " 5429 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " CanESM5 | \n",
+ " 5142 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " EC-Earth3-CC | \n",
+ " 5067 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " KACE-1-0-G | \n",
+ " 4375 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " FGOALS-g3 | \n",
+ " 4304 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " HadGEM3-GC31-LL | \n",
+ " 4167 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " IITM-ESM | \n",
+ " 4083 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " TaiESM1 | \n",
+ " 3358 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " CAMS-CSM1-0 | \n",
+ " 3348 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " NorESM2-LM | \n",
+ " 3190 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " NESM3 | \n",
+ " 3118 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " KIOST-ESM | \n",
+ " 2972 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " HadGEM3-GC31-MM | \n",
+ " 2697 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " FGOALS-f3-L | \n",
+ " 2612 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " CanESM5-CanOE | \n",
+ " 2452 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " CESM2-WACCM | \n",
+ " 2369 | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " IPSL-CM5A2-INCA | \n",
+ " 1713 | \n",
+ "
\n",
+ " \n",
+ " 36 | \n",
+ " EC-Earth3-AerChem | \n",
+ " 1075 | \n",
+ "
\n",
+ " \n",
+ " 37 | \n",
+ " MPI-ESM1-2-HR | \n",
+ " 521 | \n",
+ "
\n",
+ " \n",
+ " 38 | \n",
+ " MPI-ESM-1-2-HAM | \n",
+ " 518 | \n",
+ "
\n",
+ " \n",
+ " 39 | \n",
+ " ACCESS-ESM1-5 | \n",
+ " 383 | \n",
+ "
\n",
+ " \n",
+ " 40 | \n",
+ " AWI-ESM-1-1-LR | \n",
+ " 380 | \n",
+ "
\n",
+ " \n",
+ " 41 | \n",
+ " EC-Earth3 | \n",
+ " 375 | \n",
+ "
\n",
+ " \n",
+ " 42 | \n",
+ " FIO-ESM-2-0 | \n",
+ " 326 | \n",
+ "
\n",
+ " \n",
+ " 43 | \n",
+ " BCC-ESM1 | \n",
+ " 301 | \n",
+ "
\n",
+ " \n",
+ " 44 | \n",
+ " CMCC-CM2-HR4 | \n",
+ " 289 | \n",
+ "
\n",
+ " \n",
+ " 45 | \n",
+ " CESM2-FV2 | \n",
+ " 285 | \n",
+ "
\n",
+ " \n",
+ " 46 | \n",
+ " SAM0-UNICON | \n",
+ " 262 | \n",
+ "
\n",
+ " \n",
+ " 47 | \n",
+ " CIESM | \n",
+ " 217 | \n",
+ "
\n",
+ " \n",
+ " 48 | \n",
+ " NorCPM1 | \n",
+ " 185 | \n",
+ "
\n",
+ " \n",
+ " 49 | \n",
+ " CESM2-WACCM-FV2 | \n",
+ " 172 | \n",
+ "
\n",
+ " \n",
+ " 50 | \n",
+ " MCM-UA-1-0 | \n",
+ " 146 | \n",
+ "
\n",
+ " \n",
+ " 51 | \n",
+ " GISS-E2-1-G | \n",
+ " 119 | \n",
+ "
\n",
+ " \n",
+ " 52 | \n",
+ " EC-Earth3-Veg | \n",
+ " 110 | \n",
+ "
\n",
+ " \n",
+ " 53 | \n",
+ " GISS-E2-1-H | \n",
+ " 94 | \n",
+ "
\n",
+ " \n",
+ " 54 | \n",
+ " E3SM-1-1 | \n",
+ " 68 | \n",
+ "
\n",
+ " \n",
+ " 55 | \n",
+ " MIROC-ES2H | \n",
+ " 51 | \n",
+ "
\n",
+ " \n",
+ " 56 | \n",
+ " E3SM-1-1-ECA | \n",
+ " 50 | \n",
+ "
\n",
+ " \n",
+ " 57 | \n",
+ " E3SM-1-0 | \n",
+ " 46 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " model count\n",
+ "0 MPI-ESM1-2-LR 11488\n",
+ "1 ACCESS-CM2 10331\n",
+ "2 CNRM-ESM2-1 9546\n",
+ "3 MIROC-ES2L 9479\n",
+ "4 MRI-ESM2-0 9421\n",
+ "5 GFDL-ESM4 9174\n",
+ "6 UKESM1-0-LL 9024\n",
+ "7 MIROC6 8766\n",
+ "8 CESM2 8493\n",
+ "9 NorESM2-MM 8130\n",
+ "10 INM-CM5-0 7985\n",
+ "11 EC-Earth3-Veg-LR 7759\n",
+ "12 IPSL-CM6A-LR 7263\n",
+ "13 CNRM-CM6-1 7109\n",
+ "14 INM-CM4-8 7003\n",
+ "15 BCC-CSM2-MR 6802\n",
+ "16 CMCC-ESM2 5768\n",
+ "17 AWI-CM-1-1-MR 5561\n",
+ "18 CNRM-CM6-1-HR 5545\n",
+ "19 CMCC-CM2-SR5 5429\n",
+ "20 CanESM5 5142\n",
+ "21 EC-Earth3-CC 5067\n",
+ "22 KACE-1-0-G 4375\n",
+ "23 FGOALS-g3 4304\n",
+ "24 HadGEM3-GC31-LL 4167\n",
+ "25 IITM-ESM 4083\n",
+ "26 TaiESM1 3358\n",
+ "27 CAMS-CSM1-0 3348\n",
+ "28 NorESM2-LM 3190\n",
+ "29 NESM3 3118\n",
+ "30 KIOST-ESM 2972\n",
+ "31 HadGEM3-GC31-MM 2697\n",
+ "32 FGOALS-f3-L 2612\n",
+ "33 CanESM5-CanOE 2452\n",
+ "34 CESM2-WACCM 2369\n",
+ "35 IPSL-CM5A2-INCA 1713\n",
+ "36 EC-Earth3-AerChem 1075\n",
+ "37 MPI-ESM1-2-HR 521\n",
+ "38 MPI-ESM-1-2-HAM 518\n",
+ "39 ACCESS-ESM1-5 383\n",
+ "40 AWI-ESM-1-1-LR 380\n",
+ "41 EC-Earth3 375\n",
+ "42 FIO-ESM-2-0 326\n",
+ "43 BCC-ESM1 301\n",
+ "44 CMCC-CM2-HR4 289\n",
+ "45 CESM2-FV2 285\n",
+ "46 SAM0-UNICON 262\n",
+ "47 CIESM 217\n",
+ "48 NorCPM1 185\n",
+ "49 CESM2-WACCM-FV2 172\n",
+ "50 MCM-UA-1-0 146\n",
+ "51 GISS-E2-1-G 119\n",
+ "52 EC-Earth3-Veg 110\n",
+ "53 GISS-E2-1-H 94\n",
+ "54 E3SM-1-1 68\n",
+ "55 MIROC-ES2H 51\n",
+ "56 E3SM-1-1-ECA 50\n",
+ "57 E3SM-1-0 46"
+ ]
+ },
+ "execution_count": 39,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "model_counts = df['model'].value_counts().reset_index()\n",
+ "model_counts.columns = ['model', 'count']\n",
+ "model_counts"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "id": "f1f908d6-4845-44b3-b73b-7487879c462f",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " model | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
" \n",
" 0 | \n",
" MPI-ESM1-2-LR | \n",
- " 11491 | \n",
+ " 11488 | \n",
"
\n",
" \n",
" 1 | \n",
" ACCESS-CM2 | \n",
- " 10339 | \n",
+ " 10331 | \n",
"
\n",
" \n",
" 2 | \n",
@@ -932,17 +4048,17 @@
"
\n",
" 3 | \n",
" MIROC-ES2L | \n",
- " 9480 | \n",
+ " 9479 | \n",
"
\n",
" \n",
" 4 | \n",
" MRI-ESM2-0 | \n",
- " 9422 | \n",
+ " 9421 | \n",
"
\n",
" \n",
" 5 | \n",
" GFDL-ESM4 | \n",
- " 9175 | \n",
+ " 9174 | \n",
"
\n",
" \n",
" 6 | \n",
@@ -952,48 +4068,259 @@
"
\n",
" 7 | \n",
" MIROC6 | \n",
- " 8768 | \n",
+ " 8766 | \n",
"
\n",
" \n",
" 8 | \n",
" CESM2 | \n",
- " 8496 | \n",
+ " 8493 | \n",
"
\n",
" \n",
" 9 | \n",
" NorESM2-MM | \n",
- " 8132 | \n",
+ " 8130 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " INM-CM5-0 | \n",
+ " 7985 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " EC-Earth3-Veg-LR | \n",
+ " 7759 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " IPSL-CM6A-LR | \n",
+ " 7263 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " CNRM-CM6-1 | \n",
+ " 7109 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " INM-CM4-8 | \n",
+ " 7003 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " BCC-CSM2-MR | \n",
+ " 6802 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " CMCC-ESM2 | \n",
+ " 5768 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " AWI-CM-1-1-MR | \n",
+ " 5561 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " CNRM-CM6-1-HR | \n",
+ " 5545 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " CMCC-CM2-SR5 | \n",
+ " 5429 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " CanESM5 | \n",
+ " 5142 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " EC-Earth3-CC | \n",
+ " 5067 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " KACE-1-0-G | \n",
+ " 4375 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " FGOALS-g3 | \n",
+ " 4304 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " HadGEM3-GC31-LL | \n",
+ " 4167 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " IITM-ESM | \n",
+ " 4083 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " TaiESM1 | \n",
+ " 3358 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " CAMS-CSM1-0 | \n",
+ " 3348 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " NorESM2-LM | \n",
+ " 3190 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " NESM3 | \n",
+ " 3118 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " KIOST-ESM | \n",
+ " 2972 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " HadGEM3-GC31-MM | \n",
+ " 2697 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " FGOALS-f3-L | \n",
+ " 2612 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " CanESM5-CanOE | \n",
+ " 2452 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " CESM2-WACCM | \n",
+ " 2369 | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " IPSL-CM5A2-INCA | \n",
+ " 1713 | \n",
+ "
\n",
+ " \n",
+ " 36 | \n",
+ " EC-Earth3-AerChem | \n",
+ " 1075 | \n",
+ "
\n",
+ " \n",
+ " 37 | \n",
+ " MPI-ESM1-2-HR | \n",
+ " 521 | \n",
+ "
\n",
+ " \n",
+ " 38 | \n",
+ " MPI-ESM-1-2-HAM | \n",
+ " 518 | \n",
+ "
\n",
+ " \n",
+ " 39 | \n",
+ " ACCESS-ESM1-5 | \n",
+ " 383 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
- " model count\n",
- "0 MPI-ESM1-2-LR 11491\n",
- "1 ACCESS-CM2 10339\n",
- "2 CNRM-ESM2-1 9546\n",
- "3 MIROC-ES2L 9480\n",
- "4 MRI-ESM2-0 9422\n",
- "5 GFDL-ESM4 9175\n",
- "6 UKESM1-0-LL 9024\n",
- "7 MIROC6 8768\n",
- "8 CESM2 8496\n",
- "9 NorESM2-MM 8132"
+ " model count\n",
+ "0 MPI-ESM1-2-LR 11488\n",
+ "1 ACCESS-CM2 10331\n",
+ "2 CNRM-ESM2-1 9546\n",
+ "3 MIROC-ES2L 9479\n",
+ "4 MRI-ESM2-0 9421\n",
+ "5 GFDL-ESM4 9174\n",
+ "6 UKESM1-0-LL 9024\n",
+ "7 MIROC6 8766\n",
+ "8 CESM2 8493\n",
+ "9 NorESM2-MM 8130\n",
+ "10 INM-CM5-0 7985\n",
+ "11 EC-Earth3-Veg-LR 7759\n",
+ "12 IPSL-CM6A-LR 7263\n",
+ "13 CNRM-CM6-1 7109\n",
+ "14 INM-CM4-8 7003\n",
+ "15 BCC-CSM2-MR 6802\n",
+ "16 CMCC-ESM2 5768\n",
+ "17 AWI-CM-1-1-MR 5561\n",
+ "18 CNRM-CM6-1-HR 5545\n",
+ "19 CMCC-CM2-SR5 5429\n",
+ "20 CanESM5 5142\n",
+ "21 EC-Earth3-CC 5067\n",
+ "22 KACE-1-0-G 4375\n",
+ "23 FGOALS-g3 4304\n",
+ "24 HadGEM3-GC31-LL 4167\n",
+ "25 IITM-ESM 4083\n",
+ "26 TaiESM1 3358\n",
+ "27 CAMS-CSM1-0 3348\n",
+ "28 NorESM2-LM 3190\n",
+ "29 NESM3 3118\n",
+ "30 KIOST-ESM 2972\n",
+ "31 HadGEM3-GC31-MM 2697\n",
+ "32 FGOALS-f3-L 2612\n",
+ "33 CanESM5-CanOE 2452\n",
+ "34 CESM2-WACCM 2369\n",
+ "35 IPSL-CM5A2-INCA 1713\n",
+ "36 EC-Earth3-AerChem 1075\n",
+ "37 MPI-ESM1-2-HR 521\n",
+ "38 MPI-ESM-1-2-HAM 518\n",
+ "39 ACCESS-ESM1-5 383"
]
},
- "execution_count": 12,
+ "execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "model_counts.head(10)"
+ "model_counts.head(40)"
]
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 41,
+ "id": "ec23a75f-c6ac-4125-8499-9f4eafd0b129",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 41,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ "