{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# From xarray to pandas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import python packages" ] }, { "cell_type": "code", "execution_count": 37, "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 cartopy.crs as ccrs\n", "import pandas as pd\n", "import dask\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 7632 dataset(s) from 517667 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", "517667 | \n", "
dcpp_init_year | \n", "60 | \n", "
version | \n", "715 | \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", "NCAR | \n", "CESM2-WACCM | \n", "historical | \n", "r1i1p1f1 | \n", "AERmon | \n", "so2 | \n", "gn | \n", "gs://cmip6/CMIP6/CMIP/NCAR/CESM2-WACCM/histori... | \n", "NaN | \n", "20190227 | \n", "
<xarray.Dataset>\n", "Dimensions: (lat: 192, lev: 70, lon: 288, nbnd: 2, time: 1980)\n", "Coordinates:\n", " * lat (lat) float64 -90.0 -89.06 -88.12 -87.17 ... 88.12 89.06 90.0\n", " lat_bnds (lat, nbnd) float32 dask.array<chunksize=(192, 2), meta=np.ndarray>\n", " * lev (lev) float64 -5.96e-06 -9.827e-06 -1.62e-05 ... -976.3 -992.6\n", " lev_bnds (lev, nbnd) float32 dask.array<chunksize=(70, 2), meta=np.ndarray>\n", " * lon (lon) float64 0.0 1.25 2.5 3.75 5.0 ... 355.0 356.2 357.5 358.8\n", " lon_bnds (lon, nbnd) float32 dask.array<chunksize=(288, 2), meta=np.ndarray>\n", " * time (time) object 1850-01-15 12:00:00 ... 2014-12-15 12:00:00\n", " time_bnds (time, nbnd) object dask.array<chunksize=(1980, 2), meta=np.ndarray>\n", " member_id <U8 'r1i1p1f1'\n", "Dimensions without coordinates: nbnd\n", "Data variables:\n", " so2 (time, lev, lat, lon) float32 dask.array<chunksize=(5, 70, 192, 288), meta=np.ndarray>\n", "Attributes: (12/48)\n", " Conventions: CF-1.7 CMIP-6.2\n", " activity_id: CMIP\n", " branch_method: standard\n", " branch_time_in_child: 674885.0\n", " branch_time_in_parent: 20075.0\n", " case_id: 4\n", " ... ...\n", " variable_id: so2\n", " variant_info: CMIP6 CESM2 hindcast (1850-2014) with high-top a...\n", " variant_label: r1i1p1f1\n", " status: 2019-11-05;created;by nhn2@columbia.edu\n", " intake_esm_varname: ['so2']\n", " intake_esm_dataset_key: CMIP.NCAR.CESM2-WACCM.historical.AERmon.gn
array([-90. , -89.057592, -88.115183, -87.172775, -86.230366, -85.287958,\n", " -84.34555 , -83.403141, -82.460733, -81.518325, -80.575916, -79.633508,\n", " -78.691099, -77.748691, -76.806283, -75.863874, -74.921466, -73.979058,\n", " -73.036649, -72.094241, -71.151832, -70.209424, -69.267016, -68.324607,\n", " -67.382199, -66.439791, -65.497382, -64.554974, -63.612565, -62.670157,\n", " -61.727749, -60.78534 , -59.842932, -58.900524, -57.958115, -57.015707,\n", " -56.073298, -55.13089 , -54.188482, -53.246073, -52.303665, -51.361257,\n", " -50.418848, -49.47644 , -48.534031, -47.591623, -46.649215, -45.706806,\n", " -44.764398, -43.82199 , -42.879581, -41.937173, -40.994764, -40.052356,\n", " -39.109948, -38.167539, -37.225131, -36.282723, -35.340314, -34.397906,\n", " -33.455497, -32.513089, -31.570681, -30.628272, -29.685864, -28.743455,\n", " -27.801047, -26.858639, -25.91623 , -24.973822, -24.031414, -23.089005,\n", " -22.146597, -21.204188, -20.26178 , -19.319372, -18.376963, -17.434555,\n", " -16.492147, -15.549738, -14.60733 , -13.664921, -12.722513, -11.780105,\n", " -10.837696, -9.895288, -8.95288 , -8.010471, -7.068063, -6.125654,\n", " -5.183246, -4.240838, -3.298429, -2.356021, -1.413613, -0.471204,\n", " 0.471204, 1.413613, 2.356021, 3.298429, 4.240838, 5.183246,\n", " 6.125654, 7.068063, 8.010471, 8.95288 , 9.895288, 10.837696,\n", " 11.780105, 12.722513, 13.664921, 14.60733 , 15.549738, 16.492147,\n", " 17.434555, 18.376963, 19.319372, 20.26178 , 21.204188, 22.146597,\n", " 23.089005, 24.031414, 24.973822, 25.91623 , 26.858639, 27.801047,\n", " 28.743455, 29.685864, 30.628272, 31.570681, 32.513089, 33.455497,\n", " 34.397906, 35.340314, 36.282723, 37.225131, 38.167539, 39.109948,\n", " 40.052356, 40.994764, 41.937173, 42.879581, 43.82199 , 44.764398,\n", " 45.706806, 46.649215, 47.591623, 48.534031, 49.47644 , 50.418848,\n", " 51.361257, 52.303665, 53.246073, 54.188482, 55.13089 , 56.073298,\n", " 57.015707, 57.958115, 58.900524, 59.842932, 60.78534 , 61.727749,\n", " 62.670157, 63.612565, 64.554974, 65.497382, 66.439791, 67.382199,\n", " 68.324607, 69.267016, 70.209424, 71.151832, 72.094241, 73.036649,\n", " 73.979058, 74.921466, 75.863874, 76.806283, 77.748691, 78.691099,\n", " 79.633508, 80.575916, 81.518325, 82.460733, 83.403141, 84.34555 ,\n", " 85.287958, 86.230366, 87.172775, 88.115183, 89.057592, 90. ])
\n",
"
| \n",
"\n", "\n", " | \n", "
array([-5.960300e-06, -9.826900e-06, -1.620185e-05, -2.671225e-05,\n", " -4.404100e-05, -7.261275e-05, -1.197190e-04, -1.973800e-04,\n", " -3.254225e-04, -5.365325e-04, -8.846025e-04, -1.458457e-03,\n", " -2.404575e-03, -3.978250e-03, -6.556826e-03, -1.081383e-02,\n", " -1.789800e-02, -2.955775e-02, -4.873075e-02, -7.991075e-02,\n", " -1.282732e-01, -1.981200e-01, -2.920250e-01, -4.101675e-01,\n", " -5.534700e-01, -7.304800e-01, -9.559475e-01, -1.244795e+00,\n", " -1.612850e+00, -2.079325e+00, -2.667425e+00, -3.404875e+00,\n", " -4.324575e+00, -5.465400e+00, -6.872850e+00, -8.599725e+00,\n", " -1.070705e+01, -1.326475e+01, -1.635175e+01, -2.005675e+01,\n", " -2.447900e+01, -2.972800e+01, -3.592325e+01, -4.319375e+01,\n", " -5.167750e+01, -6.152050e+01, -7.375096e+01, -8.782123e+01,\n", " -1.033171e+02, -1.215472e+02, -1.429940e+02, -1.682251e+02,\n", " -1.979081e+02, -2.328286e+02, -2.739108e+02, -3.222419e+02,\n", " -3.791009e+02, -4.459926e+02, -5.246872e+02, -6.097787e+02,\n", " -6.913894e+02, -7.634045e+02, -8.208584e+02, -8.595348e+02,\n", " -8.870202e+02, -9.126445e+02, -9.361984e+02, -9.574855e+02,\n", " -9.763254e+02, -9.925561e+02])
\n",
"
| \n",
"\n", "\n", " | \n", "
array([ 0. , 1.25, 2.5 , ..., 356.25, 357.5 , 358.75])
\n",
"
| \n",
"\n", "\n", " | \n", "
array([cftime.DatetimeNoLeap(1850, 1, 15, 12, 0, 0, 0),\n", " cftime.DatetimeNoLeap(1850, 2, 14, 0, 0, 0, 0),\n", " cftime.DatetimeNoLeap(1850, 3, 15, 12, 0, 0, 0), ...,\n", " cftime.DatetimeNoLeap(2014, 10, 15, 12, 0, 0, 0),\n", " cftime.DatetimeNoLeap(2014, 11, 15, 0, 0, 0, 0),\n", " cftime.DatetimeNoLeap(2014, 12, 15, 12, 0, 0, 0)], dtype=object)
\n",
"
| \n",
"\n", "\n", " | \n", "
array('r1i1p1f1', dtype='<U8')
\n",
"
| \n",
"\n", "\n", " | \n", "
<xarray.DataArray 'so2' (time: 1980, lat: 192)>\n", "array([[4.4148924e-11, 4.3374932e-11, 4.1744469e-11, ..., 2.0261100e-12,\n", " 1.8938171e-12, 1.8695366e-12],\n", " [3.1989539e-11, 3.1808257e-11, 3.1800659e-11, ..., 1.2741638e-12,\n", " 1.2158472e-12, 1.1790553e-12],\n", " [2.9416582e-12, 2.6269848e-12, 2.5257598e-12, ..., 6.3785300e-13,\n", " 6.2758875e-13, 6.3872253e-13],\n", " ...,\n", " [8.3957434e-13, 8.9930792e-13, 8.8156679e-13, ..., 4.1710988e-12,\n", " 4.0890802e-12, 5.4941021e-12],\n", " [7.7786545e-12, 7.8954681e-12, 8.0431321e-12, ..., 2.4857640e-11,\n", " 2.7402766e-11, 3.3165942e-11],\n", " [1.2275407e-11, 1.2175271e-11, 1.2504974e-11, ..., 4.6298299e-10,\n", " 4.6481125e-10, 4.7047843e-10]], dtype=float32)\n", "Coordinates:\n", " * lat (lat) float64 -90.0 -89.06 -88.12 -87.17 ... 88.12 89.06 90.0\n", " lev float64 -992.6\n", " * time (time) object 1850-01-15 12:00:00 ... 2014-12-15 12:00:00\n", " member_id <U8 'r1i1p1f1'
array([[4.4148924e-11, 4.3374932e-11, 4.1744469e-11, ..., 2.0261100e-12,\n", " 1.8938171e-12, 1.8695366e-12],\n", " [3.1989539e-11, 3.1808257e-11, 3.1800659e-11, ..., 1.2741638e-12,\n", " 1.2158472e-12, 1.1790553e-12],\n", " [2.9416582e-12, 2.6269848e-12, 2.5257598e-12, ..., 6.3785300e-13,\n", " 6.2758875e-13, 6.3872253e-13],\n", " ...,\n", " [8.3957434e-13, 8.9930792e-13, 8.8156679e-13, ..., 4.1710988e-12,\n", " 4.0890802e-12, 5.4941021e-12],\n", " [7.7786545e-12, 7.8954681e-12, 8.0431321e-12, ..., 2.4857640e-11,\n", " 2.7402766e-11, 3.3165942e-11],\n", " [1.2275407e-11, 1.2175271e-11, 1.2504974e-11, ..., 4.6298299e-10,\n", " 4.6481125e-10, 4.7047843e-10]], dtype=float32)
array([-90. , -89.057592, -88.115183, -87.172775, -86.230366, -85.287958,\n", " -84.34555 , -83.403141, -82.460733, -81.518325, -80.575916, -79.633508,\n", " -78.691099, -77.748691, -76.806283, -75.863874, -74.921466, -73.979058,\n", " -73.036649, -72.094241, -71.151832, -70.209424, -69.267016, -68.324607,\n", " -67.382199, -66.439791, -65.497382, -64.554974, -63.612565, -62.670157,\n", " -61.727749, -60.78534 , -59.842932, -58.900524, -57.958115, -57.015707,\n", " -56.073298, -55.13089 , -54.188482, -53.246073, -52.303665, -51.361257,\n", " -50.418848, -49.47644 , -48.534031, -47.591623, -46.649215, -45.706806,\n", " -44.764398, -43.82199 , -42.879581, -41.937173, -40.994764, -40.052356,\n", " -39.109948, -38.167539, -37.225131, -36.282723, -35.340314, -34.397906,\n", " -33.455497, -32.513089, -31.570681, -30.628272, -29.685864, -28.743455,\n", " -27.801047, -26.858639, -25.91623 , -24.973822, -24.031414, -23.089005,\n", " -22.146597, -21.204188, -20.26178 , -19.319372, -18.376963, -17.434555,\n", " -16.492147, -15.549738, -14.60733 , -13.664921, -12.722513, -11.780105,\n", " -10.837696, -9.895288, -8.95288 , -8.010471, -7.068063, -6.125654,\n", " -5.183246, -4.240838, -3.298429, -2.356021, -1.413613, -0.471204,\n", " 0.471204, 1.413613, 2.356021, 3.298429, 4.240838, 5.183246,\n", " 6.125654, 7.068063, 8.010471, 8.95288 , 9.895288, 10.837696,\n", " 11.780105, 12.722513, 13.664921, 14.60733 , 15.549738, 16.492147,\n", " 17.434555, 18.376963, 19.319372, 20.26178 , 21.204188, 22.146597,\n", " 23.089005, 24.031414, 24.973822, 25.91623 , 26.858639, 27.801047,\n", " 28.743455, 29.685864, 30.628272, 31.570681, 32.513089, 33.455497,\n", " 34.397906, 35.340314, 36.282723, 37.225131, 38.167539, 39.109948,\n", " 40.052356, 40.994764, 41.937173, 42.879581, 43.82199 , 44.764398,\n", " 45.706806, 46.649215, 47.591623, 48.534031, 49.47644 , 50.418848,\n", " 51.361257, 52.303665, 53.246073, 54.188482, 55.13089 , 56.073298,\n", " 57.015707, 57.958115, 58.900524, 59.842932, 60.78534 , 61.727749,\n", " 62.670157, 63.612565, 64.554974, 65.497382, 66.439791, 67.382199,\n", " 68.324607, 69.267016, 70.209424, 71.151832, 72.094241, 73.036649,\n", " 73.979058, 74.921466, 75.863874, 76.806283, 77.748691, 78.691099,\n", " 79.633508, 80.575916, 81.518325, 82.460733, 83.403141, 84.34555 ,\n", " 85.287958, 86.230366, 87.172775, 88.115183, 89.057592, 90. ])
array(-992.55609512)
array([cftime.DatetimeNoLeap(1850, 1, 15, 12, 0, 0, 0),\n", " cftime.DatetimeNoLeap(1850, 2, 14, 0, 0, 0, 0),\n", " cftime.DatetimeNoLeap(1850, 3, 15, 12, 0, 0, 0), ...,\n", " cftime.DatetimeNoLeap(2014, 10, 15, 12, 0, 0, 0),\n", " cftime.DatetimeNoLeap(2014, 11, 15, 0, 0, 0, 0),\n", " cftime.DatetimeNoLeap(2014, 12, 15, 12, 0, 0, 0)], dtype=object)
array('r1i1p1f1', dtype='<U8')
\n", " | \n", " | lev | \n", "member_id | \n", "so2 | \n", "
---|---|---|---|---|
time | \n", "lat | \n", "\n", " | \n", " | \n", " |
1850-01-15 12:00:00 | \n", "-90.000000 | \n", "-992.556095 | \n", "r1i1p1f1 | \n", "4.414892e-11 | \n", "
-89.057592 | \n", "-992.556095 | \n", "r1i1p1f1 | \n", "4.337493e-11 | \n", "|
-88.115183 | \n", "-992.556095 | \n", "r1i1p1f1 | \n", "4.174447e-11 | \n", "|
-87.172775 | \n", "-992.556095 | \n", "r1i1p1f1 | \n", "4.043559e-11 | \n", "|
-86.230366 | \n", "-992.556095 | \n", "r1i1p1f1 | \n", "4.044334e-11 | \n", "
\n", " | \n", " | lev | \n", "so2 | \n", "
---|---|---|---|
time | \n", "lat | \n", "\n", " | \n", " |
1850-01-15 12:00:00 | \n", "-90.000000 | \n", "-992.556095 | \n", "4.414892e-11 | \n", "
-89.057592 | \n", "-992.556095 | \n", "4.337493e-11 | \n", "|
-88.115183 | \n", "-992.556095 | \n", "4.174447e-11 | \n", "|
-87.172775 | \n", "-992.556095 | \n", "4.043559e-11 | \n", "|
-86.230366 | \n", "-992.556095 | \n", "4.044334e-11 | \n", "