{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Read a netcdf file 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` \n", "2. How to make a contour plot of the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data\n", "We will read CMIP5 data for surface air temperature (tas) from the RCP8.5 scenario produced by the NCAR/CCSM4 model. For this example, we will read teh first ensemble member.\n", "\n", "The data are located on the COLA severs in the following directory:\n", "```/shared/cmip5/data/rcp45/atmos/mon/Amon/tas/NCAR.CCSM4/r1i1p1/```\n", "\n", "The filename is:\n", "```tas_Amon_CCSM4_rcp45_r1i1p1_210101-229912.nc```" ] }, { "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": 1, "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": 2, "metadata": {}, "outputs": [], "source": [ "path='/shared/cmip5/data/rcp45/atmos/mon/Amon/tas/NCAR.CCSM4/r1i1p1/'\n", "fname='tas_Amon_CCSM4_rcp45_r1i1p1_200601-210012.nc'" ] }, { "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": 3, "metadata": {}, "outputs": [], "source": [ "ds=xr.open_dataset(path+fname)" ] }, { "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": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.Dataset>\n",
       "Dimensions:    (bnds: 2, lat: 192, lon: 288, time: 1140)\n",
       "Coordinates:\n",
       "  * time       (time) object 2006-01-16 12:00:00 ... 2100-12-16 12:00:00\n",
       "  * lat        (lat) float64 -90.0 -89.06 -88.12 -87.17 ... 88.12 89.06 90.0\n",
       "  * lon        (lon) float64 0.0 1.25 2.5 3.75 5.0 ... 355.0 356.2 357.5 358.8\n",
       "    height     float64 ...\n",
       "Dimensions without coordinates: bnds\n",
       "Data variables:\n",
       "    time_bnds  (time, bnds) object ...\n",
       "    lat_bnds   (lat, bnds) float64 ...\n",
       "    lon_bnds   (lon, bnds) float64 ...\n",
       "    tas        (time, lat, lon) float32 ...\n",
       "Attributes:\n",
       "    institution:                  NCAR (National Center for Atmospheric Resea...\n",
       "    institute_id:                 NCAR\n",
       "    experiment_id:                rcp45\n",
       "    source:                       CCSM4\n",
       "    model_id:                     CCSM4\n",
       "    forcing:                      Sl GHG Vl SS Ds SA BC MD OC Oz AA\n",
       "    parent_experiment_id:         historical\n",
       "    parent_experiment_rip:        r1i1p1\n",
       "    branch_time:                  2005.0\n",
       "    contact:                      cesm_data@ucar.edu\n",
       "    references:                   Gent P. R., et.al. 2011: The Community Clim...\n",
       "    initialization_method:        1\n",
       "    physics_version:              1\n",
       "    tracking_id:                  0bf35136-b266-44d2-9078-f3081b83b6ad\n",
       "    acknowledgements:             The CESM project is supported by the Nation...\n",
       "    cesm_casename:                b40.rcp4_5.1deg.001\n",
       "    cesm_repotag:                 ccsm4_0_beta49\n",
       "    cesm_compset:                 BRCP45CN\n",
       "    resolution:                   f09_g16 (0.9x1.25_gx1v6)\n",
       "    forcing_note:                 Additional information on the external forc...\n",
       "    processed_by:                 strandwg on mirage0 at 20111021\n",
       "    processing_code_information:  Last Changed Rev: 428 Last Changed Date: 20...\n",
       "    product:                      output\n",
       "    experiment:                   RCP4.5\n",
       "    frequency:                    mon\n",
       "    creation_date:                2011-10-21T21:56:22Z\n",
       "    history:                      2011-10-21T21:56:22Z CMOR rewrote data to c...\n",
       "    Conventions:                  CF-1.4\n",
       "    project_id:                   CMIP5\n",
       "    table_id:                     Table Amon (26 July 2011) 976b7fd1d9e1be31d...\n",
       "    title:                        CCSM4 model output prepared for CMIP5 RCP4.5\n",
       "    parent_experiment:            historical\n",
       "    modeling_realm:               atmos\n",
       "    realization:                  1\n",
       "    cmor_version:                 2.7.1
" ], "text/plain": [ "\n", "Dimensions: (bnds: 2, lat: 192, lon: 288, time: 1140)\n", "Coordinates:\n", " * time (time) object 2006-01-16 12:00:00 ... 2100-12-16 12:00:00\n", " * lat (lat) float64 -90.0 -89.06 -88.12 -87.17 ... 88.12 89.06 90.0\n", " * lon (lon) float64 0.0 1.25 2.5 3.75 5.0 ... 355.0 356.2 357.5 358.8\n", " height float64 ...\n", "Dimensions without coordinates: bnds\n", "Data variables:\n", " time_bnds (time, bnds) object ...\n", " lat_bnds (lat, bnds) float64 ...\n", " lon_bnds (lon, bnds) float64 ...\n", " tas (time, lat, lon) float32 ...\n", "Attributes:\n", " institution: NCAR (National Center for Atmospheric Resea...\n", " institute_id: NCAR\n", " experiment_id: rcp45\n", " source: CCSM4\n", " model_id: CCSM4\n", " forcing: Sl GHG Vl SS Ds SA BC MD OC Oz AA\n", " parent_experiment_id: historical\n", " parent_experiment_rip: r1i1p1\n", " branch_time: 2005.0\n", " contact: cesm_data@ucar.edu\n", " references: Gent P. R., et.al. 2011: The Community Clim...\n", " initialization_method: 1\n", " physics_version: 1\n", " tracking_id: 0bf35136-b266-44d2-9078-f3081b83b6ad\n", " acknowledgements: The CESM project is supported by the Nation...\n", " cesm_casename: b40.rcp4_5.1deg.001\n", " cesm_repotag: ccsm4_0_beta49\n", " cesm_compset: BRCP45CN\n", " resolution: f09_g16 (0.9x1.25_gx1v6)\n", " forcing_note: Additional information on the external forc...\n", " processed_by: strandwg on mirage0 at 20111021\n", " processing_code_information: Last Changed Rev: 428 Last Changed Date: 20...\n", " product: output\n", " experiment: RCP4.5\n", " frequency: mon\n", " creation_date: 2011-10-21T21:56:22Z\n", " history: 2011-10-21T21:56:22Z CMOR rewrote data to c...\n", " Conventions: CF-1.4\n", " project_id: CMIP5\n", " table_id: Table Amon (26 July 2011) 976b7fd1d9e1be31d...\n", " title: CCSM4 model output prepared for CMIP5 RCP4.5\n", " parent_experiment: historical\n", " modeling_realm: atmos\n", " realization: 1\n", " cmor_version: 2.7.1" ] }, "execution_count": 4, "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": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.DataArray 'tas' (time: 1140, lat: 192, lon: 288)>\n",
       "[63037440 values with dtype=float32]\n",
       "Coordinates:\n",
       "  * time     (time) object 2006-01-16 12:00:00 ... 2100-12-16 12:00:00\n",
       "  * lat      (lat) float64 -90.0 -89.06 -88.12 -87.17 ... 87.17 88.12 89.06 90.0\n",
       "  * lon      (lon) float64 0.0 1.25 2.5 3.75 5.0 ... 355.0 356.2 357.5 358.8\n",
       "    height   float64 ...\n",
       "Attributes:\n",
       "    standard_name:     air_temperature\n",
       "    long_name:         Near-Surface Air Temperature\n",
       "    units:             K\n",
       "    original_name:     TREFHT\n",
       "    comment:           TREFHT no change\n",
       "    cell_methods:      time: mean (interval: 30 days)\n",
       "    cell_measures:     area: areacella\n",
       "    history:           2011-10-21T21:56:22Z altered by CMOR: Treated scalar d...\n",
       "    associated_files:  baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation...
" ], "text/plain": [ "\n", "[63037440 values with dtype=float32]\n", "Coordinates:\n", " * time (time) object 2006-01-16 12:00:00 ... 2100-12-16 12:00:00\n", " * lat (lat) float64 -90.0 -89.06 -88.12 -87.17 ... 87.17 88.12 89.06 90.0\n", " * lon (lon) float64 0.0 1.25 2.5 3.75 5.0 ... 355.0 356.2 357.5 358.8\n", " height float64 ...\n", "Attributes:\n", " standard_name: air_temperature\n", " long_name: Near-Surface Air Temperature\n", " units: K\n", " original_name: TREFHT\n", " comment: TREFHT no change\n", " cell_methods: time: mean (interval: 30 days)\n", " cell_measures: area: areacella\n", " history: 2011-10-21T21:56:22Z altered by CMOR: Treated scalar d...\n", " associated_files: baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation..." ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds['tas']" ] }, { "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 (lat,lon) and we have 3-D (time,lat,lon), 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": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "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['tas'][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." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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 }