{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Read a file from an remote OPeNDAP server and make a contour plot of the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this example, we demonstrate:\n", "1. How to read a netcdf file in Python using `xarray` from a remote OPeNDAP server\n", "2. How to make a contour plot of the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data\n", "We will read data from the North American Multi-model Ensemble (NMME) database. Specifially, we will read the sea surface temperature (SST) data hindcast data for the COLA-RSMAS-CCSM4 model.\n", "\n", "The NMME public database is hosted on the International Research Institute for Climate and Society (IRI) data server http://iridl.ldeo.columbia.edu/SOURCES/.Models/.NMME/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Python import statements\n", "You must first import the Python packages you wish to use. \n", "This is a common set of basic import statments you can start with." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import xarray as xr\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set the path and filename" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "url = 'http://iridl.ldeo.columbia.edu/SOURCES/.Models/.NMME/.COLA-RSMAS-CCSM4/.MONTHLY/.sst/dods'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Read the data using `xarray` `open_dataset` http://xarray.pydata.org/en/stable/generated/xarray.open_dataset.html" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "ds =xr.open_dataset(url, decode_times=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When you read in data using `xarray`, it creates an object called an `xarray.Dataset` which consists of your data and all its metadata. If we print out our `Dataset` which is called `ds`, its similar to doing a `ncdump -h` on a netcdf file. You can see all the dimensions, size, and attributes of the data in the file." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.Dataset>\n",
       "Dimensions:  (L: 12, M: 10, S: 457, X: 360, Y: 181)\n",
       "Coordinates:\n",
       "  * S        (S) float32 264.0 265.0 266.0 267.0 ... 717.0 718.0 719.0 720.0\n",
       "  * X        (X) float32 0.0 1.0 2.0 3.0 4.0 ... 355.0 356.0 357.0 358.0 359.0\n",
       "  * M        (M) float32 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0\n",
       "  * L        (L) float32 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 11.5\n",
       "  * Y        (Y) float32 -90.0 -89.0 -88.0 -87.0 -86.0 ... 87.0 88.0 89.0 90.0\n",
       "Data variables:\n",
       "    sst      (S, L, M, Y, X) float32 ...\n",
       "Attributes:\n",
       "    Conventions:  IRIDL
" ], "text/plain": [ "\n", "Dimensions: (L: 12, M: 10, S: 457, X: 360, Y: 181)\n", "Coordinates:\n", " * S (S) float32 264.0 265.0 266.0 267.0 ... 717.0 718.0 719.0 720.0\n", " * X (X) float32 0.0 1.0 2.0 3.0 4.0 ... 355.0 356.0 357.0 358.0 359.0\n", " * M (M) float32 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0\n", " * L (L) float32 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 11.5\n", " * Y (Y) float32 -90.0 -89.0 -88.0 -87.0 -86.0 ... 87.0 88.0 89.0 90.0\n", "Data variables:\n", " sst (S, L, M, Y, X) float32 ...\n", "Attributes:\n", " Conventions: IRIDL" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you want to access just the surface air tempeature (tas) data itself, without all the gloal attributes, you can do that by supplying the name of the variable" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.DataArray 'sst' (S: 457, L: 12, M: 10, Y: 181, X: 360)>\n",
       "[3573374400 values with dtype=float32]\n",
       "Coordinates:\n",
       "  * S        (S) float32 264.0 265.0 266.0 267.0 ... 717.0 718.0 719.0 720.0\n",
       "  * X        (X) float32 0.0 1.0 2.0 3.0 4.0 ... 355.0 356.0 357.0 358.0 359.0\n",
       "  * M        (M) float32 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0\n",
       "  * L        (L) float32 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 11.5\n",
       "  * Y        (Y) float32 -90.0 -89.0 -88.0 -87.0 -86.0 ... 87.0 88.0 89.0 90.0\n",
       "Attributes:\n",
       "    defaultvalue:   720.0\n",
       "    pointwidth:     0\n",
       "    long_name:      Sea Surface Temperature\n",
       "    cell_methods:   time: mean\n",
       "    units:          Celsius_scale\n",
       "    spatial_op:     Conservative remapping: 1st order: destarea: NCL: /homes/...\n",
       "    lat:            89.5\n",
       "    standard_name:  sea_surface_temperature\n",
       "    expires:        1580517720
" ], "text/plain": [ "\n", "[3573374400 values with dtype=float32]\n", "Coordinates:\n", " * S (S) float32 264.0 265.0 266.0 267.0 ... 717.0 718.0 719.0 720.0\n", " * X (X) float32 0.0 1.0 2.0 3.0 4.0 ... 355.0 356.0 357.0 358.0 359.0\n", " * M (M) float32 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0\n", " * L (L) float32 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 11.5\n", " * Y (Y) float32 -90.0 -89.0 -88.0 -87.0 -86.0 ... 87.0 88.0 89.0 90.0\n", "Attributes:\n", " defaultvalue: 720.0\n", " pointwidth: 0\n", " long_name: Sea Surface Temperature\n", " cell_methods: time: mean\n", " units: Celsius_scale\n", " spatial_op: Conservative remapping: 1st order: destarea: NCL: /homes/...\n", " lat: 89.5\n", " standard_name: sea_surface_temperature\n", " expires: 1580517720" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds['sst']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The NMME data dimensions correspond to the following: X=lon,L=lead,Y=lat,M=ensemble member, S=initialization time." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's make a very simple contour plot to convince ourselves that we indeed have surface air temperature data. \n", "1. We will use the `matplotlib` `plt.contourf` function for a filed contour plot. It works very similar to Matlab plotting functions. \n", "2. We can only make a contour plot with 2-D data (Y,X) and we have 4-D (S,L,M,Y,X), so we will need to access a single time using brackets notation. \n", "3. We will want to add a colorbar to see that values are reasonable" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.contourf(ds['sst'][0,0,0,:,:])\n", "plt.colorbar()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is a very simple plot, but it looks like we have global temperature data. More details on how to plot maps, make nice lables, and colors, can be found in other examples." ] } ], "metadata": { "kernelspec": { "display_name": "Python (aoes)", "language": "python", "name": "aoes" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.7" } }, "nbformat": 4, "nbformat_minor": 4 }