With thanks to Peter Gleckler, Paul Durack, Karl Taylor, and Chris Golaz
\n", + "This work is performed under the auspices of the U. S. DOE by Lawrence Livermore National Laboratory under contract No. DE-AC52-07NA27344.
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "notes" + }, + "vscode": { + "languageId": "plaintext" + } + }, + "source": [ + "## Notebook Setup\n", + "\n", + "Create an Anaconda environment for this notebook using the command below:\n", + "\n", + "```bash\n", + "conda create -n xcdat_scipy_2024 -c conda-forge xcdat=0.7.0 nco matplotlib ipython ipykernel cartopy nc-time-axis gsw-xarray jupyter jupyter_contrib_nbextensions rise wget\n", + "\n", + "conda activate xcdat_scipy_2024\n", + "```\n", + "\n", + "Then run:\n", + "\n", + "```bash\n", + "jupyter contrib nbextension install --user\n", + "\n", + "jupyter nbextension enable splitcell/splitcell\n", + "```\n", + "\n", + "To open Jupyter Notebook GUI:\n", + "\n", + "```bash\n", + "jupyter notebook\n", + "```\n", + "\n", + "To print notebook as PDF:\n", + "\n", + "```bash\n", + "jupyter nbconvert docs/demos/24-07-11-scipy-2024/scipy-2024.ipynb --to html\n", + "# Then \"Print HTML to PDF\" in your browser\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Before we start...\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "cell_style": "split", + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "### Who am I?\n", + "\n", + "- My name is Tom Vo\n", + "- **Climate Research Software Engineer** at **Lawrence Livermore National Laboratory (LLNL)**\n", + "- Work on the **Energy Exascale Earth System Model (E3SM)** and **Simplifying ESM Analysis Through Standards (SEATS)** projects\n", + "\n", + "<xarray.DataArray 'tas' (time: 180, lat: 180, lon: 360)> Size: 47MB\n", + "dask.array<open_dataset-tas, shape=(180, 180, 360), dtype=float32, chunksize=(180, 180, 360), chunktype=numpy.ndarray>\n", + "Coordinates:\n", + " * lat (lat) float64 1kB -89.5 -88.5 -87.5 -86.5 ... 86.5 87.5 88.5 89.5\n", + " * lon (lon) float64 3kB 0.5 1.5 2.5 3.5 4.5 ... 356.5 357.5 358.5 359.5\n", + " height float64 8B ...\n", + " * time (time) object 1kB 2000-01-16 12:00:00 ... 2014-12-16 12:00:00\n", + "Attributes:\n", + " standard_name: air_temperature\n", + " long_name: Near-Surface Air Temperature\n", + " comment: near-surface (usually, 2 meter) air temperature\n", + " units: K\n", + " cell_methods: area: time: mean\n", + " cell_measures: area: areacella\n", + " history: 2022-08-31T00:41:19Z altered by CMOR: Treated scalar dime...
<xarray.Dataset> Size: 3kB\n", + "Dimensions: (lon: 90, bnds: 2, lat: 45)\n", + "Coordinates:\n", + " * lon (lon) int64 720B 2 6 10 14 18 22 26 ... 338 342 346 350 354 358\n", + " * lat (lat) int64 360B -88 -84 -80 -76 -72 -68 -64 ... 68 72 76 80 84 88\n", + "Dimensions without coordinates: bnds\n", + "Data variables:\n", + " lon_bnds (lon, bnds) float64 1kB 0.0 4.0 4.0 8.0 ... 356.0 356.0 360.0\n", + " lat_bnds (lat, bnds) float64 720B -90.0 -86.0 -86.0 ... 86.0 86.0 90.0
<xarray.DataArray 'tas' (time: 180, lat: 45, lon: 90)> Size: 3MB\n", + "array([[[254.80368, 254.78343, 254.74211, ..., 254.88435, 254.90971,\n", + " 254.92215],\n", + " [257.2558 , 257.22675, 257.16754, ..., 257.7982 , 257.8332 ,\n", + " 257.85037],\n", + " [258.29645, 258.3135 , 256.78406, ..., 263.4677 , 260.28214,\n", + " 260.2593 ],\n", + " ...,\n", + " [250.3139 , 250.1259 , 249.97371, ..., 245.62357, 248.0541 ,\n", + " 248.21025],\n", + " [244.18497, 244.17938, 244.168 , ..., 242.8041 , 242.80026,\n", + " 242.79839],\n", + " [246.51666, 246.51863, 246.52267, ..., 245.52602, 245.52087,\n", + " 245.51834]],\n", + "\n", + " [[239.50679, 239.49693, 239.47685, ..., 241.59889, 241.61044,\n", + " 241.6161 ],\n", + " [243.79228, 243.74625, 243.65237, ..., 245.85437, 245.93097,\n", + " 245.96852],\n", + " [247.7796 , 247.78099, 244.87497, ..., 253.66777, 250.53073,\n", + " 250.54012],\n", + "...\n", + " [261.87976, 261.79492, 261.16986, ..., 260.08438, 261.37366,\n", + " 261.41708],\n", + " [260.14633, 260.1443 , 260.14014, ..., 259.97244, 259.97925,\n", + " 259.9826 ],\n", + " [259.46265, 259.46155, 259.45938, ..., 259.9725 , 259.9745 ,\n", + " 259.97546]],\n", + "\n", + " [[252.21017, 252.19913, 252.1766 , ..., 255.2488 , 255.27554,\n", + " 255.28867],\n", + " [255.71132, 255.6868 , 255.63676, ..., 257.84174, 257.9083 ,\n", + " 257.94095],\n", + " [257.31497, 257.33 , 254.7836 , ..., 263.55304, 259.87366,\n", + " 259.87204],\n", + " ...,\n", + " [253.8272 , 253.71956, 254.17628, ..., 249.8605 , 251.81378,\n", + " 251.85973],\n", + " [251.8344 , 251.8372 , 251.84293, ..., 250.79904, 250.78775,\n", + " 250.78221],\n", + " [252.34998, 252.34982, 252.3495 , ..., 252.28952, 252.28876,\n", + " 252.28838]]], dtype=float32)\n", + "Coordinates:\n", + " height float64 8B 2.0\n", + " * time (time) object 1kB 2000-01-16 12:00:00 ... 2014-12-16 12:00:00\n", + " * lon (lon) int64 720B 2 6 10 14 18 22 26 ... 334 338 342 346 350 354 358\n", + " * lat (lat) int64 360B -88 -84 -80 -76 -72 -68 -64 ... 68 72 76 80 84 88\n", + "Attributes:\n", + " standard_name: air_temperature\n", + " long_name: Near-Surface Air Temperature\n", + " comment: near-surface (usually, 2 meter) air temperature\n", + " units: K\n", + " cell_methods: area: time: mean\n", + " cell_measures: area: areacella\n", + " history: 2022-08-31T00:41:19Z altered by CMOR: Treated scalar dime...\n", + " regrid_method: bilinear
<xarray.DataArray 'cl' (time: 180, lev: 72, lat: 180, lon: 360)> Size: 3GB\n", + "dask.array<open_dataset-cl, shape=(180, 72, 180, 360), dtype=float32, chunksize=(7, 72, 180, 360), chunktype=numpy.ndarray>\n", + "Coordinates:\n", + " * lev (lev) float64 576B 0.9985 0.9938 0.9862 ... 0.0001828 0.0001238\n", + " * lat (lat) float64 1kB -89.5 -88.5 -87.5 -86.5 ... 86.5 87.5 88.5 89.5\n", + " * lon (lon) float64 3kB 0.5 1.5 2.5 3.5 4.5 ... 356.5 357.5 358.5 359.5\n", + " * time (time) object 1kB 2000-01-16 12:00:00 ... 2014-12-16 12:00:00\n", + "Attributes:\n", + " standard_name: cloud_area_fraction_in_atmosphere_layer\n", + " long_name: Percentage Cloud Cover\n", + " comment: Percentage cloud cover, including both large-scale and co...\n", + " units: %\n", + " cell_methods: area: time: mean\n", + " cell_measures: area: areacella\n", + " history: 2022-08-30T15:06:03Z altered by CMOR: Inverted axis: lev.\n", + " _ChunkSizes: [ 1 36 90 180]
<xarray.Dataset> Size: 19kB\n", + "Dimensions: (time: 180, bnds: 2, lat: 180, lon: 360)\n", + "Coordinates:\n", + " * lat (lat) float64 1kB -89.5 -88.5 -87.5 -86.5 ... 86.5 87.5 88.5 89.5\n", + " * lon (lon) float64 3kB 0.5 1.5 2.5 3.5 4.5 ... 356.5 357.5 358.5 359.5\n", + " height float64 8B ...\n", + " * time (time) object 1kB 2000-01-16 12:00:00 ... 2014-12-16 12:00:00\n", + "Dimensions without coordinates: bnds\n", + "Data variables:\n", + " time_bnds (time, bnds) object 3kB dask.array<chunksize=(180, 2), meta=np.ndarray>\n", + " lat_bnds (lat, bnds) float64 3kB dask.array<chunksize=(180, 2), meta=np.ndarray>\n", + " lon_bnds (lon, bnds) float64 6kB dask.array<chunksize=(360, 2), meta=np.ndarray>\n", + " tas (time) float64 1kB dask.array<chunksize=(180,), 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: 0.0\n", + " branch_time_in_parent: 36500.0\n", + " creation_date: 2022-08-31T00:41:19Z\n", + " ... ...\n", + " variant_label: r1i1p1f1\n", + " license: CMIP6 model data produced by E3SM-Project is lice...\n", + " cmor_version: 3.6.1\n", + " tracking_id: hdl:21.14100/5e95fb4d-19ba-4037-8000-818fe3955601\n", + " version: v20220830\n", + " references: Golaz, J.-C., L. P. Van Roekel, X. Zheng and co-a...