{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%load_ext load_style\n", "%load_style talk.css" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Read SST data, Create and Save nino3 time series\n", "\n", "In this notebook, we will finish these tasks\n", "* subsample SST data over the nino3 area\n", "* calcualte climatology\n", "* calculate anomalies\n", "* calculate regional mean\n", "* plot regional mean SST time series\n", "* save data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Load basic libraries" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "from numpy import nonzero\n", "\n", "import matplotlib.pyplot as plt # to generate plots\n", "from mpl_toolkits.basemap import Basemap # plot on map projections\n", "import matplotlib.dates as mdates\n", "\n", "import datetime \n", "from netCDF4 import Dataset # http://unidata.github.io/netcdf4-python/\n", "from netCDF4 import netcdftime\n", "from netcdftime import utime" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Set and read input NetCDF file info" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.1 Read data" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "ncfile = 'data\\skt.mon.mean.nc'\n", "\n", "fh = Dataset(ncfile, mode='r') # file handle, open in read only mode\n", "lon = fh.variables['lon'][:]\n", "lat = fh.variables['lat'][:]\n", "nctime = fh.variables['time'][:]\n", "t_unit = fh.variables['time'].units\n", "skt = fh.variables['skt'][:]\n", "\n", "try :\n", " t_cal = fh.variables['time'].calendar\n", "except AttributeError : # Attribute doesn't exist\n", " t_cal = u\"gregorian\" # or standard\n", "\n", "fh.close() # close the file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.2 Parse time" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(687L,)\n" ] }, { "data": { "text/plain": [ "array([datetime.datetime(1948, 1, 1, 0, 0),\n", " datetime.datetime(1948, 2, 1, 0, 0),\n", " datetime.datetime(1948, 3, 1, 0, 0),\n", " datetime.datetime(1948, 4, 1, 0, 0),\n", " datetime.datetime(1948, 5, 1, 0, 0)], dtype=object)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "utime = netcdftime.utime(t_unit, calendar = t_cal)\n", "datevar = utime.num2date(nctime)\n", "print(datevar.shape)\n", "\n", "datevar[0:5]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Subregion for nino3 area\n", "\n", "* Lat: -5 ~ 5\n", "* Lon: 210 ~ 270" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3.1 Get indices of time, lat and lon over the nino3 area" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "idx_lat_n3 = (lat>=-5.0) * (lat<=5.0)\n", "idx_lon_n3 = (lon>=210.0) * (lon<=270.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* time: 1970-1999" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "years = np.array([idx.year for idx in datevar])\n", "idx_tim_n3 = (years>=1970) * (years<=1999)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get Index using np.nonzero" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,\n", " 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,\n", " 138, 139, 140, 141, 142, 143, 144], dtype=int64)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "idxtim = nonzero(idx_tim_n3)[0]\n", "#idxlat = nonzero(idx_lat_n3)[0]\n", "idxlon = nonzero(idx_lon_n3)[0]\n", "idxlon" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3.2 Extract data over nino3 area\n", "\n", "Use logical indexing is fine for 1D array; however, a little funny for multiple dimension array." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(360L, 6L, 33L)\n", "(360L,)\n" ] } ], "source": [ "lat_n3 = lat[idx_lat_n3]\n", "lon_n3 = lon[idx_lon_n3]\n", "dates_n3 = datevar[idx_tim_n3]\n", "\n", "skt_n3 = skt[idx_tim_n3, :, :][:,idx_lat_n3,:][:,:,idx_lon_n3]\n", "print(skt_n3.shape)\n", "print(dates_n3.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Calculate region means" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.1 Transform skt_n3 from months|lat|lon => 12|year|lat|lon => year|12|lat|lon" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(30L, 12L, 6L, 33L)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "skt_n3 = np.reshape(skt_n3, (12,30,6,33), order='F')\n", "skt_n3 = np.transpose(skt_n3, (1, 0, 2, 3))\n", "skt_n3.shape" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### 4.2 Calculate monthly climatology" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(12L, 6L, 33L)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clima_skt_n3 = np.mean(skt_n3, axis=0)\n", "clima_skt_n3.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.3 Calculate anomaly of SST over nino3 area" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(360L, 6L, 33L)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "num_repeats = 30 # 30 years\n", "clima_skt_n3 = np.vstack([clima_skt_n3]*num_repeats)\n", "clima_skt_n3.shape" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(30L, 12L, 6L, 33L)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clima_skt_n3 = np.reshape(clima_skt_n3, (12,30,6,33),order='F')\n", "clima_skt_n3 = np.transpose(clima_skt_n3, (1, 0, 2, 3))\n", "clima_skt_n3.shape" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(30L, 12L)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ssta = skt_n3-clima_skt_n3\n", "ssta2 = np.reshape(ssta,(30,12,6*33), order='F') # 30x12x198\n", "ssta3 = np.mean(ssta2, axis=2); # 30x12\n", "ssta3.shape" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(360L, 1L)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ssta_series = np.reshape(ssta3.T,(12*30,1), order='F'); # 1x360\n", "ssta_series.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. Have a beautiful look" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.dates as mdates\n", "from matplotlib.dates import MonthLocator, WeekdayLocator, DateFormatter\n", "import matplotlib.ticker as ticker\n", "\n", "fig, ax = plt.subplots(1, 1 , figsize=(15,5))\n", "ax.plot(dates_n3, ssta_series)\n", "ax.set_ylim((-4,4))\n", "\n", "#horiz_line_data = np.array([0 for i in np.arange(len(dates_n3))])\n", "#ax.plot(dates_n3, horiz_line_data, 'r--') \n", "ax.axhline(0, color='r')\n", "\n", "ax.set_title('NINO3 SSTA 1970-1999')\n", "ax.set_ylabel(['$^oC$'])\n", "ax.set_xlabel('Date')\n", "\n", "# rotate and align the tick labels so they look better\n", "fig.autofmt_xdate()\n", "\n", "# use a more precise date string for the x axis locations in the toolbar\n", "ax.fmt_xdata = mdates.DateFormatter('%Y')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6. Save data" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "np.savez('data/ssta.nino3.30y.npz', ssta_series=ssta_series)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## References\n", "\n", "http://unidata.github.io/netcdf4-python/\n", "\n", "John D. Hunter. Matplotlib: A 2D Graphics Environment, Computing in Science & Engineering, 9, 90-95 (2007), DOI:10.1109/MCSE.2007.55\n", "\n", "Stéfan van der Walt, S. Chris Colbert and Gaël Varoquaux. The NumPy Array: A Structure for Efficient Numerical Computation, Computing in Science & Engineering, 13, 22-30 (2011), DOI:10.1109/MCSE.2011.37\n", "\n", "Kalnay et al.,The NCEP/NCAR 40-year reanalysis project, Bull. Amer. Meteor. Soc., 77, 437-470, 1996." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.12" } }, "nbformat": 4, "nbformat_minor": 2 }