{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Development of Algorithms for ERDDAP Dataset from ONC CTD Data\n", "\n", "Figuring out how to transform a day's ONC CTD data from a SoG node into\n", "a netCDF file that is part of an ERDDAP dataset:\n", "\n", "* filter the ONC data to include only `qaqcFlag == 1` samples\n", "* remove the `qaqcFlag` arrays as variable attributes\n", "* aggregate the data into 15 minute time bins;\n", "mean, variance, and count for each variable in each time bin\n", "* store dataset as netCDF file\n", "* generate ERDDAP `/opt/tomcat/content/erddap/datasets.xml` fragment" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from collections import OrderedDict\n", "import os\n", "\n", "import arrow\n", "from lxml import etree\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import xarray as xr\n", "\n", "from salishsea_tools import data_tools\n", "from salishsea_tools.places import PLACES" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get Data from ONC `scalardata` Web Service\n", "\n", "Access to the ONC web services requires a user token which you can generate on the \n", "`Web Services API` tab of your [ONC account profile page](http://dmas.uvic.ca/Profile).\n", "I have stored mine in an environment variable so as not to publish it to the world\n", "in this notebook." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "TOKEN = os.environ['ONC_USER_TOKEN']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Request a day's worth of CTD salinity and temperature data\n", "and parse them into an `xarray.Dataset`:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "onc_data = data_tools.get_onc_data(\n", " 'scalardata', 'getByStation', TOKEN,\n", " station='SCVIP', deviceCategory='CTD',\n", " sensors='salinity,temperature',\n", " dateFrom=data_tools.onc_datetime('2015-12-27 00:00', 'utc'),\n", ")\n", "\n", "ctd_data = data_tools.onc_json_to_dataset(onc_data)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "Dimensions: (sampleTime: 86398)\n", "Coordinates:\n", " * sampleTime (sampleTime) datetime64[ns] 2015-12-27T00:00:00.259000 ...\n", "Data variables:\n", " salinity (sampleTime) float64 31.23 31.23 31.23 31.23 31.23 31.23 ...\n", " temperature (sampleTime) float64 9.959 9.959 9.959 9.959 9.959 9.959 ...\n", "Attributes:\n", " dateFrom: 2015-12-27T00:00:00.000Z\n", " deviceCategory: CTD\n", " dateTo: None\n", " rowLimit: None\n", " outputFormat: None\n", " sensors: salinity,temperature\n", " nextDateFrom: 2015-12-28T00:00:00.090Z\n", " totalActualSamples: 172796\n", " station: SCVIP" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ctd_data" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "array([ 31.22826354, 31.22836401, 31.22826354, ..., 28.26344878,\n", " 28.26375019, 28.26415208])\n", "Coordinates:\n", " * sampleTime (sampleTime) datetime64[ns] 2015-12-27T00:00:00.259000 ...\n", "Attributes:\n", " unitOfMeasure: g/kg\n", " qaqcFlag: [1 1 1 ..., 4 4 4]\n", " sensorName: Reference Salinity\n", " actualSamples: 86398" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ctd_data.data_vars['salinity']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Filter Data Based on `qaqcFlag` Values\n", "\n", "Filter the salinity data to exclude samples for which `qaqcFlag != 1`:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "\n", "array([ 31.22826354, 31.22836401, 31.22826354, ..., 28.26344878,\n", " 28.26375019, 28.26415208])\n", "Coordinates:\n", " * sampleTime (sampleTime) datetime64[ns] 2015-12-27T00:00:00.259000 ...\n", "Attributes:\n", " unitOfMeasure: g/kg\n", " qaqcFlag: [1 1 1 ..., 4 4 4]\n", " sensorName: Reference Salinity\n", " actualSamples: 86398" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ctd_data.salinity" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": true }, "outputs": [], "source": [ "salinity_qaqc_mask = ctd_data.salinity.attrs['qaqcFlag'] == 1\n", "salinity = xr.DataArray(\n", " name='salinity',\n", " data=ctd_data.salinity[salinity_qaqc_mask].values,\n", " coords={'time': ctd_data.salinity.sampleTime[salinity_qaqc_mask].values},\n", ")" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "\n", "array([ 31.22826354, 31.22836401, 31.22826354, ..., 31.22977061,\n", " 31.22967014, 31.22977061])\n", "Coordinates:\n", " * time (time) datetime64[ns] 2015-12-27T00:00:00.259000 ..." ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "salinity" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Filter the temperature data to exclude samples for which `qaqcFlag != 1`:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "array([ 9.959 , 9.959 , 9.9591, ..., 9.9531, 9.9533, 9.9531])\n", "Coordinates:\n", " * sampleTime (sampleTime) datetime64[ns] 2015-12-27T00:00:00.259000 ...\n", "Attributes:\n", " unitOfMeasure: C\n", " qaqcFlag: [1 1 1 ..., 1 1 1]\n", " sensorName: Temperature\n", " actualSamples: 86398" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ctd_data.temperature" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": true }, "outputs": [], "source": [ "temperature_qaqc_mask = ctd_data.temperature.attrs['qaqcFlag'] == 1\n", "temperature = xr.DataArray(\n", " name='temperature',\n", " data=ctd_data.temperature[temperature_qaqc_mask].values,\n", " coords={'time': ctd_data.temperature.sampleTime[temperature_qaqc_mask].values},\n", ")" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "array([ 9.959 , 9.959 , 9.9591, ..., 9.9531, 9.9533, 9.9531])\n", "Coordinates:\n", " * time (time) datetime64[ns] 2015-12-27T00:00:00.259000 ..." ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "temperature" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create 15 Minute Resampled Dataset" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Station-specific metadata for the dataset:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": true }, "outputs": [], "source": [ "xr_metadata = {\n", " 'SCVIP': {\n", " 'place_name': 'Central node',\n", " 'ONC_station': 'Central',\n", " 'ONC_stationCode': PLACES['Central node']['ONC stationCode'],\n", " 'ONC_stationDescription': \n", " 'Pacific, Salish Sea, Strait of Georgia, Central, Strait of Georgia VENUS Instrument Platform',\n", " 'ONC_data_product_url': 'http://dmas.uvic.ca/DataSearch?location=SCVIP&deviceCategory=CTD',\n", " },\n", " 'SEVIP': {\n", " 'place_name': 'East node',\n", " 'ONC_station': 'East',\n", " 'ONC_stationCode': PLACES['East node']['ONC stationCode'],\n", " 'ONC_stationDescription': \n", " 'Pacific, Salish Sea, Strait of Georgia, East, Strait of Georgia VENUS Instrument Platform',\n", " 'ONC_data_product_url': 'http://dmas.uvic.ca/DataSearch?location=SEVIP&deviceCategory=CTD',\n", " },\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define an aggregation function to count the samples in each\n", "resampling interval:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def count(values, axis):\n", " return values.size" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a dataset of resampled data and their statistics:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": true }, "outputs": [], "source": [ "onc_station = 'SCVIP'\n", "\n", "ds = xr.Dataset(\n", " data_vars={\n", " 'salinity': xr.DataArray(\n", " name='salinity',\n", " data=salinity.resample('15Min', 'time', how='mean'),\n", " attrs={\n", " 'ioos_category': 'Salinity',\n", " 'standard_name': 'sea_water_reference_salinity',\n", " 'long_name': 'reference salinity',\n", " 'units': 'g/kg',\n", " 'aggregation_operation': 'mean',\n", " 'aggregation_interval': 15*60,\n", " 'aggregation_interval_units': 'seconds',\n", " },\n", " ),\n", " 'salinity_std_dev': xr.DataArray(\n", " name='salinity_std_dev',\n", " data=salinity.resample('15Min', 'time', how='std'),\n", " attrs={\n", " 'ioos_category': 'Salinity',\n", " 'standard_name':b 'sea_water_reference_salinity_standard_deviation',\n", " 'long_name': 'reference salinity standard deviation',\n", " 'units': 'g/kg',\n", " 'aggregation_operation': 'standard deviation',\n", " 'aggregation_interval': 15*60,\n", " 'aggregation_interval_units': 'seconds',\n", " },\n", " ),\n", " 'salinity_sample_count': xr.DataArray(\n", " name='salinity_sample_count',\n", " data=salinity.resample('15Min', 'time', how=count),\n", " attrs={\n", " 'standard_name': 'sea_water_reference_salinity_sample_count',\n", " 'long_name': 'reference salinity sample count',\n", " 'aggregation_operation': 'count',\n", " 'aggregation_interval': 15*60,\n", " 'aggregation_interval_units': 'seconds',\n", " },\n", " ),\n", " 'temperature': xr.DataArray(\n", " name='temperature',\n", " data=temperature.resample('15Min', 'time', how='mean'),\n", " attrs={\n", " 'ioos_category': 'Temperature',\n", " 'standard_name': 'sea_water_temperature',\n", " 'long_name': 'temperature',\n", " 'units': 'degrees_Celcius',\n", " 'aggregation_operation': 'mean',\n", " 'aggregation_interval': 15*60,\n", " 'aggregation_interval_units': 'seconds',\n", " },\n", " ),\n", " 'temperature_std_dev': xr.DataArray(\n", " name='temperature_std_dev',\n", " data=temperature.resample('15Min', 'time', how='std'),\n", " attrs={\n", " 'ioos_category': 'Temperature',\n", " 'standard_name': 'sea_water_temperature_standard_deviation',\n", " 'long_name': 'temperature standard deviation',\n", " 'units': 'degrees_Celcius',\n", " 'aggregation_operation': 'standard deviation',\n", " 'aggregation_interval': 15*60,\n", " 'aggregation_interval_units': 'seconds',\n", " },\n", " ),\n", " 'temperature_sample_count': xr.DataArray(\n", " name='temperature_sample_count',\n", " data=temperature.resample('15Min', 'time', how=count),\n", " attrs={\n", " 'standard_name': 'sea_water_temperature_sample_count',\n", " 'long_name': 'temperature sample count',\n", " 'aggregation_operation': 'count',\n", " 'aggregation_interval': 15*60,\n", " 'aggregation_interval_units': 'seconds',\n", " },\n", " ),\n", " },\n", " coords={\n", " 'depth': PLACES[xr_metadata[onc_station]['place_name']]['depth'],\n", " 'longitude': PLACES[xr_metadata[onc_station]['place_name']]['lon lat'][0],\n", " 'latitude': PLACES[xr_metadata[onc_station]['place_name']]['lon lat'][1],\n", " },\n", " attrs={\n", " 'history': \"\"\"\n", "{0} Download raw data from ONC scalardata API.\n", "{0} Filter to exclude data with qaqcFlag != 1.\n", "{0} Resample data to 15 minute intervals using mean, standard deviation and count as aggregation functions.\n", "{0} Store as netCDF4 file.\n", " \"\"\".format(arrow.now().format('YYYY-MM-DD HH:mm:ss')),\n", " 'ONC_station': xr_metadata[onc_station]['ONC_station'],\n", " 'ONC_stationCode': PLACES[xr_metadata[onc_station]['place_name']]['ONC stationCode'],\n", " 'ONC_stationDescription': xr_metadata[onc_station]['ONC_stationDescription'],\n", " 'ONC_data_product_url': xr_metadata[onc_station]['ONC_data_product_url'],\n", " },\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If any of the `DataArray`s are short compared to the others the missing values\n", "are filled with `NaN`s.\n", "That makes sense for temperature and salinity values,\n", "and their standard deviations,\n", "but not their sample counts.\n", "So, we change `NaN`s to zeros in the sample count `DataArray`s:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": true }, "outputs": [], "source": [ "ds.salinity_sample_count.values = np.nan_to_num(ds.salinity_sample_count.values)\n", "ds.temperature_sample_count.values = np.nan_to_num(ds.temperature_sample_count.values)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "Dimensions: (time: 96)\n", "Coordinates:\n", " * time (time) datetime64[ns] 2015-12-27 ...\n", " longitude float64 -123.4\n", " depth int64 294\n", " latitude float64 49.04\n", "Data variables:\n", " salinity (time) float64 31.23 31.23 31.23 31.23 31.23 ...\n", " salinity_std_dev (time) float64 0.0001472 0.0001813 0.0001711 ...\n", " temperature_sample_count (time) int64 900 900 900 900 900 900 900 900 ...\n", " temperature_std_dev (time) float64 0.0001285 0.0001598 0.000142 ...\n", " salinity_sample_count (time) float64 900.0 899.0 900.0 900.0 900.0 ...\n", " temperature (time) float64 9.959 9.959 9.959 9.959 9.958 ...\n", "Attributes:\n", " history: \n", "2016-09-19 13:07:14 Download raw data from ONC scalardata API.\n", "2016-09-19 13:07:14 Filter to exclude data with qaqcFlag != 1.\n", "2016-09-19 13:07:14 Resample data to 15 minute intervals using mean, standard deviation and count as aggregation functions.\n", "2016-09-19 13:07:14 Store as netCDF4 file.\n", " \n", " ONC_stationDescription: Pacific, Salish Sea, Strait of Georgia, Central, Strait of Georgia VENUS Instrument Platform\n", " ONC_stationCode: SCVIP\n", " ONC_station: Central\n", " ONC_data_product_url: http://dmas.uvic.ca/DataSearch?location=SCVIP&deviceCategory=CTD" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Examine the Dataset" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "array([ 900., 899., 900., 900., 900., 899., 899., 900., 900.,\n", " 900., 899., 897., 900., 896., 899., 900., 899., 899.,\n", " 900., 900., 899., 900., 899., 899., 900., 899., 899.,\n", " 899., 899., 897., 900., 899., 900., 900., 900., 899.,\n", " 899., 899., 899., 896., 895., 899., 899., 900., 898.,\n", " 898., 900., 899., 899., 900., 900., 899., 900., 899.,\n", " 900., 899., 898., 898., 900., 900., 446., 0., 0.,\n", " 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0., 0., 0., 0., 0.])\n", "Coordinates:\n", " * time (time) datetime64[ns] 2015-12-27 2015-12-27T00:15:00 ...\n", " longitude float64 -123.4\n", " depth int64 294\n", " latitude float64 49.04\n", "Attributes:\n", " standard_name: sea_water_reference_salinity_sample_count\n", " aggregation_operation: count\n", " aggregation_interval: 900\n", " aggregation_interval_units: seconds\n", " long_name: reference salinity sample count\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABCoAAAF9CAYAAADC5okiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XecVPXVx/HPoaMgYgEUFAv2hqiIHQvB3huWaDS2qNFo\nYs0TW3ysGHtUYoyxYu+9oLGBiooNH7EiNowgIqAI5/njd8ednZ3ZnZ2dmXvvzPf9es1r7ty5d+Ys\n7P727pnfOT9zd0REREREREREkqBd3AGIiIiIiIiIiGQoUSEiIiIiIiIiiaFEhYiIiIiIiIgkhhIV\nIiIiIiIiIpIYSlSIiIiIiIiISGIoUSEiIiIiIiIiiaFEhYiIiFSEmX1vZsvEHUeSmNl1ZnZm3HGI\nSH2Lc3zWOCjFUKJCUsnMPjazWWY2w8w+jwa8BSr8ngeY2c/Re84wsw/M7J9mtkIrXkMDs4hUlZkd\naWYvm9kcM/tnznP9zWx+NKZ9H92fWq73dvfu7v5xqeeb2YJmNtPMHixXTCIiSZHW8dnMDjazd83s\nOzP7wsweMLMFo+fadK1bjuttqQ1KVEhaObCduy8EDATWBk6uwvu+EL1nD2ArYDbwqpmtWoX3FhEp\nxRTgLODaAs870CO6aF3I3c+uXmgt2g2YAwwzs16VeAMza1+J1xURKULqxmcz2ww4G9jL3XsAqwCj\ny/w2ut4WJSok1QzA3b8GHiUkLMITZtua2fgo0/uJmZ2W9dy/zOwP0faSUbb6iOjx8mb235be2IOP\n3P1I4Bng9KzXvy3KLk8zszFmtkq0/xBgX+CEKEN8b7T/RDObFO17y8x2bvO/jIhIxN3vcff7gG8L\nHGIUeT1gZk+b2Vlm9nz0Cd+9ZraImd0YjbdjzWzprOPnm9ly0fZ1ZnZ59MnbDDN70cyWbeEtDwD+\nDkwA9st63RPM7Pac2C4xs4uj7YXM7B/RjLvJUcwWPXeAmT1nZheZ2TfAaWa2nJk9aWbfmNnX0dez\nUNZrD8r6nXKbmd2a/YmhmW1vZq9F4/5zZrZG1nNrm9mr0bm3Al2K+bcWkdqX0vF5XUIiYUL0NUx3\n9xvc/YdmrnVLGgdbuN4eEn2t06Lxd7No/55m9nLOv80fzOyeYt5TkqOuExVmdqaZvRF9cz9iZn0K\nHHetmX1lZhNy9p9vYdrT62Z2Z+aixsy2MrNXotd+2cw2LyKWI83sfTObZ2aLlOcrrA9m1g/YBng/\n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\nR1hGLFPbN91DzfNiUdd2zKwrMIyGrsb3EZqhQVgC7N6KfhUiIumlcVhEpDpKHm+bOzdaDeRPwI4e\nmhwT7V8sasKJmS0HDCD0UBERSb2Kln64+zwzO4rQrTiz1NK7ZnZYeNqvcfeHzGxbM5tEWKYp08l9\nCeD6aABuB4x294ei584DbjOzgwjr5uZdyk5EpN5pHBYRqY62jLeFzo1e+jLCMtGPmxk0LEO6KXCm\nmf0EzAcOc/fp1fuKRSSNvvkGFlwQunaNO5LmVbxHhYeGUyvl7Ls65/FRec57ExhU4DW/JSxjl1pD\nhw6NO4SCFFtpFFtpFFvl1dI4nPT/kyTHp9hKl+T4FFuylDreFjo32r9CgePvAu4qOdg2SPL/rWIr\nXZLjS3JskOz4cmM7+WTYaCM48MBYwilaRZcnjZuZeS1/fSKSTmaGx9/ArSo0DotIUmksFpF6tN9+\nIVFxxBFxR9L8OFzpHhUiIiIiIiIikgA//xxuSadEhYiIiIiIiEgdmDs33JJOiQoRERERERGROqBE\nhYiIiIiIiIgkhko/RERERERERCQxNKNCRERERERERBJDiQoRERERERERSYyff1aiQkREREREREQS\nYu5c9agQERERERERkYRQ6YeIiIiIiIiIJIZKP0REREREREQkMVT6ISIiIiIiIiKJodIPERERERER\nEUkMlX6IiIiIiIiISGKo9ENEREREREREEkOlHyIiIiIiIiKSGCr9EBEREREREZHEUOmHiIiIiIiI\niCSGSj9EREREREREJDFU+iEiIiIiIiIiieAO8+ap9ENEREREREREEiAzk0IzKkREREREREQkdpmZ\nFEpUiIiIiIiIiEjsNKNCRERERERERBIjM6NCPSpEREREREREJHaaUSEiIiIiIiIiiaFEhYiIiIiI\niIgkxs8/Q+fOKv0QERERERERkQSYOxe6dtWMChERERERERFJACUqRERERERERCQxfv4ZFlhApR8i\nIiIiIiIikgCaUSEiIiIiIiIiiZGdqHCPO5rmKVEhIiIiIiIiUuMyq36Ywfz5cUfTPCUqRFLgttvC\ngCIiIiIiIlKKuXOhY8dwS3r5hxIVIimw117h3gy++KLp8/vtF57L3Hr1qm58IiIiIiKSbHPnQocO\nSlSISCu89x58803Lxy25JKy7Lvz+9+Hxs8/CTTc1PmbqVFhlFZg8ufxxioiIiIhI+vz8c0hSdOiQ\n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\n/wALGXxT2unmfAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(ds.salinity_sample_count)\n", "fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(18, 6))\n", "salinity.plot(ax=ax1)\n", "ax1.set_title('Raw Data')\n", "ds.salinity.plot(ax=ax2)\n", "ax2.set_title('15 min Averaged')\n", "ds.salinity_std_dev.plot(ax=ax3)\n", "ax3.set_title('15 min Std Dev')" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "array([900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900,\n", " 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900,\n", " 900, 900, 900, 899, 901, 899, 900, 900, 900, 900, 900, 900, 900,\n", " 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900,\n", " 900, 900, 900, 900, 900, 900, 900, 900, 900, 897, 900, 900, 900,\n", " 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900,\n", " 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900,\n", " 900, 900, 899, 900, 900])\n", "Coordinates:\n", " * time (time) datetime64[ns] 2015-12-27 2015-12-27T00:15:00 ...\n", " longitude float64 -123.4\n", " depth int64 294\n", " latitude float64 49.04\n", "Attributes:\n", " standard_name: sea_water_temperature_sample_count\n", " aggregation_operation: count\n", " aggregation_interval: 900\n", " aggregation_interval_units: seconds\n", " long_name: temperature sample count\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nEsb/A9wBYD/ajbkBAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(ds.temperature_sample_count)\n", "fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(18, 6))\n", "temperature.plot(ax=ax1)\n", "ax1.set_title('Raw Data')\n", "ds.temperature.plot(ax=ax2)\n", "ax2.set_title('15 min Averaged')\n", "ds.temperature_std_dev.plot(ax=ax3)\n", "ax3.set_title('15 min Std Dev')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Store the Dataset as a netCDF4 File\n", "\n", "ERDDAP requires that all files in a dataset have the same units for their `time` variable.\n", "On the other hand,\n", "`xarray` defaults to using the 1st `time` value in the dataset as the time-base for the units.\n", "So, we have to explicitly define the `time` units as an encoding when the dataset is stored\n", "as a netCDF4 file." ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": true }, "outputs": [], "source": [ "ds.to_netcdf(\n", " '/results/observations/ONC/CTD/{station}/{station}_CTD_15m_20151227.nc'\n", " .format(station=onc_station),\n", " encoding={'time': {'units': 'minutes since 1970-01-01 00:00'}})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generate an ERDDAP Dataset XML Fragment\n", "\n", "Use the `/opt/tomcat/webapps/erddap/WEB-INF/GenerateDatasetsXml.sh` script\n", "generate the initial version of an XML fragment for a dataset:\n", "```\n", "$ cd /opt/tomcat/webapps/erddap/WEB-INF/\n", "$ bash GenerateDatasetsXml.sh EDDTableFromNcFiles /results/observations/ONC/CTD/SCVIP/\n", "```\n", "The `EDDTableFromNcFiles` and `/results/observations/ONC/CTD/SCVIP/` arguments\n", "tell the script which `EDDType` and what parent directory to use,\n", "avoiding having to type those in answer to prompts.\n", "Answer the remaining prompts,\n", "for example:\n", "```\n", "File name regex (e.g., \".*\\.nc\") (default=\"\")\n", "? .*SCVIP_CTD_15m_\\d{8}\\.nc$ \n", "A sample full file name (default=\"\")\n", "? /results/observations/ONC/CTD/SCVIP/SCVIP_CTD_15m_20160724.nc\n", "DimensionsCSV (or \"\" for default) (default=\"\")\n", "? \n", "ReloadEveryNMinutes (e.g., 10080) (default=\"\")\n", "? 10080\n", "PreExtractRegex (default=\"\")\n", "? \n", "PostExtractRegex (default=\"\")\n", "? \n", "ExtractRegex (default=\"\")\n", "? \n", "Column name for extract (default=\"\")\n", "? \n", "Sorted column source name (default=\"\")\n", "? \n", "Sort files by sourceName (default=\"\")\n", "? \n", "infoUrl (default=\"\")\n", "? https://salishsea-meopar-tools.readthedocs.org/en/latest/results_server/\n", "institution (default=\"\")\n", "? UBC EOAS\n", "summary (default=\"\")\n", "? \n", "title (default=\"\")\n", "? ONC, Strait of Georgia, Central Node, Salinity and Temperature, 15min, v1\n", "```\n", "\n", "The output is written to `/results/erddap/logs/GenerateDatasetsXml.out`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `metadata` dictionary below contains information for dataset\n", "attribute tags whose values need to be changed,\n", "or that need to be added for all datasets.\n", "\n", "The keys are the dataset attribute names.\n", "\n", "The values are dicts containing a required `text` item\n", "and perhaps an optional `after` item.\n", "\n", "The value associated with the `text` key is the text content\n", "for the attribute tag.\n", "\n", "When present,\n", "the value associated with the `after` key is the name\n", "of the dataset attribute after which a new attribute tag\n", "containing the `text` value is to be inserted." ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": true }, "outputs": [], "source": [ "metadata = OrderedDict([\n", " ('cdm_data_type', {'text': 'TimeSeries'}),\n", " ('cdm_timeseries_variables', {\n", " 'text': 'depth, longitude, latitude',\n", " 'after': 'cdm_data_type',\n", " }),\n", " ('institution_fullname', {\n", " 'text': 'Earth, Ocean & Atmospheric Sciences, University of British Columbia',\n", " 'after': 'institution',\n", " }),\n", " ('license', {\n", " 'text': '''The Salish Sea MEOPAR observation datasets are copyright 2013 – present\n", "by the Salish Sea MEOPAR Project Contributors, The University of British Columbia, and Ocean Networks Canada.\n", "\n", "They are licensed under the Apache License, Version 2.0. http://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Raw instrument data on which this dataset is based were provided by Ocean Networks Canada.''',\n", " }),\n", " ('project', {\n", " 'text':'Salish Sea MEOPAR NEMO Model',\n", " 'after': 'title',\n", " }),\n", " ('creator_name', {\n", " 'text': 'Salish Sea MEOPAR Project Contributors',\n", " }),\n", " ('creator_email', {\n", " 'text': 'sallen@eos.ubc.ca',\n", " 'after': 'creator_name',\n", " }),\n", " ('creator_url', {\n", " 'text': 'https://salishsea-meopar-docs.readthedocs.org/',\n", " }),\n", " ('acknowledgement', {\n", " 'text': 'MEOPAR, ONC, Compute Canada',\n", " 'after': 'creator_url',\n", " }),\n", " ('drawLandMask', {\n", " 'text': 'over',\n", " 'after': 'acknowledgement',\n", " }),\n", "])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `datasets` dictionary below provides the content\n", "for the dataset `title` and `summary` attributes.\n", "\n", "The `title` attribute content appears in the the datasets list table\n", "(among other places).\n", "\n", "The `summary` atribute content appears\n", "(among other places)\n", "when a user hovers the cursor over the `?` icon beside the `title`\n", "content in the datasets list table.\n", "The text that is inserted into the `summary` attribute tag\n", "by code later in this notebook is the\n", "`title` content followed by the `summary` content,\n", "separated by a blank line.\n", "\n", "The keys of the `datasets` dict are the `datasetID` strings that\n", "are used in many places by the ERDDAP server.\n", "They are structured as follows:\n", "\n", "* `ubc` to indicate that the dataset was produced at UBC\n", "* `ONC` to indicate that the dataset is a product of filter, resampling, etc.\n", "raw instrument data provided by Ocean Networks Canada (ONC)\n", "* a description of the dataset variables; e.g. `SCVIPCTD`\n", "* the time interval of values in the dataset; e.g. `15m`\n", "* the dataset version; e.g. `V1`\n", "\n", "So:\n", "\n", "* `ubcONCSCVIPCTD15mV1` is the version 1 dataset of 15 minute resampled CTD temperature and salinity data\n", "from the ONC Strait of Georgia Central node VENUS instrument platform\n", "\n", "The dataset version part of the `datasetID` is used to indicate changes in the variables\n", "contained in the dataset.\n", "\n", "All datasets start at `V1` and their `summary` ends with a notation about the variables\n", "that they contain; e.g.\n", "```\n", "v1: reference salinity, reference salinity standard deviation, reference salinity sample counts, \n", "temperature, temperature standard deviation, temperature sample counts variables\n", "```\n", "When the a dataset version is incremented a line describing the change is added\n", "to the end of its `summary`." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": true }, "outputs": [], "source": [ "datasets = {\n", " 'ubcONCSCVIPCTD15mV1' :{\n", " 'type': 'resampled CTD',\n", " 'title': 'ONC, Strait of Georgia, Central Node, Salinity and Temperature, 15min, v1',\n", " 'summary':'''Temperature and salinity data from the Ocean Networks Canada (ONC)\n", "Strait of Georgia Central Node VENUS Instrument Platform CTD.\n", "The data are resampled from the raw instrument data to 15 minute mean values.\n", "They are accompanied by standard deviations and sample counts for each of the 15 minute\n", "aggregation intervals.\n", "\n", "v1: reference salinity, reference salinity standard deviation, reference salinity sample counts, \n", "temperature, temperature standard deviation, temperature sample counts variables''',\n", " 'keywords': '''15min aggregation, ONC Central Node VENUS Instrument Platform, Ocean Networks Canada,\n", "depth, UBC EOAS, Strait of Georgia, latitude, longitude, ocean, SCVIP, observations, CTD,\n", "Oceans > Ocean Temperature > Water Temperature,\n", "reference salinity, salinity_sample_count, salinity_std_dev, sea_water_reference_salinity, \n", "sea_water_reference_salinity_sample_count, sea_water_reference_salinity_standard_deviation, \n", "sea_water_temperature, sea_water_temperature_sample_count, sea_water_temperature_standard_deviation, \n", "temperature, temperature_sample_count, temperature_std_dev, time''',\n", " 'fileNameRegex': '.*SCVIP_CTD_15m_\\d{8}\\.nc$'\n", " },\n", " \n", " 'ubcONCSEVIPCTD15mV1' :{\n", " 'type': 'resampled CTD',\n", " 'title': 'ONC, Strait of Georgia, East Node, Salinity and Temperature, 15min, v1',\n", " 'summary':'''Temperature and salinity data from the Ocean Networks Canada (ONC)\n", "Strait of Georgia East Node VENUS Instrument Platform CTD.\n", "The data are resampled from the raw instrument data to 15 minute mean values.\n", "They are accompanied by standard deviations and sample counts for each of the 15 minute\n", "aggregation intervals.\n", "\n", "v1: reference salinity, reference salinity standard deviation, reference salinity sample counts, \n", "temperature, temperature standard deviation, temperature sample counts variables''',\n", " 'keywords': '''15min aggregation, ONC East Node VENUS Instrument Platform, Ocean Networks Canada,\n", "depth, UBC EOAS, Strait of Georgia, latitude, longitude, ocean, SEVIP, observations, CTD,\n", "Oceans > Ocean Temperature > Water Temperature,\n", "reference salinity, salinity_sample_count, salinity_std_dev, sea_water_reference_salinity, \n", "sea_water_reference_salinity_sample_count, sea_water_reference_salinity_standard_deviation, \n", "sea_water_temperature, sea_water_temperature_sample_count, sea_water_temperature_standard_deviation, \n", "temperature, temperature_sample_count, temperature_std_dev, time''',\n", " 'fileNameRegex': '.*SEVIP_CTD_15m_\\d{8}\\.nc$'\n", " },\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A few convenience functions to reduce code repetition:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def print_tree(root):\n", " \"\"\"Display an XML tree fragment with indentation.\n", " \"\"\"\n", " print(etree.tostring(root, pretty_print=True).decode('ascii'))" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def find_att(root, att):\n", " \"\"\"Return the dataset attribute element named att\n", " or raise a ValueError exception if it cannot be found.\n", " \"\"\"\n", " e = root.find('.//att[@name=\"{}\"]'.format(att))\n", " if e is None:\n", " raise ValueError('{} attribute element not found'.format(att))\n", " return e" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* parse the output of `GenerateDatasetsXml.sh` into an XML tree data structure\n", "* set the `datasetID` dataset attribute value\n", "* change the `recursive` dataset attribute value to `false`\n", "* re-set the `fileNameRegex` dataset attribute value because it looses its `\\` characters during parsing(?)\n", "* add a `cf_role` attribute element with value `timeseries_id` to the `time` variable\n", "* update the metadata elements with the contents of the `datasets` dict defined above\n", "* set the colour map limit variables for the variables that they make sense for,\n", "and delete from the variables for which they are nonsensical" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": true }, "outputs": [], "source": [ "parser = etree.XMLParser(remove_blank_text=True)\n", "tree = etree.parse('/results/erddap/logs/GenerateDatasetsXml.out', parser)\n", "root = tree.getroot()\n", "\n", "datasetID = 'ubcONCSEVIPCTD15mV1'" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": true }, "outputs": [], "source": [ "root.attrib['datasetID'] = datasetID\n", "root.find('.//recursive').text = 'false'\n", "root.find('.//fileNameRegex').text = datasets[datasetID]['fileNameRegex']" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['time',\n", " 'salinity',\n", " 'temperature',\n", " 'temperature_std_dev',\n", " 'salinity_std_dev',\n", " 'salinity_sample_count',\n", " 'temperature_sample_count',\n", " 'latitude',\n", " 'longitude',\n", " 'depth']" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vars = [e.text for e in tree.findall('//sourceName')]\n", "vars" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": true }, "outputs": [], "source": [ "e = etree.Element('att', name='cf_role')\n", "e.text = 'timeseries_id'\n", "tree.find('//dataVariable[{}]/addAttributes'.format(vars.index('time')+1)).append(e)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": true }, "outputs": [], "source": [ "for att, info in metadata.items():\n", " e = etree.Element('att', name=att)\n", " e.text = info['text']\n", " try:\n", " root.find('.//att[@name=\"{}\"]'.format(info['after'])).addnext(e)\n", " except KeyError:\n", " find_att(root, att).text = info['text']" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": true }, "outputs": [], "source": [ "title = datasets[datasetID]['title']\n", "find_att(root, 'title').text = title\n", "find_att(root, 'summary').text = '{0}\\n\\n{1}'.format(title, datasets[datasetID]['summary'])\n", "find_att(root, 'keywords').text = datasets[datasetID]['keywords']" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Salinity colour map limits\n", "e = tree.find(\n", " '//dataVariable[{}]/addAttributes/att[@name=\"colorBarMinimum\"]'\n", " .format(vars.index('salinity')+1))\n", "e.text = '0.0'\n", "e = tree.find(\n", " '//dataVariable[{}]/addAttributes/att[@name=\"colorBarMaximum\"]'\n", " .format(vars.index('salinity')+1))\n", "e.text = '34.0'\n", "\n", "# Temperature colour map limits\n", "e = tree.find(\n", " '//dataVariable[{}]/addAttributes/att[@name=\"colorBarMinimum\"]'\n", " .format(vars.index('temperature')+1))\n", "e.text = '4.0'\n", "e = tree.find(\n", " '//dataVariable[{}]/addAttributes/att[@name=\"colorBarMaximum\"]'\n", " .format(vars.index('temperature')+1))\n", "e.text = '20.0'\n", "\n", "# Depth colour map limits\n", "e = tree.find(\n", " '//dataVariable[{}]/addAttributes/att[@name=\"colorBarMinimum\"]'\n", " .format(vars.index('depth')+1))\n", "e.text = '0.0'\n", "e = tree.find(\n", " '//dataVariable[{}]/addAttributes/att[@name=\"colorBarMaximum\"]'\n", " .format(vars.index('depth')+1))\n", "e.text = '450.0'" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Delete nonsensical colourBar* attributes\n", "no_cbar_vars = [\n", " 'temperature_sample_count', 'temperature_std_dev',\n", " 'salinity_sample_count', 'salinity_std_dev']\n", "for var in no_cbar_vars:\n", " for att in ('colorBarMinimum', 'colorBarMaximum'):\n", " e = tree.find(\n", " '//dataVariable[{0}]/addAttributes/att[@name=\"{1}\"]'\n", " .format(vars.index(var)+1, att))\n", " e.getparent().remove(e)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Inspect the resulting dataset XML fragment below and edit the dicts and\n", "code cell above until it is what is required for the dataset:" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " 10080\n", " 10000\n", " /results/observations/ONC/CTD/SEVIP/\n", " false\n", " .*SEVIP_CTD_15m_\\d{8}\\.nc$\n", " last\n", " \n", " \n", " \n", " \n", " time\n", " time\n", " false\n", " false\n", " \n", " \n", " \n", " TimeSeries\n", " depth, longitude, latitude\n", " COARDS, CF-1.6, ACDD-1.3\n", " Salish Sea MEOPAR Project Contributors\n", " sallen@eos.ubc.ca\n", " https://salishsea-meopar-docs.readthedocs.org/\n", " MEOPAR, ONC, Compute Canada\n", " over\n", " https://salishsea-meopar-tools.readthedocs.org/en/latest/results_server/\n", " UBC EOAS\n", " Earth, Ocean & Atmospheric Sciences, University of British Columbia\n", " 15min aggregation, ONC East Node VENUS Instrument Platform, Ocean Networks Canada,\n", "depth, UBC EOAS, Strait of Georgia, latitude, longitude, ocean, SEVIP, observations, CTD,\n", "Oceans > Ocean Temperature > Water Temperature,\n", "reference salinity, salinity_sample_count, salinity_std_dev, sea_water_reference_salinity, \n", "sea_water_reference_salinity_sample_count, sea_water_reference_salinity_standard_deviation, \n", "sea_water_temperature, sea_water_temperature_sample_count, sea_water_temperature_standard_deviation, \n", "temperature, temperature_sample_count, temperature_std_dev, time\n", " GCMD Science Keywords\n", " The Salish Sea MEOPAR observation datasets are copyright 2013 – present\n", "by the Salish Sea MEOPAR Project Contributors, The University of British Columbia, and Ocean Networks Canada.\n", "\n", "They are licensed under the Apache License, Version 2.0. http://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Raw instrument data on which this dataset is based were provided by Ocean Networks Canada.\n", " (local files)\n", " CF Standard Name Table v29\n", " ONC, Strait of Georgia, East Node, Salinity and Temperature, 15min, v1\n", "\n", "Temperature and salinity data from the Ocean Networks Canada (ONC)\n", "Strait of Georgia East Node VENUS Instrument Platform CTD.\n", "The data are resampled from the raw instrument data to 15 minute mean values.\n", "They are accompanied by standard deviations and sample counts for each of the 15 minute\n", "aggregation intervals.\n", "\n", "v1: reference salinity, reference salinity standard deviation, reference salinity sample counts, \n", "temperature, temperature standard deviation, temperature sample counts variables\n", " ONC, Strait of Georgia, East Node, Salinity and Temperature, 15min, v1\n", " Salish Sea MEOPAR NEMO Model\n", " \n", " \n", " time\n", " time\n", " long\n", " \n", " \n", " Time\n", " time\n", " timeseries_id\n", " \n", " \n", " \n", " salinity\n", " salinity\n", " double\n", " \n", " \n", " 34.0\n", " 0.0\n", " \n", " \n", " \n", " temperature\n", " temperature\n", " double\n", " \n", " \n", " 20.0\n", " 4.0\n", " \n", " \n", " \n", " temperature_std_dev\n", " temperature_std_dev\n", " double\n", " \n", " \n", " \n", " \n", " salinity_std_dev\n", " salinity_std_dev\n", " double\n", " \n", " \n", " \n", " \n", " salinity_sample_count\n", " salinity_sample_count\n", " long\n", " \n", " \n", " \n", " \n", " temperature_sample_count\n", " temperature_sample_count\n", " long\n", " \n", " \n", " \n", " \n", " latitude\n", " latitude\n", " double\n", " \n", " \n", " 90.0\n", " -90.0\n", " Latitude\n", " latitude\n", " degrees_north\n", " \n", " \n", " \n", " longitude\n", " longitude\n", " double\n", " \n", " \n", " 180.0\n", " -180.0\n", " Longitude\n", " longitude\n", " degrees_east\n", " \n", " \n", " \n", " depth\n", " depth\n", " long\n", " \n", " \n", " 450.0\n", " 0.0\n", " OceanDepth\n", " Depth\n", " depth\n", " m\n", " \n", " \n", "\n", "\n" ] } ], "source": [ "print_tree(root)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Store the XML fragment for the dataset:" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": true }, "outputs": [], "source": [ "with open('/results/erddap_datasets_xml/{}.xml'.format(datasetID), 'wb') as f:\n", " f.write(etree.tostring(root, pretty_print=True))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Edit `/opt/tomcat/content/erddap/datasets.xml` to include the XML fragment for the dataset that was stored by the abave cell.\n", "\n", "Create a flag file to signal the ERDDAP server process to load the dataset:\n", "```bash\n", "$ cd /results/erddap/flag/\n", "$ touch \n", "```\n", "\n", "Confirm that the dataset and its metadata were correctly added to ERDDAP by inspecting\n", "https://salishsea.eos.ubc.ca/erddap/tabledap/.\n", "If there is a problem,\n", "error messages can be found in `/results/erddap/logs/log.txt`." ] } ], "metadata": { "anaconda-cloud": {}, "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.6.2" }, "toc": { "nav_menu": { "height": "155px", "width": "252px" }, "number_sections": false, "sideBar": true, "skip_h1_title": false, "toc_cell": false, "toc_position": {}, "toc_section_display": "block", "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 1 }