{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Authors: A.Radhakrishnan, GFDL\n", "Ack: Anderson Banihirwe for intake-esm updates, GFDL colleagues for data" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from netCDF4 import Dataset\n", "import numpy as np\n", "import matplotlib\n", "from matplotlib import pyplot as plt\n", "import xarray as xr\n", "import intake,yaml\n", "import intake_esm\n", "import numpy as np\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "esgf-world.json is the ESM collections spec file for the netCDF data in the S3 bucket esgf-world. \n", "The catalog is updated on an on-demand basis for now. \n", "You can refer to https://github.com/aradhakrishnanGFDL/gfdl-aws-analysis/tree/community/esm-collection-spec-examples for the most recent catalogs\n", "More examples can be found in https://github.com/aradhakrishnanGFDL/gfdl-aws-analysis/tree/community/examples \n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "col_url = \"https://cmip6-nc.s3.us-east-2.amazonaws.com/esgf-world.json\" \n", "#col_url = \"https://raw.githubusercontent.com/aradhakrishnanGFDL/gfdl-aws-analysis/community/esm-collection-spec-examples/esgf-world.json\"" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "col = intake.open_esm_datastore(col_url)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | project | \n", "institution_id | \n", "source_id | \n", "experiment_id | \n", "frequency | \n", "modeling_realm | \n", "table_id | \n", "member_id | \n", "grid_label | \n", "variable_id | \n", "temporal_subset | \n", "version | \n", "path | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "CMIP6 | \n", "AS-RCEC | \n", "TaiESM1 | \n", "histSST-piNTCF | \n", "NaN | \n", "NaN | \n", "AERmon | \n", "r1i1p1f1 | \n", "gn | \n", "ps | \n", "185001-201412 | \n", "v20200318 | \n", "s3://esgf-world/CMIP6/AerChemMIP/AS-RCEC/TaiES... | \n", "
1 | \n", "CMIP6 | \n", "AS-RCEC | \n", "TaiESM1 | \n", "histSST-piNTCF | \n", "NaN | \n", "NaN | \n", "CFmon | \n", "r1i1p1f1 | \n", "gn | \n", "ta | \n", "185001-201412 | \n", "v20200318 | \n", "s3://esgf-world/CMIP6/AerChemMIP/AS-RCEC/TaiES... | \n", "
2 | \n", "CMIP6 | \n", "AS-RCEC | \n", "TaiESM1 | \n", "histSST-piNTCF | \n", "NaN | \n", "NaN | \n", "LImon | \n", "r1i1p1f1 | \n", "gn | \n", "snc | \n", "185002-201412 | \n", "v20200318 | \n", "s3://esgf-world/CMIP6/AerChemMIP/AS-RCEC/TaiES... | \n", "
3 | \n", "CMIP6 | \n", "AS-RCEC | \n", "TaiESM1 | \n", "histSST-piNTCF | \n", "NaN | \n", "NaN | \n", "LImon | \n", "r1i1p1f1 | \n", "gn | \n", "snd | \n", "185002-201412 | \n", "v20200318 | \n", "s3://esgf-world/CMIP6/AerChemMIP/AS-RCEC/TaiES... | \n", "
4 | \n", "CMIP6 | \n", "AS-RCEC | \n", "TaiESM1 | \n", "histSST-piNTCF | \n", "NaN | \n", "NaN | \n", "LImon | \n", "r1i1p1f1 | \n", "gn | \n", "snw | \n", "185002-201412 | \n", "v20200318 | \n", "s3://esgf-world/CMIP6/AerChemMIP/AS-RCEC/TaiES... | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
1151014 | \n", "CMIP6 | \n", "UA | \n", "MCM-UA-1-0 | \n", "ssp585 | \n", "mon | \n", "atmos | \n", "Amon | \n", "r1i1p1f2 | \n", "gn | \n", "rlut | \n", "201501-210012 | \n", "v20190731 | \n", "s3://esgf-world/CMIP6/ScenarioMIP/UA/MCM-UA-1-... | \n", "
1151015 | \n", "CMIP6 | \n", "UA | \n", "MCM-UA-1-0 | \n", "ssp585 | \n", "mon | \n", "atmos | \n", "Amon | \n", "r1i1p1f2 | \n", "gn | \n", "rtmt | \n", "201501-210012 | \n", "v20190731 | \n", "s3://esgf-world/CMIP6/ScenarioMIP/UA/MCM-UA-1-... | \n", "
1151016 | \n", "CMIP6 | \n", "UA | \n", "MCM-UA-1-0 | \n", "ssp585 | \n", "mon | \n", "ocean | \n", "Omon | \n", "r1i1p1f2 | \n", "gn | \n", "sos | \n", "201501-210012 | \n", "v20190731 | \n", "s3://esgf-world/CMIP6/ScenarioMIP/UA/MCM-UA-1-... | \n", "
1151017 | \n", "CMIP6 | \n", "UA | \n", "MCM-UA-1-0 | \n", "ssp585 | \n", "mon | \n", "ocean | \n", "Omon | \n", "r1i1p1f2 | \n", "gn | \n", "tos | \n", "201501-210012 | \n", "v20190731 | \n", "s3://esgf-world/CMIP6/ScenarioMIP/UA/MCM-UA-1-... | \n", "
1151018 | \n", "CMIP6 | \n", "UA | \n", "MCM-UA-1-0 | \n", "ssp585 | \n", "NaN | \n", "NaN | \n", "fx | \n", "r1i1p1f2 | \n", "gn | \n", "areacella | \n", "NaN | \n", "v20190731 | \n", "s3://esgf-world/CMIP6/ScenarioMIP/UA/MCM-UA-1-... | \n", "
1151019 rows × 13 columns
\n", "gfdltest catalog with 1 dataset(s) from 2 asset(s):
\n", " | unique | \n", "
---|---|
project | \n", "1 | \n", "
institution_id | \n", "1 | \n", "
source_id | \n", "1 | \n", "
experiment_id | \n", "1 | \n", "
frequency | \n", "1 | \n", "
modeling_realm | \n", "1 | \n", "
table_id | \n", "1 | \n", "
member_id | \n", "1 | \n", "
grid_label | \n", "1 | \n", "
variable_id | \n", "1 | \n", "
temporal_subset | \n", "2 | \n", "
version | \n", "1 | \n", "
path | \n", "2 | \n", "
<xarray.DataArray 'tas' (member_id: 1, time: 1980, lat: 180, lon: 288)>\n", "dask.array<broadcast_to, shape=(1, 1980, 180, 288), dtype=float32, chunksize=(1, 1, 180, 288), chunktype=numpy.ndarray>\n", "Coordinates:\n", " height float64 ...\n", " * lat (lat) float64 -89.5 -88.5 -87.5 -86.5 ... 86.5 87.5 88.5 89.5\n", " * lon (lon) float64 0.625 1.875 3.125 4.375 ... 355.6 356.9 358.1 359.4\n", " * time (time) object 1850-01-16 12:00:00 ... 2014-12-16 12:00:00\n", " * member_id (member_id) <U8 'r1i1p1f1'\n", "Attributes:\n", " long_name: Near-Surface Air Temperature\n", " units: K\n", " cell_methods: area: time: mean\n", " cell_measures: area: areacella\n", " standard_name: air_temperature\n", " interp_method: conserve_order2\n", " original_name: tas
\n",
"
| \n",
"\n", "\n", " | \n", "
array(2.)
array([-89.5, -88.5, -87.5, -86.5, -85.5, -84.5, -83.5, -82.5, -81.5, -80.5,\n", " -79.5, -78.5, -77.5, -76.5, -75.5, -74.5, -73.5, -72.5, -71.5, -70.5,\n", " -69.5, -68.5, -67.5, -66.5, -65.5, -64.5, -63.5, -62.5, -61.5, -60.5,\n", " -59.5, -58.5, -57.5, -56.5, -55.5, -54.5, -53.5, -52.5, -51.5, -50.5,\n", " -49.5, -48.5, -47.5, -46.5, -45.5, -44.5, -43.5, -42.5, -41.5, -40.5,\n", " -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, -31.5, -30.5,\n", " -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, -21.5, -20.5,\n", " -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, -13.5, -12.5, -11.5, -10.5,\n", " -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,\n", " 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5,\n", " 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5,\n", " 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5,\n", " 30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5,\n", " 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5,\n", " 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5,\n", " 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5,\n", " 70.5, 71.5, 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, 78.5, 79.5,\n", " 80.5, 81.5, 82.5, 83.5, 84.5, 85.5, 86.5, 87.5, 88.5, 89.5])
array([ 0.625, 1.875, 3.125, ..., 356.875, 358.125, 359.375])
array([cftime.DatetimeNoLeap(1850, 1, 16, 12, 0, 0, 0, has_year_zero=True),\n", " cftime.DatetimeNoLeap(1850, 2, 15, 0, 0, 0, 0, has_year_zero=True),\n", " cftime.DatetimeNoLeap(1850, 3, 16, 12, 0, 0, 0, has_year_zero=True),\n", " ...,\n", " cftime.DatetimeNoLeap(2014, 10, 16, 12, 0, 0, 0, has_year_zero=True),\n", " cftime.DatetimeNoLeap(2014, 11, 16, 0, 0, 0, 0, has_year_zero=True),\n", " cftime.DatetimeNoLeap(2014, 12, 16, 12, 0, 0, 0, has_year_zero=True)],\n", " dtype=object)
array(['r1i1p1f1'], dtype='<U8')