{ "cells": [ { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from netCDF4 import Dataset, num2date\n", "import numpy as np\n", "import datetime\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "url = 'http://opendap.deltares.nl/thredds/dodsC/opendap/rijkswaterstaat/jarkus/profiles/transect.nc'\n", "url = '/Users/heijer/surfdrive/Documents/work/Deltares/Projects/transect_r20171010.nc'" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "with Dataset(url) as ds:\n", " aidx = np.ma.masked_inside(ds.variables['id'][:], *(13001248, 13001425)).mask\n", " time_topo = ds.variables['time_topo'][:,aidx]\n", " time_bathy = ds.variables['time_bathy'][:,aidx]\n", " time = np.array([y.year for y in num2date(ds.variables['time'][:], ds.variables['time'].units)])\n", " x = np.ones(time.shape) * np.nan\n", " err = np.ones((2, len(time))) * np.nan\n", " for i,(tt, tb) in enumerate(zip(time_topo, time_bathy)):\n", " try:\n", " t1 = (num2date(tt.mean(), ds.variables['time'].units)- datetime.datetime(time[i], 1, 1)).days\n", " t2 = (num2date(tb.mean(), ds.variables['time'].units)- datetime.datetime(time[i], 1, 1)).days\n", " x[i] = np.array([t1, t2]).mean()\n", " err[0,i] = np.abs(x[i] - t1)\n", " err[1,i] = np.abs(x[i] - t2)\n", " except:\n", " pass\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "fig, ax = plt.subplots(1,1, figsize=(6,10))\n", "ax.errorbar(x, time, xerr=err, fmt='o')\n", "ax.set_xlim(-1, 366)\n", "ax.axvline(x[-1], color='r')\n", "ax.set_ylabel('year')\n", "ax.set_xlabel('day in year')\n", "fig.savefig('jarkus_dates.png')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[datetime.datetime(1965, 7, 1, 0, 0) datetime.datetime(1966, 7, 1, 0, 0)\n", " datetime.datetime(1967, 7, 1, 0, 0) datetime.datetime(1968, 7, 1, 0, 0)\n", " datetime.datetime(1969, 7, 1, 0, 0) datetime.datetime(1970, 7, 1, 0, 0)\n", " datetime.datetime(1971, 7, 1, 0, 0) datetime.datetime(1972, 7, 1, 0, 0)\n", " datetime.datetime(1973, 7, 1, 0, 0) datetime.datetime(1974, 7, 1, 0, 0)\n", " datetime.datetime(1975, 7, 1, 0, 0) datetime.datetime(1976, 7, 1, 0, 0)\n", " datetime.datetime(1977, 7, 1, 0, 0) datetime.datetime(1978, 7, 1, 0, 0)\n", " datetime.datetime(1979, 7, 1, 0, 0) datetime.datetime(1980, 7, 1, 0, 0)\n", " datetime.datetime(1981, 7, 1, 0, 0) datetime.datetime(1982, 7, 1, 0, 0)\n", " datetime.datetime(1983, 7, 1, 0, 0) datetime.datetime(1984, 7, 1, 0, 0)\n", " datetime.datetime(1985, 7, 1, 0, 0) datetime.datetime(1986, 7, 1, 0, 0)\n", " datetime.datetime(1987, 7, 1, 0, 0) datetime.datetime(1988, 7, 1, 0, 0)\n", " datetime.datetime(1989, 7, 1, 0, 0) datetime.datetime(1990, 7, 1, 0, 0)\n", " datetime.datetime(1991, 7, 1, 0, 0) datetime.datetime(1992, 7, 1, 0, 0)\n", " datetime.datetime(1993, 7, 1, 0, 0) datetime.datetime(1994, 7, 1, 0, 0)\n", " datetime.datetime(1995, 7, 1, 0, 0) datetime.datetime(1996, 7, 1, 0, 0)\n", " datetime.datetime(1997, 7, 1, 0, 0) datetime.datetime(1998, 7, 1, 0, 0)\n", " datetime.datetime(1999, 7, 1, 0, 0) datetime.datetime(2000, 7, 1, 0, 0)\n", " datetime.datetime(2001, 7, 1, 0, 0) datetime.datetime(2002, 7, 1, 0, 0)\n", " datetime.datetime(2003, 7, 1, 0, 0) datetime.datetime(2004, 7, 1, 0, 0)\n", " datetime.datetime(2005, 7, 1, 0, 0) datetime.datetime(2006, 7, 1, 0, 0)\n", " datetime.datetime(2007, 7, 1, 0, 0) datetime.datetime(2008, 7, 1, 0, 0)\n", " datetime.datetime(2009, 7, 1, 0, 0) datetime.datetime(2010, 7, 1, 0, 0)\n", " datetime.datetime(2011, 7, 1, 0, 0) datetime.datetime(2012, 7, 1, 0, 0)\n", " datetime.datetime(2013, 7, 1, 0, 0) datetime.datetime(2014, 7, 1, 0, 0)\n", " datetime.datetime(2015, 7, 1, 0, 0) datetime.datetime(2016, 7, 1, 0, 0)\n", " datetime.datetime(2017, 7, 1, 0, 0)]\n" ] } ], "source": [ "with Dataset(url) as ds:\n", " time = ds.variables['time']\n", " print(num2date(time[:], time.units))" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2016-07-01 00:00:00\n" ] } ], "source": [ "url_df = '/Users/heijer/surfdrive/Documents/work/Deltares/Projects/DF.nc'\n", "with Dataset(url_df) as ds:\n", " aidx = np.ma.masked_inside(ds.variables['id'][:], *(13001248, 13001425)).mask\n", " print(num2date(ds.variables['time'][-1], ds.variables['time'].units))" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(array([1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907]),)" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.nonzero(aidx)\n" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[13001248 13001268 13001288 13001308 13001322 13001335 13001355 13001375\n", " 13001395 13001411 13001425]\n" ] } ], "source": [ "url_df = '/Users/heijer/surfdrive/Documents/work/Deltares/Projects/transect_r20171010_kop_van_schouwen.nc'\n", "with Dataset(url_df) as ds:\n", " aidx = np.ma.masked_inside(ds.variables['id'][:], *(13001248, 13001425)).mask\n", " print(ds.variables['id'][:])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.4.5" } }, "nbformat": 4, "nbformat_minor": 0 }