{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Multidimensional Coordinates example using CMIP6 Pangeo ocean model data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import python packages" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import xarray as xr\n", "xr.set_options(display_style='html')\n", "import intake\n", "import cftime\n", "import matplotlib.pyplot as plt\n", "import matplotlib.path as mpath\n", "import cartopy.crs as ccrs\n", "import numpy as np\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Open CMIP6 online catalog" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
pangeo-cmip6 catalog with 7715 dataset(s) from 520279 asset(s):
\n", " | unique | \n", "
---|---|
activity_id | \n", "18 | \n", "
institution_id | \n", "36 | \n", "
source_id | \n", "88 | \n", "
experiment_id | \n", "170 | \n", "
member_id | \n", "657 | \n", "
table_id | \n", "37 | \n", "
variable_id | \n", "709 | \n", "
grid_label | \n", "10 | \n", "
zstore | \n", "520279 | \n", "
dcpp_init_year | \n", "60 | \n", "
version | \n", "723 | \n", "
\n", " | activity_id | \n", "institution_id | \n", "source_id | \n", "experiment_id | \n", "member_id | \n", "table_id | \n", "variable_id | \n", "grid_label | \n", "zstore | \n", "dcpp_init_year | \n", "version | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "CMIP | \n", "MPI-M | \n", "MPI-ESM1-2-HR | \n", "historical | \n", "r9i1p1f1 | \n", "Omon | \n", "chl | \n", "gn | \n", "gs://cmip6/CMIP6/CMIP/MPI-M/MPI-ESM1-2-HR/hist... | \n", "NaN | \n", "20190710 | \n", "
<xarray.Dataset>\n", "Dimensions: (bnds: 2, i: 802, j: 404, lev: 40, member_id: 1, time: 1980, vertices: 4)\n", "Coordinates:\n", " * i (i) int32 0 1 2 3 4 5 6 ... 795 796 797 798 799 800 801\n", " * j (j) int32 0 1 2 3 4 5 6 ... 397 398 399 400 401 402 403\n", " latitude (j, i) float64 dask.array<chunksize=(404, 802), meta=np.ndarray>\n", " * lev (lev) float64 6.0 17.0 27.0 ... 5.17e+03 5.72e+03\n", " lev_bnds (lev, bnds) float64 dask.array<chunksize=(40, 2), meta=np.ndarray>\n", " longitude (j, i) float64 dask.array<chunksize=(404, 802), meta=np.ndarray>\n", " * time (time) object 1850-01-16 12:00:00 ... 2014-12-16 12:0...\n", " time_bnds (time, bnds) object dask.array<chunksize=(1980, 2), meta=np.ndarray>\n", " * member_id (member_id) <U8 'r9i1p1f1'\n", "Dimensions without coordinates: bnds, vertices\n", "Data variables:\n", " chl (member_id, time, lev, j, i) float32 dask.array<chunksize=(1, 2, 40, 404, 802), meta=np.ndarray>\n", " vertices_latitude (j, i, vertices) float64 dask.array<chunksize=(404, 802, 4), meta=np.ndarray>\n", " vertices_longitude (j, i, vertices) float64 dask.array<chunksize=(404, 802, 4), meta=np.ndarray>\n", "Attributes: (12/50)\n", " Conventions: CF-1.7 CMIP-6.2\n", " activity_id: CMIP\n", " branch_method: standard\n", " branch_time_in_child: 0.0\n", " branch_time_in_parent: 146096.0\n", " cmor_version: 3.5.0\n", " ... ...\n", " title: MPI-ESM1-2-HR output prepared for CMIP6\n", " tracking_id: hdl:21.14100/4e922d88-7711-4df6-9bdd-b849acd45a7...\n", " variable_id: chl\n", " variant_label: r9i1p1f1\n", " intake_esm_varname: ['chl']\n", " intake_esm_dataset_key: CMIP.MPI-M.MPI-ESM1-2-HR.historical.Omon.gn
array([ 0, 1, 2, ..., 799, 800, 801], dtype=int32)
array([ 0, 1, 2, ..., 401, 402, 403], dtype=int32)
\n",
"
| \n",
"\n", "\n", " | \n", "
array([ 6. , 17. , 27. , 37. , 47. , 57. , 68.5, 82.5, 100. ,\n", " 122.5, 150. , 182.5, 220. , 262.5, 310. , 362.5, 420. , 485. ,\n", " 560. , 645. , 740. , 845. , 960. , 1085. , 1220. , 1365. , 1525. ,\n", " 1700. , 1885. , 2080. , 2290. , 2525. , 2785. , 3070. , 3395. , 3770. ,\n", " 4195. , 4670. , 5170. , 5720. ])
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "
array([cftime.DatetimeProlepticGregorian(1850, 1, 16, 12, 0, 0, 0),\n", " cftime.DatetimeProlepticGregorian(1850, 2, 15, 0, 0, 0, 0),\n", " cftime.DatetimeProlepticGregorian(1850, 3, 16, 12, 0, 0, 0), ...,\n", " cftime.DatetimeProlepticGregorian(2014, 10, 16, 12, 0, 0, 0),\n", " cftime.DatetimeProlepticGregorian(2014, 11, 16, 0, 0, 0, 0),\n", " cftime.DatetimeProlepticGregorian(2014, 12, 16, 12, 0, 0, 0)],\n", " dtype=object)
\n",
"
| \n",
"\n", "\n", " | \n", "
array(['r9i1p1f1'], dtype='<U8')
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "