From 539ae8db58d0841eb18e262303efef891695c39e Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Sun, 17 Jan 2016 10:31:55 -0300 Subject: [PATCH 01/11] Move example out of the source code folder --- notebooks/hudson_shelf_valley.ipynb | 483 ++++ .../hudson_shelf_valley.ipynb | 1999 ----------------- 2 files changed, 483 insertions(+), 1999 deletions(-) create mode 100644 notebooks/hudson_shelf_valley.ipynb delete mode 100644 pysgrid/notebook_examples/hudson_shelf_valley.ipynb diff --git a/notebooks/hudson_shelf_valley.ipynb b/notebooks/hudson_shelf_valley.ipynb new file mode 100644 index 0000000..e8eb220 --- /dev/null +++ b/notebooks/hudson_shelf_valley.ipynb @@ -0,0 +1,483 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `pysgrid` only works with raw netCDF4 (for now!)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from netCDF4 import Dataset\n", + "\n", + "url = ('http://geoport.whoi.edu/thredds/dodsC/clay/usgs/users/'\n", + " 'jcwarner/Projects/Sandy/triple_nest/00_dir_NYB05.ncml')\n", + "\n", + "#url = '00_dir_NYB05.nc'\n", + "\n", + "nc = Dataset(url)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The sgrid object" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pysgrid\n", + "\n", + "sgrid = pysgrid.load_sgrid(nc)\n", + "sgrid # We need a better __repr__ and __str__ !!!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The object knows about sgrid conventions" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "((u'lon_u', u'lat_u'),\n", + " u'xi_u: xi_psi eta_u: eta_psi (padding: both)',\n", + " [GridPadding(mesh_topology_var=u'grid', face_dim=u'eta_u', node_dim=u'eta_psi', padding=u'both')])" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sgrid.edge1_coordinates, sgrid.edge1_dimensions, sgrid.edge1_padding" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(1, 0)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "u_var = sgrid.u\n", + "u_var.center_axis, u_var.node_axis" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(0, 1)" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "v_var = sgrid.v\n", + "v_var.center_axis, v_var.node_axis" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Being generic is nice!" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(slice(None, None, None),\n", + " slice(None, None, None),\n", + " slice(1, -1, None),\n", + " slice(None, None, None))" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "u_var.center_slicing" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(slice(None, None, None),\n", + " slice(None, None, None),\n", + " slice(None, None, None),\n", + " slice(1, -1, None))" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "v_var.center_slicing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(Don't be scared, you do not need the sgrid object to get the variables. This just shows that there is a one-to-one mapping from the sgrid object to the netCDF4 object.)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "u_velocity = nc.variables[u_var.variable]\n", + "v_velocity = nc.variables[v_var.variable]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ... but we need a better way to deal with the slice of the slice!" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from datetime import datetime, timedelta\n", + "from netCDF4 import date2index\n", + "\n", + "t_var = nc.variables['ocean_time']\n", + "start = datetime(2012, 10, 30, 0, 0)\n", + "time_idx = date2index(start, t_var, select='nearest')\n", + "\n", + "v_idx = 0\n", + "\n", + "# Slice of the slice!\n", + "u_data = u_velocity[time_idx, v_idx, u_var.center_slicing[-2], u_var.center_slicing[-1]]\n", + "v_data = v_velocity[time_idx, v_idx, v_var.center_slicing[-2], v_var.center_slicing[-1]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Some thing for the angle information" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "angle = sgrid.angle\n", + "\n", + "angles = nc.variables[angle.variable][angle.center_slicing]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sgrid.topology_dimension" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Average velocity vectors to cell centers" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from pysgrid.processing_2d import avg_to_cell_center\n", + "\n", + "u_avg = avg_to_cell_center(u_data, u_var.center_axis)\n", + "v_avg = avg_to_cell_center(v_data, v_var.center_axis)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Rotate vectors by angles" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from pysgrid.processing_2d import rotate_vectors\n", + "\n", + "u_rot, v_rot = rotate_vectors(u_avg, v_avg, angles)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Speed" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/filipe/.virtualenvs/iris/lib/python2.7/site-packages/pysgrid/processing_2d.py:22: RuntimeWarning: invalid value encountered in sqrt\n", + " vector_sum = np.sqrt(x_arr**2 + y_arr**2)\n" + ] + } + ], + "source": [ + "from pysgrid.processing_2d import vector_sum\n", + "\n", + "uv_vector_sum = vector_sum(u_rot, v_rot)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Lon, lat of the center grid\n", + "### We'd like to streamline this in the future." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "grid_cell_centers = sgrid.centers # Array of lon, lat pairs.\n", + "\n", + "lon_var_name, lat_var_name = sgrid.face_coordinates\n", + "\n", + "# use the longitude and latitude variable names to get their respective sgrid variables\n", + "sg_lon = getattr(sgrid, lon_var_name)\n", + "sg_lat = getattr(sgrid, lat_var_name)\n", + "\n", + "lon_data = grid_cell_centers[..., 0][sg_lon.center_slicing]\n", + "lat_data = grid_cell_centers[..., 1][sg_lat.center_slicing]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plotting" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import cartopy.crs as ccrs\n", + "from cartopy.io import shapereader\n", + "from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER\n", + "\n", + "\n", + "def make_map(projection=ccrs.PlateCarree(), figsize=(9, 9)):\n", + " fig, ax = plt.subplots(figsize=figsize,\n", + " subplot_kw=dict(projection=projection))\n", + " gl = ax.gridlines(draw_labels=True)\n", + " gl.xlabels_top = gl.ylabels_right = False\n", + " gl.xformatter = LONGITUDE_FORMATTER\n", + " gl.yformatter = LATITUDE_FORMATTER\n", + " return fig, ax" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/filipe/.virtualenvs/iris/lib/python2.7/site-packages/matplotlib/artist.py:221: MatplotlibDeprecationWarning: This has been deprecated in mpl 1.5, please use the\n", + "axes property. A removal date has not been set.\n", + " warnings.warn(_get_axes_msg, mplDeprecation, stacklevel=1)\n" + ] + }, + { + "data": { + "image/png": "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\nGBkZ8e7du0K0Lu8QRRHTI3eR+/2H/JkPivf/Hgn4D61ihhiULU2Ely96pUtiVr86Zg2qY9GyAcUq\n2WZ6zStxNkqLlriIGNyXH+La5nMYlDCiWpf69PpjNL81+jGdOEg48y0+wRGcuhHEn8e8GbHcnbr2\n5rSrX5a29ctSrnQxzBQimhoCcoXI8nsvWXXvJTta2dG3YiazgwALfW3GVrNgbDULXsYmsdi0KqtW\nrcLMzAxXV1caN26slC9FGSnCIqEWtG/fnrFjx9K1a9c0+0eMGIGVlRXz588vJMskJNSTkydPMmzY\nMMaMGcOsWbPSfXA2btyYKVOm0Lt370KyUHXevXuHq6srDx48YNPVOyj8HoOmJprlq6BRvjKa5aug\naVcJDbvKfNU8uaGZqFAQ9difsOsPCbt+nxcnLmNQtjQ2/Tti3astuuam6e6TnWBJikvg8vqTuC8/\niEPnerT6sTslK1mlGTNF6JEu7fMxMXFJ/Hv/BSevBXL+Tggvw2KJiZdhqCmgo6lBteL67Ghlh02x\nHLbjz6eeLIWJt7c3Dg4OUkpIQn0RRZGSJUty//59rKys0uw3Nzfn/v37lClTphAtlJBQHxITE5k5\ncyZubm78/ffftGiRcRrk0qVL9OnTh3v37mFhkUkjMhVQKBTcu3eP06dP8+jRI6KiooiMjEzzb1RU\nFLGxsVhbW2Nvb0/dunUZPXo0dnZ22V7/4sWLOPcZgFZ1R7Rq1kejfBU07SqjYWae4fjM6lgUMhmv\nzl8ncOdxQk9fwby5Izb9O1K6QzM0dZNTNGE3vUjYuROA1jN6UNzmQ3Gqz9l7uA1fj02DinSYP4BS\nVa0zvM/4c6ey9SmdbQqRxN23iEqUY2mojYaSTdbS8ZmJlnHjxuHi4iIJlvzkc8uJZ0V++WpjY8Px\n48epXr166j4/Pz+cnJwIDg7O8/spg/RcP0+Ksq9+fn70798fCwsLtm7dirl5xh/iKfTv3x9dXV22\nbduWJ/f39PRkwoQJRERE0L59e+rWrYuxsTHFihVL96+enh5BQUH4+vpy4cIFtm7dStu2bVm2bBnW\n1hl/+Bv8uJz4TcsxmLES7aZZt3f/mFa1Qnh98RYlnRwzPJ4UGU3IwfME7TpBhJcvZbp/hSIhkdAz\nnrSe3IFQ7yBiw6IZuncaWjraBFzzYXOXxQza9T2VWmc9NVwVwQLp61hyintIJM6H/8v0eGxsLMeO\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sub = 10\n", + "scale = 0.06\n", + "\n", + "fig, ax = make_map()\n", + "\n", + "kw = dict(scale=1.0/scale, pivot='middle', width=0.003, color='black')\n", + "q = plt.quiver(lon_data[::sub, ::sub], lat_data[::sub, ::sub],\n", + " u_rot[::sub, ::sub], v_rot[::sub, ::sub], zorder=2, **kw)\n", + "\n", + "cs = plt.pcolormesh(lon_data[::sub, ::sub],\n", + " lat_data[::sub, ::sub],\n", + " uv_vector_sum[::sub, ::sub], zorder=1, cmap=plt.cm.rainbow)\n", + "\n", + "ax.coastlines('10m');" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "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.8" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/pysgrid/notebook_examples/hudson_shelf_valley.ipynb b/pysgrid/notebook_examples/hudson_shelf_valley.ipynb deleted file mode 100644 index 5f28037..0000000 --- a/pysgrid/notebook_examples/hudson_shelf_valley.ipynb +++ /dev/null @@ -1,1999 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### `pysgrid` only works with raw netCDF4 (for now!)" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "from netCDF4 import Dataset\n", - "\n", - "url = ('http://geoport.whoi.edu/thredds/dodsC/clay/usgs/users/'\n", - " 'jcwarner/Projects/Sandy/triple_nest/00_dir_NYB05.ncml')\n", - "\n", - "nc = Dataset(url)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The sgrid object" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import pysgrid\n", - "\n", - "sgrid = pysgrid.from_nc_dataset(nc)\n", - "sgrid # We need a better __repr__ and __str__ !!!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The object knows about sgrid conventions" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "((u'lon_u', u'lat_u'),\n", - " u'xi_u: xi_psi eta_u: eta_psi (padding: both)',\n", - " [GridPadding(mesh_topology_var=u'grid', face_dim=u'eta_u', node_dim=u'eta_psi', padding=u'both')])" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sgrid.edge1_coordinates, sgrid.edge1_dimensions, sgrid.edge1_padding" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(1, 0)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "u_var = sgrid.u\n", - "u_var.center_axis, u_var.node_axis" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(0, 1)" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "v_var = sgrid.v\n", - "v_var.center_axis, v_var.node_axis" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Being generic is nice!" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(slice(None, None, None),\n", - " slice(None, None, None),\n", - " slice(1, -1, None),\n", - " slice(None, None, None))" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "u_var.center_slicing" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(slice(None, None, None),\n", - " slice(None, None, None),\n", - " slice(None, None, None),\n", - " slice(1, -1, None))" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "v_var.center_slicing" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "(Don't be scared, you do not need the sgrid object to get the variables. This just shows that there is a one-to-one mapping from the sgrid object to the netCDF4 object.)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "u_velocity = nc.variables[u_var.variable]\n", - "v_velocity = nc.variables[v_var.variable]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### ... but we need a better way to deal with the slice of the slice!" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "from datetime import datetime, timedelta\n", - "from netCDF4 import date2index\n", - "\n", - "t_var = nc.variables['ocean_time']\n", - "start = datetime(2012, 10, 30, 0, 0)\n", - "time_idx = date2index(start, t_var, select='nearest')\n", - "\n", - "v_idx = 0\n", - "\n", - "# Slice of the slice!\n", - "u_data = u_velocity[time_idx, v_idx, u_var.center_slicing[-2], u_var.center_slicing[-1]]\n", - "v_data = v_velocity[time_idx, v_idx, v_var.center_slicing[-2], v_var.center_slicing[-1]]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Some thing for the angle information" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "angle = sgrid.angle\n", - "\n", - "angles = nc.variables[angle.variable][angle.center_slicing]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Average velocity vectors to cell centers" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "from pysgrid.processing_2d import avg_to_cell_center\n", - "\n", - "u_avg = avg_to_cell_center(u_data, u_var.center_axis)\n", - "v_avg = avg_to_cell_center(v_data, v_var.center_axis)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Rotate vectors by angles" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "from pysgrid.processing_2d import rotate_vectors\n", - "\n", - "u_rot, v_rot = rotate_vectors(u_avg, v_avg, angles)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Speed" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "d:\\virtualenv\\ipynb_env\\src\\pysgrid\\pysgrid\\processing_2d.py:22: RuntimeWarning: invalid value encountered in sqrt\n", - " vector_sum = np.sqrt(x_arr**2 + y_arr**2)\n" - ] - } - ], - "source": [ - "from pysgrid.processing_2d import vector_sum\n", - "\n", - "uv_vector_sum = vector_sum(u_rot, v_rot)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Lon, lat of the center grid\n", - "### We'd like to streamline this in the future." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "grid_cell_centers = sgrid.centers # Array of lon, lat pairs.\n", - "\n", - "lon_var_name, lat_var_name = sgrid.face_coordinates\n", - "\n", - "# use the longitude and latitude variable names to get their respective sgrid variables\n", - "sg_lon = getattr(sgrid, lon_var_name)\n", - "sg_lat = getattr(sgrid, lat_var_name)\n", - "\n", - "lon_data = grid_cell_centers[..., 0][sg_lon.center_slicing]\n", - "lat_data = grid_cell_centers[..., 1][sg_lat.center_slicing]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Plotting" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "import cartopy.crs as ccrs\n", - "from cartopy.io import shapereader\n", - "from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER\n", - "\n", - "\n", - "def make_map(projection=ccrs.PlateCarree(), figsize=(9, 9)):\n", - " fig, ax = plt.subplots(figsize=figsize,\n", - " subplot_kw=dict(projection=projection))\n", - " gl = ax.gridlines(draw_labels=True)\n", - " gl.xlabels_top = gl.ylabels_right = False\n", - " gl.xformatter = LONGITUDE_FORMATTER\n", - " gl.yformatter = LATITUDE_FORMATTER\n", - " return fig, ax" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "D:\\virtualenv\\ipynb_env\\lib\\site-packages\\cartopy\\io\\__init__.py:264: DownloadWarning: Downloading: http://naciscdn.org/naturalearth/10m/physical/ne_10m_coastline.zip\n", - " warnings.warn('Downloading: {}'.format(url), DownloadWarning)\n" - ] - }, - { - "data": { - "image/png": [ - "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\n", - "69cPW1tb5fn4+HjKli3Lq1evKFasWJZzvH37NocPH8bNzY2nT59Svnx5DAwMlC9fX18WLVqUaa5K\n", - "bpByVgoIKSZcMERGRjJ27Fi6dOnCypUr1d5DIy9Iz/bT5FO39cSJE9y9exf49G19l3dt7ZvglalQ\n", - "yQ/yNc9lfDPOdK+FrpbA+DplsClZnO8uPiYqWZZtN1WfqyiKnD17ls6dO9OxY0ciIyP5+uuv6d27\n", - "Nz4+PgDcvHmTevXqZSlUIE1A1K9fn4ULF3L79m1u377Nvn372LBhAwsWLGDSpEns3r07z0IlJ6Sc\n", - "FQmNQRRFtm3bxpw5cxg0aBD+/v40adKEsLAwatSoUdTTk5DQWBITE5k6dSrHjh1DFEW8vb2LekqF\n", - "jioC5XKiZb6Eg9TmvVyU9Xee8329cgiCwKGOVZl5LZTKLv/RxtyY/lVL0t+6FPrpYaHxzVTyrqSm\n", - "puLq6srKlStJTExk2rRpuLm5oa+vz8qVK9m8eTNdu3alSZMmlC1blhYtWuTKBHNz80xX8hQ0UhhI\n", - "QiNISkpiwoQJeHl5sXv3burVqwdAmzZtcHR0pG3btkU8QwkJzUQul9OnTx+0tbVxcnJi4MCBjB8/\n", - "nh49ehT11AocdTwoRZG7knJmLAB6h3yU55LlCky2e/NbCwsm1S2L1psE1uhkGccev2ZXwEuexqfi\n", - "9JUVTcu+qbuSjViJjY1l69at/P7771SpUoVp06bRpUuXTGuaJCYmsnXrVlasWMH69es1Zl+i7MJA\n", - "kmdFosiRy+V0796dUqVK4enpiaGhofJa6dKlefr0aRHOTkJCs5kxYwYxMTGcPHkSPT09rKysCAkJ\n", - "KeppFSglPcNpWz+syO6fmprKw4cPCQ0NJTQ0lKdPn2JtbU3Hjh0pWbKksl26SMmMYtpaXO1dm3EX\n", - "H7HAK4yjnarTqkIJTIrp8E2N0gypbsaugJf0PRVECV0tBlQtxYCB9bDZ55thnLCwMNatW8fWrVtp\n", - "3749Bw8epGnTptnOv3jx4kyePJnJkyfn7QdRiEg5K3ngc40J5zfLly8nNTWVPXv2ZBAqL1684Pz5\n", - "87Rq1arA7p0V0rP9NPnUbPXw8MDV1ZVDhw6hp6cHgIWFBU+ePPnkbIU0kVLSMxwAeWISUT7+RPn4\n", - "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\n", - "AABJRU5ErkJggg==\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sub = 10\n", - "scale = 0.06\n", - "\n", - "fig, ax = make_map()\n", - "\n", - "kw = dict(scale=1.0/scale, pivot='middle', width=0.003, color='black')\n", - "q = plt.quiver(lon_data[::sub, ::sub], lat_data[::sub, ::sub],\n", - " u_rot[::sub, ::sub], v_rot[::sub, ::sub], zorder=2, **kw)\n", - "\n", - "cs = plt.pcolormesh(lon_data[::sub, ::sub],\n", - " lat_data[::sub, ::sub],\n", - " uv_vector_sum[::sub, ::sub], zorder=1, cmap=plt.cm.rainbow)\n", - "\n", - "ax.coastlines('10m');" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "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.9" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} From 2928a8dab45b414bf5d449c231c461edc6275834 Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Sun, 17 Jan 2016 11:17:09 -0300 Subject: [PATCH 02/11] Renamed. --- requirements-test.txt => requirements-dev.txt | 1 + 1 file changed, 1 insertion(+) rename requirements-test.txt => requirements-dev.txt (58%) diff --git a/requirements-test.txt b/requirements-dev.txt similarity index 58% rename from requirements-test.txt rename to requirements-dev.txt index 18bcddc..aada783 100644 --- a/requirements-test.txt +++ b/requirements-dev.txt @@ -1,2 +1,3 @@ mock nose +flake8 From 088189e3c37c2e89e3880b63f81550d5dd639c95 Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Sun, 17 Jan 2016 11:17:36 -0300 Subject: [PATCH 03/11] Add flaky8 tests. --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c93e4b7..e30a7d6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ before_install: - conda update --yes --all - travis_retry conda create --yes -n test python=$PYTHON --file requirements.txt - source activate test - - travis_retry conda install --yes nose + - travis_retry conda --yes --file requirements-dev.txt - if [[ "$PYTHON" != "3.5" ]]; then travis_retry conda install --yes mock ; fi @@ -23,3 +23,4 @@ before_install: script: - nosetests + - find . -type f -name "*.py" | xargs flake8 --max-line-length=100 From c669059da4e4236412c3ec60a159c09053416291 Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Sun, 17 Jan 2016 11:18:07 -0300 Subject: [PATCH 04/11] Updated notebook example with new syntax. --- notebooks/hudson_shelf_valley.ipynb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/notebooks/hudson_shelf_valley.ipynb b/notebooks/hudson_shelf_valley.ipynb index e8eb220..dc16e04 100644 --- a/notebooks/hudson_shelf_valley.ipynb +++ b/notebooks/hudson_shelf_valley.ipynb @@ -42,7 +42,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 2, @@ -340,7 +340,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/filipe/.virtualenvs/iris/lib/python2.7/site-packages/pysgrid/processing_2d.py:22: RuntimeWarning: invalid value encountered in sqrt\n", + "/home/filipe/.virtualenvs/iris/lib/python2.7/site-packages/pysgrid/processing_2d.py:25: RuntimeWarning: invalid value encountered in sqrt\n", " vector_sum = np.sqrt(x_arr**2 + y_arr**2)\n" ] } @@ -434,7 +434,7 @@ "data": { "image/png": "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\nGBkZ8e7du0K0Lu8QRRHTI3eR+/2H/JkPivf/Hgn4D61ihhiULU2Ely96pUtiVr86Zg2qY9GyAcUq\n2WZ6zStxNkqLlriIGNyXH+La5nMYlDCiWpf69PpjNL81+jGdOEg48y0+wRGcuhHEn8e8GbHcnbr2\n5rSrX5a29ctSrnQxzBQimhoCcoXI8nsvWXXvJTta2dG3YiazgwALfW3GVrNgbDULXsYmsdi0KqtW\nrcLMzAxXV1caN26slC9FGSnCIqEWtG/fnrFjx9K1a9c0+0eMGIGVlRXz588vJMskJNSTkydPMmzY\nMMaMGcOsWbPSfXA2btyYKVOm0Lt370KyUHXevXuHq6srDx48YNPVOyj8HoOmJprlq6BRvjKa5aug\naVcJDbvKfNU8uaGZqFAQ9difsOsPCbt+nxcnLmNQtjQ2/Tti3astuuam6e6TnWBJikvg8vqTuC8/\niEPnerT6sTslK1mlGTNF6JEu7fMxMXFJ/Hv/BSevBXL+Tggvw2KJiZdhqCmgo6lBteL67Ghlh02x\nHLbjz6eeLIWJt7c3Dg4OUkpIQn0RRZGSJUty//59rKys0uw3Nzfn/v37lClTphAtlJBQHxITE5k5\ncyZubm78/ffftGiRcRrk0qVL9OnTh3v37mFhkUkjMhVQKBTcu3eP06dP8+jRI6KiooiMjEzzb1RU\nFLGxsVhbW2Nvb0/dunUZPXo0dnZ22V7/4sWLOPcZgFZ1R7Rq1kejfBU07SqjYWae4fjM6lgUMhmv\nzl8ncOdxQk9fwby5Izb9O1K6QzM0dZNTNGE3vUjYuROA1jN6UNzmQ3Gqz9l7uA1fj02DinSYP4BS\nVa0zvM/4c6ey9SmdbQqRxN23iEqUY2mojYaSTdbS8ZmJlnHjxuHi4iIJlvzkc8uJZ0V++WpjY8Px\n48epXr166j4/Pz+cnJwIDg7O8/spg/RcP0+Ksq9+fn70798fCwsLtm7dirl5xh/iKfTv3x9dXV22\nbduWJ/f39PRkwoQJRERE0L59e+rWrYuxsTHFihVL96+enh5BQUH4+vpy4cIFtm7dStu2bVm2bBnW\n1hl/+Bv8uJz4TcsxmLES7aZZt3f/mFa1Qnh98RYlnRwzPJ4UGU3IwfME7TpBhJcvZbp/hSIhkdAz\nnrSe3IFQ7yBiw6IZuncaWjraBFzzYXOXxQza9T2VWmc9NVwVwQLp61hyintIJM6H/8v0eGxsLMeO\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, From 3faba5c196ea892c41d2240fc39b53747ce2ea01 Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Sun, 17 Jan 2016 11:18:26 -0300 Subject: [PATCH 05/11] Bumb version. --- pysgrid/__init__.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pysgrid/__init__.py b/pysgrid/__init__.py index d005c2d..ad01f92 100644 --- a/pysgrid/__init__.py +++ b/pysgrid/__init__.py @@ -1,3 +1,8 @@ -from pysgrid.sgrid import SGrid2D, SGrid3D, from_ncfile, from_nc_dataset +from __future__ import (absolute_import, division, print_function) -__version__ = "0.1.1" +from .sgrid import SGrid, load_sgrid + +__version__ = '0.2.0' + +__all__ = ['SGrid', + 'load_sgrid'] From a4c8932fe4adaa2a2cb897a325e640219cf08d9a Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Sun, 17 Jan 2016 11:18:35 -0300 Subject: [PATCH 06/11] pep8 --- setup.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/setup.py b/setup.py index 9ab08ad..b47b000 100644 --- a/setup.py +++ b/setup.py @@ -1,8 +1,10 @@ -from __future__ import with_statement +from __future__ import (absolute_import, division, print_function, + with_statement) import os from setuptools import setup, find_packages + def extract_version(module='pysgrid'): version = None fdir = os.path.dirname(__file__) @@ -25,18 +27,18 @@ def readme(): return f.read() setup( - name = 'pysgrid', - version = extract_version(), - description = 'Python package for working with staggered gridded data', - author = 'Andrew Yan', - author_email = 'ayan@usgs.gov', - url = 'https://github.com/sgrid/pysgrid', - packages = find_packages(), - license = 'BSD', - long_description = readme(), - install_requires = reqs, - tests_require = ['mock', 'nose'], - classifiers = [ + name='pysgrid', + version=extract_version(), + description='Python package for working with staggered gridded data', + author='Andrew Yan', + author_email='ayan@usgs.gov', + url='https://github.com/sgrid/pysgrid', + packages=find_packages(), + license='BSD', + long_description=readme(), + install_requires=reqs, + tests_require=['mock', 'nose'], + classifiers=[ 'Development Status :: 3 - Alpha', 'Intended Audience :: Developers', 'Intended Audience :: Science/Research', @@ -45,5 +47,5 @@ def readme(): 'Programming Language :: Python', 'Topic :: Scientific/Engineering', ], - include_package_data = True, + include_package_data=True, ) From 19bf25dc1c98ae1a860d1e84cdf8b4cca061d507 Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Sun, 17 Jan 2016 11:18:58 -0300 Subject: [PATCH 07/11] Remove custom exceptions. --- pysgrid/custom_exceptions.py | 41 ------------------------------------ 1 file changed, 41 deletions(-) delete mode 100644 pysgrid/custom_exceptions.py diff --git a/pysgrid/custom_exceptions.py b/pysgrid/custom_exceptions.py deleted file mode 100644 index 450e450..0000000 --- a/pysgrid/custom_exceptions.py +++ /dev/null @@ -1,41 +0,0 @@ -''' -Created on Mar 23, 2015 - -@author: ayan -''' -import functools -import warnings - - - -class CannotFindPaddingError(Exception): - - base_message = 'The netCDF file appears to have conform to SGRID conventions, but padding values cannot be found.' - - def __str__(self): - return self.base_message - - -class SGridNonCompliantError(Exception): - - base_message = 'This netCDF object derived from the dataset at {0} does not appear to be SGRID compliant.' - - def __init__(self, dataset_path): - self.dataset_path = dataset_path - - def __str__(self): - error_message = self.base_message.format(self.dataset_path) - return error_message - - - -def deprecated(deprecated_function): - @functools.wraps(deprecated_function) - def new_func(*args, **kwargs): - warnings.warn_explicit('Call to deprecated function: {0}'.format(deprecated_function.__name__), - category=DeprecationWarning, - filename=deprecated_function.__code__.co_filename, - lineno=deprecated_function.__code__.co_firstlineno + 1 - ) - return deprecated_function(*args, **kwargs) - return new_func From e6c3f9d542dc3c925a13c1e4968695f6238a5b9d Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Sun, 17 Jan 2016 11:21:50 -0300 Subject: [PATCH 08/11] Fix #71 and #64. --- pysgrid/lookup.py | 5 +- pysgrid/processing_2d.py | 3 + pysgrid/read_netcdf.py | 117 +++--- pysgrid/sgrid.py | 530 +++++++-------------------- pysgrid/tests/test_processing_2d.py | 25 +- pysgrid/tests/test_read_netcdf.py | 11 +- pysgrid/tests/test_sgrid.py | 149 ++------ pysgrid/tests/test_utils.py | 66 ++-- pysgrid/tests/test_variables.py | 60 ++- pysgrid/tests/write_nc_test_files.py | 111 +++--- pysgrid/utils.py | 57 +-- pysgrid/variables.py | 3 + 12 files changed, 428 insertions(+), 709 deletions(-) diff --git a/pysgrid/lookup.py b/pysgrid/lookup.py index e0a4003..32dcc90 100644 --- a/pysgrid/lookup.py +++ b/pysgrid/lookup.py @@ -4,6 +4,8 @@ @author: ayan ''' +from __future__ import (absolute_import, division, print_function) + LAT_GRID_CELL_CENTER_LONG_NAME = ['latitude of RHO-points', # ROMS 'X-coordinate of grid points', # deltares @@ -21,9 +23,6 @@ 'grid cell corners, longitude-coordinate', # deltares ] - X_COORDINATES = ['x', 'lon', 'longitude'] - Y_COORDINATES = ['y', 'lat', 'latitude'] - diff --git a/pysgrid/processing_2d.py b/pysgrid/processing_2d.py index 084f611..de721af 100644 --- a/pysgrid/processing_2d.py +++ b/pysgrid/processing_2d.py @@ -3,6 +3,9 @@ @author: ayan ''' + +from __future__ import (absolute_import, division, print_function) + import numpy as np diff --git a/pysgrid/read_netcdf.py b/pysgrid/read_netcdf.py index 0134a97..b587c1f 100644 --- a/pysgrid/read_netcdf.py +++ b/pysgrid/read_netcdf.py @@ -3,13 +3,46 @@ @author: ayan ''' + +from __future__ import (absolute_import, division, print_function) + import re -from .custom_exceptions import CannotFindPaddingError, SGridNonCompliantError from .lookup import X_COORDINATES, Y_COORDINATES from .utils import GridPadding +def find_grid_topology_var(nc): + """ + Get the variable from a netCDF dataset + that have a `cf_role `attribute of 'grid_topology' and + `topology_dimension` of 2. + + :params nc: netCDF dataset + :type nc: netCDF4.Dataset + :return: variable name that contain grid topologies + :rtype: string + + """ + grid_topology = nc.get_variables_by_attributes(cf_role='grid_topology') + + if not grid_topology: + raise ValueError('Could not find the `grid_topology` variable.') + if len(grid_topology) > 1: + msg = 'Expected 1 `grid_topology` variable. Got {0}'.format + raise ValueError(msg(len(grid_topology))) + + grid_topology = grid_topology[0] + topology_dimension = grid_topology.topology_dimension if hasattr(grid_topology, 'topology_dimension') else None # noqa + + if topology_dimension != 2: + msg = ('Only 2 dimensions topology are supported.' + 'Got {0}'.format) + raise ValueError(msg(topology_dimension)) + + return grid_topology.name + + def parse_padding(padding_str, mesh_topology_var): """ Use regex expressions to break apart an @@ -24,9 +57,10 @@ def parse_padding(padding_str, mesh_topology_var): Padding information is returned as a list of these named tuples. - :param str padding_str: string containing padding types from a netCDF attribute - :return: named tuples with padding information - :rtype: list + :param str padding_str: string containing padding types from + a netCDF attribute. + :return: named tuples with padding information. + :rtype: list. """ p = re.compile('([a-zA-Z0-9_]+:) ([a-zA-Z0-9_]+) (\(padding: [a-zA-Z]+\))') @@ -36,8 +70,11 @@ def parse_padding(padding_str, mesh_topology_var): raw_dim, raw_sub_dim, raw_padding_var = padding_match dim = raw_dim.split(':')[0] sub_dim = raw_sub_dim - cleaned_padding_var = re.sub('[\(\)]', '', raw_padding_var) # remove parentheses - padding_type = cleaned_padding_var.split(':')[1].strip() # get the padding value and remove spaces + # Remove parentheses. (That is why regular expressions are bad! You + # need a commend to explain what is going on.) + cleaned_padding_var = re.sub('[\(\)]', '', raw_padding_var) + # Get the padding value and remove spaces. + padding_type = cleaned_padding_var.split(':')[1].strip() grid_padding = GridPadding(mesh_topology_var=mesh_topology_var, face_dim=dim, node_dim=sub_dim, @@ -48,7 +85,9 @@ def parse_padding(padding_str, mesh_topology_var): final_padding_types = padding_type_list else: final_padding_types = None - raise CannotFindPaddingError + msg = ('The netCDF file appears to have conform to SGRID conventions, ' + 'but padding values cannot be found.') + raise ValueError(msg) return final_padding_types @@ -116,13 +155,13 @@ def find_node_coordinates(self, node_dimensions): standard_name_lower = '' if nc_var_dim_set == node_dim_set: if (any(x in name_lower for x in X_COORDINATES) or - any(x in standard_name_lower for x in X_COORDINATES)): + any(x in standard_name_lower for x in X_COORDINATES)): x_node_coordinate = nc_var elif (any(y in name_lower for y in Y_COORDINATES) or any(y in standard_name_lower for y in Y_COORDINATES)): y_node_coordinate = nc_var if x_node_coordinate is not None and y_node_coordinate is not None: - # exit the loop once both x and y coordinates are found + # Exit the loop once both x and y coordinates are found. break if x_node_coordinate is not None and y_node_coordinate is not None: return x_node_coordinate, y_node_coordinate @@ -135,9 +174,9 @@ def find_variables_by_attr(self, **kwargs): keys = kwargs.keys() for nc_var in nc_vars.keys(): nc_var_obj = nc_vars[nc_var] - nc_var_attrs = dir(nc_var_obj) # all object attributes - # check to see if the requested attributes are in the variable object - # if not, don't bother with it + nc_var_attrs = dir(nc_var_obj) # All object attributes. + # Check to see if the requested attributes are in the + # variable object if not, don't bother with it. if set(keys).issubset(nc_var_attrs): attr_tracking = {} for key in keys: @@ -147,34 +186,6 @@ def find_variables_by_attr(self, **kwargs): matches.append(nc_var) return matches - def find_grid_topology_var(self): - """ - Get the variables from a netCDF dataset - that have a cf_role attribute of 'grid_topology'. - - :params nc: netCDF dataset - :type nc: netCDF4.Dataset - :return: list of variables that contain grid topologies - :rtype: list - - """ - nc_vars = self.ncd.variables - grid_topology_var = None - for nc_var in nc_vars.keys(): - nc_var_obj = nc_vars[nc_var] - try: - # if either of these are not found anywhere the the dataset, the dataset is not compliant - cf_role = nc_var_obj.cf_role - topology_dim = nc_var_obj.topology_dimension - except AttributeError: - continue - else: - if cf_role.strip() == 'grid_topology' and (topology_dim == 2 or topology_dim == 3): - grid_topology_var = nc_var - # exit the loop once the topology variable is found - break - return grid_topology_var - def find_coordinates_by_location(self, location_str, topology_dim): """ Find a grid coordinates variables with a location attribute equal @@ -198,15 +209,15 @@ def find_coordinates_by_location(self, location_str, topology_dim): try: location_var_coordinates = location_var.coordinates except AttributeError: - # run through this if a location attributed is defined, but not coordinates + # Run through this if a location attributed is defined, + # but not coordinates. potential_coordinates = [] for nc_var in nc_vars.keys(): nc_var_obj = nc_vars[nc_var] nc_var_dim_set = set(nc_var_obj.dimensions) if (nc_var_dim_set.issubset(location_var_dims) and - nc_var != var_with_location and - len(nc_var_dim_set) > 0 - ): + nc_var != var_with_location and + len(nc_var_dim_set) > 0): potential_coordinates.append(nc_var_obj) for potential_coordinate in potential_coordinates: pc_name = potential_coordinate.name @@ -215,10 +226,10 @@ def find_coordinates_by_location(self, location_str, topology_dim): except AttributeError: pc_std_name = '' if (any(x in pc_name.lower() for x in X_COORDINATES) or - any(x in pc_std_name.lower() for x in X_COORDINATES)): + any(x in pc_std_name.lower() for x in X_COORDINATES)): x_coordinate = pc_name elif (any(y in pc_name.lower() for y in Y_COORDINATES) or - any(y in pc_std_name.lower() for y in Y_COORDINATES)): + any(y in pc_std_name.lower() for y in Y_COORDINATES)): # noqa y_coordinate = pc_name else: z_coordinate = pc_name # this might not always work... @@ -236,7 +247,7 @@ def find_coordinates_by_location(self, location_str, topology_dim): var_coord_desc = '' if ('lon' in var_coord.name.lower() or 'longitude' in var_coord_standard_name.lower() or - 'longitude' in var_coord_desc.lower()): + 'longitude' in var_coord_desc.lower()): x_coordinate = lvc elif ('lat' in var_coord.name.lower() or 'latitude' in var_coord_standard_name.lower() or @@ -264,9 +275,9 @@ def sgrid_compliant_file(self): :rtype: bool """ - grid_vars = self.find_grid_topology_var() - if grid_vars is not None: - sgrid_compliant = True - else: - raise SGridNonCompliantError(self._filepath) - return sgrid_compliant + try: + find_grid_topology_var(self.ncd) + except ValueError as e: + raise e + + return True diff --git a/pysgrid/sgrid.py b/pysgrid/sgrid.py index 102239a..0ec2036 100644 --- a/pysgrid/sgrid.py +++ b/pysgrid/sgrid.py @@ -3,26 +3,25 @@ @author: ayan ''' -import abc + +from __future__ import (absolute_import, division, print_function) from netCDF4 import Dataset -from .custom_exceptions import SGridNonCompliantError -from .read_netcdf import NetCDFDataset, parse_padding +from .read_netcdf import NetCDFDataset, parse_padding, find_grid_topology_var from .utils import calculate_angle_from_true_east, pair_arrays from .variables import SGridVariable -class SGridND(object): - - __metaclass__ = abc.ABCMeta +class SGrid(object): padding_slices = {'both': (1, -1), 'none': (None, None), 'low': (1, None), 'high': (None, 1) } - topology_dimension = None + + topology_dimension = 2 def __init__(self, nodes=None, @@ -41,8 +40,16 @@ def __init__(self, edge2_coordinates=None, angles=None, edge1_dimensions=None, - edge2_dimensions=None): - # general attributes + edge2_dimensions=None, + faces=None, + face_padding=None, + face_coordinates=None, + face_dimensions=None, + vertical_padding=None, + vertical_dimensions=None, + *args, + **kwargs): + self.nodes = nodes self.centers = centers self.edges = edges @@ -60,16 +67,96 @@ def __init__(self, self.angles = angles self.edge1_dimensions = edge1_dimensions self.edge2_dimensions = edge2_dimensions + self.faces = faces + self.face_padding = face_padding + self.face_coordinates = face_coordinates + self.face_dimensions = face_dimensions + self.vertical_padding = vertical_padding + self.vertical_dimensions = vertical_dimensions @classmethod - def from_ncfile(cls, nc_file_path, topology_variable=None): - with Dataset(nc_file_path) as nc_dataset: - sgrid = cls.from_nc_dataset(nc_dataset, topology_variable) + def load_sgrid(cls, nc): + if isinstance(nc, Dataset): + pass + else: + nc = Dataset(nc, 'r') + topology_var = find_grid_topology_var(nc) + sa = SGridAttributes(nc, cls.topology_dimension, topology_var) + dimensions = sa.get_dimensions() + node_dimensions, node_coordinates = sa.get_node_coordinates() + grid_topology_var = sa.get_topology_var() + edge1_dimensions, edge1_padding = sa.get_attr_dimension('edge1_dimensions') # noqa + edge2_dimensions, edge2_padding = sa.get_attr_dimension('edge2_dimensions') # noqa + edge1_coordinates = sa.get_attr_coordinates('edge1_coordinates') + edge2_coordinates = sa.get_attr_coordinates('edge2_coordinates') + angles = sa.get_angles() + vertical_dimensions, vertical_padding = sa.get_attr_dimension('vertical_dimensions') # noqa + centers = sa.get_cell_center_lat_lon() + face_dimensions, face_padding = sa.get_attr_dimension('face_dimensions') # noqa + face_coordinates = sa.get_attr_coordinates('face_coordinates') + nodes = sa.get_cell_node_lat_lon() + sgrid = cls(angles=angles, + centers=centers, + dimensions=dimensions, + edge1_coordinates=edge1_coordinates, + edge1_dimensions=edge1_dimensions, + edge1_padding=edge1_padding, + edge2_coordinates=edge2_coordinates, + edge2_dimensions=edge2_dimensions, + edge2_padding=edge2_padding, + edges=None, + face_coordinates=face_coordinates, + face_dimensions=face_dimensions, + face_padding=face_padding, + faces=None, + grid_topology_var=grid_topology_var, + grid_variables=None, + node_coordinates=node_coordinates, + node_dimensions=node_dimensions, + node_padding=None, + nodes=nodes, + variables=None, + vertical_dimensions=vertical_dimensions, + vertical_padding=vertical_padding + ) + sa.get_variable_attributes(sgrid) return sgrid + def get_all_face_padding(self): + if self.face_padding is not None: + all_face_padding = self.face_padding + else: + all_face_padding = [] + return all_face_padding + + def get_all_edge_padding(self): + all_edge_padding = [] + if self.edge1_padding is not None: + all_edge_padding += self.edge1_padding + if self.edge2_padding is not None: + all_edge_padding += self.edge2_padding + return all_edge_padding + + def all_padding(self): + all_padding = self.get_all_face_padding() + self.get_all_edge_padding() + if self.vertical_padding is not None: + all_padding += self.vertical_padding + return all_padding + + def save_as_netcdf(self, filepath): + with Dataset(filepath, 'w') as nclocal: + grid_vars = self._save_common_components(nclocal) + # Add attributes to the grid_topology variable. + grid_vars.face_dimensions = self.face_dimensions + if self.vertical_dimensions is not None: + grid_vars.vertical_dimensions = self.vertical_dimensions + if self.face_coordinates is not None: + grid_vars.face_coordinates = ' '.join(self.face_coordinates) + @property def non_grid_variables(self): - non_grid_variables = [variable for variable in self.variables if variable not in self.grid_variables] + non_grid_variables = [variable for variable in self.variables if + variable not in self.grid_variables] return non_grid_variables def _save_common_components(self, nc_file): @@ -110,7 +197,8 @@ def _save_common_components(self, nc_file): grid_node_lon[:] = self.nodes[..., 0] grid_node_lat[:] = self.nodes[..., 1] grid_var_obj = getattr(self, grid_var) - grid_vars = nc_file.createVariable(grid_var_obj.variable, grid_var_obj.dtype) + grid_vars = nc_file.createVariable(grid_var_obj.variable, + grid_var_obj.dtype) grid_vars.cf_role = 'grid_topology' grid_vars.topology_dimension = self.topology_dimension grid_vars.node_dimensions = self.node_dimensions @@ -135,10 +223,11 @@ def _save_common_components(self, nc_file): for dataset_variable in self.variables: dataset_var_obj = getattr(self, dataset_variable) try: - dataset_grid_var = nc_file.createVariable(dataset_var_obj.variable, - dataset_var_obj.dtype, - dataset_var_obj.dimensions - ) + dataset_grid_var = nc_file.createVariable( + dataset_var_obj.variable, + dataset_var_obj.dtype, + dataset_var_obj.dimensions + ) except RuntimeError: continue else: @@ -146,9 +235,9 @@ def _save_common_components(self, nc_file): if dataset_var_obj.grid is not None: dataset_grid_var.grid = grid_var if dataset_var_obj.standard_name is not None: - dataset_grid_var.standard_name = dataset_var_obj.standard_name + dataset_grid_var.standard_name = dataset_var_obj.standard_name # noqa if dataset_var_obj.coordinates is not None: - dataset_grid_var.coordinates = ' '.join(dataset_var_obj.coordinates) + dataset_grid_var.coordinates = ' '.join(dataset_var_obj.coordinates) # noqa if dataset_var_obj.x_axis is not None: x_axis = 'X: {0}'.format(dataset_var_obj.x_axis) axes.append(x_axis) @@ -162,278 +251,18 @@ def _save_common_components(self, nc_file): dataset_grid_var.axes = ' '.join(axes) return grid_vars - @abc.abstractmethod - def from_nc_dataset(self): - return - - @abc.abstractmethod - def get_all_face_padding(self): - return - - @abc.abstractmethod - def get_all_edge_padding(self): - return - - @abc.abstractmethod - def all_padding(self): - return - - @abc.abstractmethod - def save_as_netcdf(self): - return - - -class SGrid2D(SGridND): - - topology_dimension = 2 - - def __init__(self, - faces=None, - face_padding=None, - face_coordinates=None, - face_dimensions=None, - vertical_padding=None, - vertical_dimensions=None, - *args, - **kwargs): - self.faces = faces - self.face_padding = face_padding - self.face_coordinates = face_coordinates - self.face_dimensions = face_dimensions - self.vertical_padding = vertical_padding - self.vertical_dimensions = vertical_dimensions - super(SGrid2D, self).__init__(*args, **kwargs) - - @classmethod - def from_nc_dataset(cls, nc_dataset, topology_variable=None): - sa = SGridAttributes(nc_dataset, cls.topology_dimension, topology_variable) - dimensions = sa.get_dimensions() - node_dimensions, node_coordinates = sa.get_node_coordinates() - grid_topology_var = sa.get_topology_var() - edge1_dimensions, edge1_padding = sa.get_attr_dimension('edge1_dimensions') - edge2_dimensions, edge2_padding = sa.get_attr_dimension('edge2_dimensions') - edge1_coordinates = sa.get_attr_coordinates('edge1_coordinates') - edge2_coordinates = sa.get_attr_coordinates('edge2_coordinates') - angles = sa.get_angles() - vertical_dimensions, vertical_padding = sa.get_attr_dimension('vertical_dimensions') - centers = sa.get_cell_center_lat_lon() - face_dimensions, face_padding = sa.get_attr_dimension('face_dimensions') - face_coordinates = sa.get_attr_coordinates('face_coordinates') - nodes = sa.get_cell_node_lat_lon() - sgrid = cls(angles=angles, - centers=centers, - dimensions=dimensions, - edge1_coordinates=edge1_coordinates, - edge1_dimensions=edge1_dimensions, - edge1_padding=edge1_padding, - edge2_coordinates=edge2_coordinates, - edge2_dimensions=edge2_dimensions, - edge2_padding=edge2_padding, - edges=None, - face_coordinates=face_coordinates, - face_dimensions=face_dimensions, - face_padding=face_padding, - faces=None, - grid_topology_var=grid_topology_var, - grid_variables=None, - node_coordinates=node_coordinates, - node_dimensions=node_dimensions, - node_padding=None, - nodes=nodes, - variables=None, - vertical_dimensions=vertical_dimensions, - vertical_padding=vertical_padding - ) - sa.get_variable_attributes(sgrid) - return sgrid - - def get_all_face_padding(self): - if self.face_padding is not None: - all_face_padding = self.face_padding - else: - all_face_padding = [] - return all_face_padding - - def get_all_edge_padding(self): - all_edge_padding = [] - if self.edge1_padding is not None: - all_edge_padding += self.edge1_padding - if self.edge2_padding is not None: - all_edge_padding += self.edge2_padding - return all_edge_padding - - def all_padding(self): - all_padding = self.get_all_face_padding() + self.get_all_edge_padding() - if self.vertical_padding is not None: - all_padding += self.vertical_padding - return all_padding - - def save_as_netcdf(self, filepath): - with Dataset(filepath, 'w') as nclocal: - grid_vars = self._save_common_components(nclocal) - # add attributes to the grid_topology variable - grid_vars.face_dimensions = self.face_dimensions - if self.vertical_dimensions is not None: - grid_vars.vertical_dimensions = self.vertical_dimensions - if self.face_coordinates is not None: - grid_vars.face_coordinates = ' '.join(self.face_coordinates) - - -class SGrid3D(SGridND): - - topology_dimension = 3 - - def __init__(self, - volume_padding=None, - volume_coordinates=None, - edge3_padding=None, - edge3_coordinates=None, - face1_padding=None, - face1_coordinates=None, - face2_padding=None, - face2_coordinates=None, - face3_padding=None, - face3_coordinates=None, - volume_dimensions=None, - edge1_dimensions=None, - edge2_dimensions=None, - edge3_dimensions=None, - face1_dimensions=None, - face2_dimensions=None, - face3_dimensions=None, - *args, - **kwargs): - # attributes specific to topology_dimension 3 - self.volume_padding = volume_padding - self.volume_coordinates = volume_coordinates - self.edge3_padding = edge3_padding - self.edge3_coordinates = edge3_coordinates - self.face1_padding = face1_padding - self.face1_coordinates = face1_coordinates - self.face2_padding = face2_padding - self.face2_coordinates = face2_coordinates - self.face3_padding = face3_padding - self.face3_coordinates = face3_coordinates - self.volume_dimensions = volume_dimensions - self.edge1_dimensions = edge1_dimensions - self.edge2_dimensions = edge2_dimensions - self.edge3_dimensions = edge3_dimensions - self.face1_dimensions = face1_dimensions - self.face2_dimensions = face2_dimensions - self.face3_dimensions = face3_dimensions - super(SGrid3D, self).__init__(*args, **kwargs) - - @classmethod - def from_nc_dataset(cls, nc_dataset, topology_variable=None): - sa = SGridAttributes(nc_dataset, cls.topology_dimension, topology_variable) - dimensions = sa.get_dimensions() - node_dimensions, node_coordinates = sa.get_node_coordinates() - grid_topology_var = sa.get_topology_var() - edge1_dimensions, edge1_padding = sa.get_attr_dimension('edge1_dimensions') - edge2_dimensions, edge2_padding = sa.get_attr_dimension('edge2_dimensions') - edge1_coordinates = sa.get_attr_coordinates('edge1_coordinates') - edge2_coordinates = sa.get_attr_coordinates('edge2_coordinates') - edge3_dimensions, edge3_padding = sa.get_attr_dimension('edge3_dimensions') - edge3_coordinates = sa.get_attr_coordinates('edge3_coordinates') - face1_dimensions, face1_padding = sa.get_attr_dimension('face1_dimensions') - face1_coordinates = sa.get_attr_coordinates('face1_coordinates') - face2_dimensions, face2_padding = sa.get_attr_dimension('face2_dimensions') - face2_coordinates = sa.get_attr_coordinates('face2_coordinates') - face3_dimensions, face3_padding = sa.get_attr_dimension('face3_dimensions') - face3_coordinates = sa.get_attr_coordinates('face3_coordinates') - volume_dimensions, volume_padding = sa.get_attr_dimension('volume_dimensions') - volume_coordinates = sa.get_attr_coordinates('volume_coordinates') - centers = sa.get_cell_center_lat_lon_3d() - nodes = sa.get_cell_node_lat_lon_3d() - sgrid = cls(angles=None, - centers=centers, - dimensions=dimensions, - edge1_coordinates=edge1_coordinates, - edge1_dimensions=edge1_dimensions, - edge1_padding=edge1_padding, - edge2_coordinates=edge2_coordinates, - edge2_dimensions=edge2_dimensions, - edge2_padding=edge2_padding, - edge3_coordinates=edge3_coordinates, - edge3_dimensions=edge3_dimensions, - edge3_padding=edge3_padding, - edges=None, - face1_coordinates=face1_coordinates, - face1_dimensions=face1_dimensions, - face1_padding=face1_padding, - face2_coordinates=face2_coordinates, - face2_dimensions=face2_dimensions, - face2_padding=face2_padding, - face3_coordinates=face3_coordinates, - face3_dimensions=face3_dimensions, - face3_padding=face3_padding, - grid_topology_var=grid_topology_var, - grid_variables=None, - node_coordinates=node_coordinates, - node_dimensions=node_dimensions, - node_padding=None, - nodes=nodes, - variables=None, - volume_coordinates=volume_coordinates, - volume_dimensions=volume_dimensions, - volume_padding=volume_padding - ) - sa.get_variable_attributes(sgrid) - return sgrid - - def get_all_face_padding(self): - all_face_padding = [] - if self.face1_padding is not None: - all_face_padding += self.face1_padding - if self.face2_padding is not None: - all_face_padding += self.face2_padding - if self.face3_padding is not None: - all_face_padding += self.face3_padding - return all_face_padding - - def get_all_edge_padding(self): - all_edge_padding = [] - if self.edge1_padding is not None: - all_edge_padding += self.edge1_padding - if self.edge2_padding is not None: - all_edge_padding += self.edge2_padding - if self.edge3_padding is not None: - all_edge_padding += self.edge3_padding - return all_edge_padding - - def all_padding(self): - all_padding = self.volume_padding + self.get_all_face_padding() + self.get_all_edge_padding() - return all_padding - - def save_as_netcdf(self, filepath): - with Dataset(filepath, 'w') as nclocal: - grid_vars = self._save_common_components(nclocal) - # add attributes to the variables - grid_vars.volume_dimensions = self.volume_dimensions - if self.volume_coordinates is not None: - grid_vars.volume_coordinates = ' '.join(self.volume_coordinates) - if self.face3_coordinates is not None: - grid_vars.face3_coordinates = self.face3_coordinates - grid_vars.edge3_dimensions = self.edge3_dimensions - if self.edge3_coordinates is not None: - grid_vars.edge3_coordinates = ' '.join(self.edge3_coordinates) - class SGridAttributes(object): """ Class containing methods to help with getting the - attributes for either a 2D or 3D SGrid. + attributes for either SGrid. """ - def __init__(self, nc_dataset, topology_dim, topology_variable=None): + def __init__(self, nc_dataset, topology_dim, topology_variable): self.nc_dataset = nc_dataset self.ncd = NetCDFDataset(self.nc_dataset) self.topology_dim = topology_dim - if topology_variable is None: - # the netCDF variable with a cf_role of 'grid_topology' - self.topology_variable = self.ncd.find_grid_topology_var() - else: - self.topology_variable = topology_variable + self.topology_variable = topology_variable self.topology_var = self.nc_dataset.variables[self.topology_variable] def get_dimensions(self): @@ -442,7 +271,7 @@ def get_dimensions(self): return grid_dims def get_topology_var(self): - grid_topology_var = self.ncd.find_grid_topology_var() + grid_topology_var = find_grid_topology_var(self.nc_dataset) return grid_topology_var def get_attr_dimension(self, attr_name): @@ -461,7 +290,7 @@ def get_attr_coordinates(self, attr_name): attr_coordinates_raw = getattr(self.topology_var, attr_name) except AttributeError: location_name = attr_name.split('_')[0] - attr_coordinates = self.ncd.find_coordinates_by_location(location_name, self.topology_dim) + attr_coordinates = self.ncd.find_coordinates_by_location(location_name, self.topology_dim) # noqa else: attr_coordinates_val = attr_coordinates_raw.split(' ') attr_coordinates = tuple(attr_coordinates_val) @@ -473,7 +302,7 @@ def get_node_coordinates(self): try: node_coordinates = self.topology_var.node_coordinates except AttributeError: - grid_cell_node_vars = self.ncd.find_node_coordinates(node_dimensions) + grid_cell_node_vars = self.ncd.find_node_coordinates(node_dimensions) # noqa node_coordinates = grid_cell_node_vars else: node_coordinate_val = node_coordinates.split(' ') @@ -507,133 +336,36 @@ def get_angles(self): return angles def get_cell_center_lat_lon(self): - grid_cell_center_lon_var, grid_cell_center_lat_var = self.get_attr_coordinates('face_coordinates') - grid_cell_center_lat = self.nc_dataset.variables[grid_cell_center_lat_var][:] - grid_cell_center_lon = self.nc_dataset.variables[grid_cell_center_lon_var][:] + grid_cell_center_lon_var, grid_cell_center_lat_var = self.get_attr_coordinates('face_coordinates') # noqa + grid_cell_center_lat = self.nc_dataset.variables[grid_cell_center_lat_var][:] # noqa + grid_cell_center_lon = self.nc_dataset.variables[grid_cell_center_lon_var][:] # noqa return pair_arrays(grid_cell_center_lon, grid_cell_center_lat) def get_cell_node_lat_lon(self): try: - grid_cell_nodes_lon_var, grid_cell_nodes_lat_var = self.get_node_coordinates()[1] + grid_cell_nodes_lon_var, grid_cell_nodes_lat_var = self.get_node_coordinates()[1] # noqa except TypeError: cell_nodes = None else: - grid_cell_nodes_lat = self.nc_dataset.variables[grid_cell_nodes_lat_var][:] - grid_cell_nodes_lon = self.nc_dataset.variables[grid_cell_nodes_lon_var][:] + grid_cell_nodes_lat = self.nc_dataset.variables[grid_cell_nodes_lat_var][:] # noqa + grid_cell_nodes_lon = self.nc_dataset.variables[grid_cell_nodes_lon_var][:] # noqa cell_nodes = pair_arrays(grid_cell_nodes_lon, grid_cell_nodes_lat) return cell_nodes - def get_cell_center_lat_lon_3d(self): - volume_coordinates = self.get_attr_coordinates('volume_coordinates') - grid_cell_center_lon_var = volume_coordinates[0] - grid_cell_center_lat_var = volume_coordinates[1] - grid_cell_center_lon = self.nc_dataset.variables[grid_cell_center_lon_var][:] - grid_cell_center_lat = self.nc_dataset.variables[grid_cell_center_lat_var][:] - return pair_arrays(grid_cell_center_lon, grid_cell_center_lat) - def get_cell_node_lat_lon_3d(self): - pass - - -def _load_grid_from_nc_dataset(nc_dataset, - topology_dim, - grid_topology_var=None - ): +def load_sgrid(nc): """ - Create an SGridND object from an SGRID - compliant netCDF4.Dataset object. An - exception is raised if the dataset is - non-compliant. This function will introspect - the datast to determine whether a 2D or 3D - SGRID object is returned. - - :param nc_dataset: a netCDF resource read into a netCDF4.Dataset object - :type nc_dataset: netCDF4.Dataset - :param grid_topology_var: the name of the grid topology variable; defaults to None - :type grid_topology_var: str - :return: an SGrid object - :rtype: sgrid.SGrid2D or sgrid.SGrid3D + Get a SGrid object from a netCDF4.Dataset or file/URL. - """ - if topology_dim == 2: - grid = SGrid2D.from_nc_dataset(nc_dataset, grid_topology_var) - elif topology_dim == 3: - grid = SGrid3D.from_nc_dataset(nc_dataset, grid_topology_var) - else: - raise ValueError('Only topology dimensions of 2 or 3 are supported') - return grid - - -def _return_grid_topology_dim(nc_dataset, grid_topology_var=None): - """ - Given a netCDF dataset, determine the topology - dimension. - - :param nc_dataset: a netCDF dataset - :type nc_dataset: netCDF4.Dataset - :param str grid_topology_vars: the name of the grid topology variable; defaults to None - :return: topology dimension - :rtype: int - - """ - ncd = NetCDFDataset(nc_dataset) - if ncd.sgrid_compliant_file(): - if grid_topology_var is not None: - topology_var = grid_topology_var - else: - topology_var = ncd.find_grid_topology_var() - nc_grid_topology_var = nc_dataset.variables[topology_var] - topology_dim = nc_grid_topology_var.topology_dimension - if topology_dim == 2 or topology_dim == 3: - return topology_dim, grid_topology_var - else: - raise ValueError('Only topology dimensions of 2 or 3 are supported') - else: - raise SGridNonCompliantError(nc_dataset) - - -def from_ncfile(nc_url, grid_topology_var=None): - """ - Get a SGrid object from a file. There is no need - to know the topology dimensions a priori. - - :param str nc_url: URL or filepath to the netCDF file - :param str grid_topology_vars: the name of the grid topology variable; defaults to None - :return: SGrid object - :rtype: sgrid.SGrid2D or sgrid.SGrid3D - - """ - with Dataset(nc_url, 'r') as nc_dataset: - topology_dim, introspected_grid_topology_var = _return_grid_topology_dim(nc_dataset, grid_topology_var) - if grid_topology_var is not None: - topology_var = grid_topology_var - else: - topology_var = introspected_grid_topology_var - grid = _load_grid_from_nc_dataset(nc_dataset, - topology_dim, - topology_var - ) - return grid - - -def from_nc_dataset(nc_dataset, grid_topology_var=None): - """ - Get a SGrid object from a netCDF4.Dataset. There is no need - to know the topology dimensions a priori. - - :param netCDF4.Dataset nc_dataset: a netCDF4 Dataset - :param str grid_topology_vars: the name of the grid topology variable; defaults to None + :param str or netCDF4.Dataset nc: a netCDF4 Dataset or URL/filepath + to the netCDF file :return: SGrid object - :rtype: sgrid.SGrid2D or sgrid.SGrid3D + :rtype: sgrid.SGrid """ - topology_dim, introspected_grid_topology_var = _return_grid_topology_dim(nc_dataset, grid_topology_var) - if grid_topology_var is not None: - topology_var = grid_topology_var + if isinstance(nc, Dataset): + pass else: - topology_var = introspected_grid_topology_var - grid = _load_grid_from_nc_dataset(nc_dataset, - topology_dim, - topology_var - ) - return grid + nc = Dataset(nc, 'r') + + return SGrid.load_sgrid(nc) diff --git a/pysgrid/tests/test_processing_2d.py b/pysgrid/tests/test_processing_2d.py index 045bd82..73c4e98 100644 --- a/pysgrid/tests/test_processing_2d.py +++ b/pysgrid/tests/test_processing_2d.py @@ -3,6 +3,9 @@ @author: ayan ''' + +from __future__ import (absolute_import, division, print_function) + import unittest import numpy as np @@ -10,53 +13,53 @@ class TestVectorSum(unittest.TestCase): - + def setUp(self): self.x_vector = np.array([3, 5, 9, 11]) self.y_vector = np.array([4, 12, 40, 60]) - + def test_vector_sum(self): sum_result = vector_sum(self.x_vector, self.y_vector) expected = np.array([5, 13, 41, 61]) np.testing.assert_almost_equal(sum_result, expected) - + class TestRotateVectors(unittest.TestCase): - + def setUp(self): self.x_vector = np.array([3, 5, 9, 11]) self.y_vector = np.array([4, 12, 40, 60]) self.angles_simple = np.array([0, np.pi/2, 0, np.pi/2]) self.angles_complex = np.array([np.pi/6, np.pi/5, np.pi/4, np.pi/3]) - + def test_vector_rotation_simple(self): rotated_x, rotated_y = rotate_vectors(self.x_vector, self.y_vector, self.angles_simple) expected_x = np.array([3, -12, 9, -60]) expected_y = np.array([4, 5, 40, 11]) np.testing.assert_almost_equal(rotated_x, expected_x, decimal=3) np.testing.assert_almost_equal(rotated_y, expected_y, decimal=3) - + def test_vector_rotation_complex(self): rotated_x, rotated_y = rotate_vectors(self.x_vector, self.y_vector, self.angles_complex) expected_x = np.array([0.5981, -3.0083, -21.9203, -46.4615]) expected_y = np.array([4.9641, 12.6471, 34.6482, 39.5263]) np.testing.assert_almost_equal(rotated_x, expected_x, decimal=3) np.testing.assert_almost_equal(rotated_y, expected_y, decimal=3) - + class TestAvgToCellCenter(unittest.TestCase): - + def setUp(self): self.data = np.array([[4, 5, 9, 10], [8, 39, 41, 20], [5, 29, 18, 71]]) self.avg_dim_0 = 0 self.avg_dim_1 = 1 - + def test_no_transpose(self): avg_result = avg_to_cell_center(self.data, self.avg_dim_1) expected = np.array([[4.5, 7, 9.5], [23.5, 40, 30.5], [17, 23.5, 44.5]]) np.testing.assert_almost_equal(avg_result, expected, decimal=3) - + def test_with_transpose(self): avg_result = avg_to_cell_center(self.data, self.avg_dim_0) expected = np.array([[6, 22, 25, 15], [6.5, 34, 29.5, 45.5]]) - np.testing.assert_almost_equal(avg_result, expected, decimal=3) \ No newline at end of file + np.testing.assert_almost_equal(avg_result, expected, decimal=3) diff --git a/pysgrid/tests/test_read_netcdf.py b/pysgrid/tests/test_read_netcdf.py index 786aebc..f36fe1e 100644 --- a/pysgrid/tests/test_read_netcdf.py +++ b/pysgrid/tests/test_read_netcdf.py @@ -3,13 +3,16 @@ @author: ayan ''' + +from __future__ import (absolute_import, division, print_function) + import os import unittest from netCDF4 import Dataset -from ..custom_exceptions import CannotFindPaddingError -from ..read_netcdf import NetCDFDataset, parse_axes, parse_padding, parse_vector_axis +from ..read_netcdf import (NetCDFDataset, parse_axes, parse_padding, + parse_vector_axis, find_grid_topology_var) from .write_nc_test_files import roms_sgrid, wrf_sgrid_2d @@ -75,7 +78,7 @@ def test_one_padding_type(self): self.assertEqual(dim, expected_dim) def test_no_padding(self): - self.assertRaises(CannotFindPaddingError, + self.assertRaises(ValueError, parse_padding, padding_str=self.with_no_padding, mesh_topology_var=self.grid_topology @@ -137,7 +140,7 @@ def test_find_edge_coordinates_by_location(self): self.assertEqual(result, expected) def test_find_grid_topology(self): - result = self.nc_ds.find_grid_topology_var() + result = find_grid_topology_var(self.ds) expected = 'grid' self.assertEqual(result, expected) diff --git a/pysgrid/tests/test_sgrid.py b/pysgrid/tests/test_sgrid.py index 4a57007..0d34e86 100644 --- a/pysgrid/tests/test_sgrid.py +++ b/pysgrid/tests/test_sgrid.py @@ -3,6 +3,9 @@ @author: ayan ''' + +from __future__ import (absolute_import, division, print_function) + import os import unittest @@ -14,11 +17,11 @@ from netCDF4 import Dataset import numpy as np -from ..custom_exceptions import SGridNonCompliantError -from ..sgrid import SGrid2D, SGrid3D, from_ncfile, from_nc_dataset -from ..utils import GridPadding -from .write_nc_test_files import (deltares_sgrid, deltares_sgrid_no_optional_attr, - non_compliant_sgrid, roms_sgrid, wrf_sgrid, +from ..sgrid import SGrid, load_sgrid +from .write_nc_test_files import (deltares_sgrid, + deltares_sgrid_no_optional_attr, + non_compliant_sgrid, + roms_sgrid, wrf_sgrid_2d) @@ -37,8 +40,8 @@ def tearDownClass(cls): os.remove(cls.sgrid_test_file) def test_exception_raised(self): - self.assertRaises(SGridNonCompliantError, - from_ncfile, + self.assertRaises(ValueError, + load_sgrid, self.sgrid_test_file ) @@ -60,12 +63,12 @@ def tearDown(self): self.ds.close() def test_load_from_file(self): - sg_obj = from_ncfile(self.sgrid_test_file) - self.assertIsInstance(sg_obj, SGrid2D) + sg_obj = load_sgrid(self.sgrid_test_file) + self.assertIsInstance(sg_obj, SGrid) def test_load_from_dataset(self): - sg_obj = from_nc_dataset(self.ds) - self.assertIsInstance(sg_obj, SGrid2D) + sg_obj = load_sgrid(self.ds) + self.assertIsInstance(sg_obj, SGrid) class TestSGridRomsDataset(unittest.TestCase): @@ -82,7 +85,7 @@ def tearDownClass(cls): os.remove(cls.sgrid_test_file) def setUp(self): - self.sg_obj = from_ncfile(self.sgrid_test_file) + self.sg_obj = load_sgrid(self.sgrid_test_file) self.write_path = os.path.join(CURRENT_DIR, 'test_sgrid_write.nc') def test_centers(self): @@ -125,8 +128,10 @@ def test_variables(self): def test_grid_variables(self): dataset_grid_variables = self.sg_obj.grid_variables expected_grid_variables = [u'u', u'v', u'fake_u', u'salt'] - self.assertEqual(len(dataset_grid_variables), len(expected_grid_variables)) - self.assertEqual(set(dataset_grid_variables), set(expected_grid_variables)) + self.assertEqual(len(dataset_grid_variables), + len(expected_grid_variables)) + self.assertEqual(set(dataset_grid_variables), + set(expected_grid_variables)) def test_non_grid_variables(self): dataset_non_grid_variables = self.sg_obj.non_grid_variables @@ -152,8 +157,10 @@ def test_non_grid_variables(self): u'lon_v', u'zeta' ] - self.assertEqual(len(dataset_non_grid_variables), len(expected_non_grid_variables)) - self.assertEqual(set(dataset_non_grid_variables), set(expected_non_grid_variables)) + self.assertEqual(len(dataset_non_grid_variables), + len(expected_non_grid_variables)) + self.assertEqual(set(dataset_non_grid_variables), + set(expected_non_grid_variables)) def test_variable_slicing(self): u_center_slices = self.sg_obj.u.center_slicing @@ -212,7 +219,7 @@ def tearDownClass(cls): os.remove(cls.sgrid_test_file) def setUp(self): - self.sgrid_obj = from_ncfile(self.sgrid_test_file) + self.sgrid_obj = load_sgrid(self.sgrid_test_file) def test_face_coordinate_inference(self): face_coordinates = self.sgrid_obj.face_coordinates @@ -249,7 +256,7 @@ def tearDownClass(cls): os.remove(cls.sgrid_test_file) def setUp(self): - self.sg_obj = from_ncfile(self.sgrid_test_file) + self.sg_obj = load_sgrid(self.sgrid_test_file) def test_topology_dimension(self): topology_dim = self.sg_obj.topology_dimension @@ -287,7 +294,7 @@ def tearDownClass(cls): os.remove(cls.sgrid_test_file) def setUp(self): - self.sg_obj = from_ncfile(self.sgrid_test_file) + self.sg_obj = load_sgrid(self.sgrid_test_file) def test_centers(self): centers = self.sg_obj.centers @@ -308,7 +315,7 @@ def test_variable_slice(self): xz_center_slices = self.sg_obj.XZ.center_slicing xcor_center_slices = self.sg_obj.XCOR.center_slicing xz_center_expected = (np.s_[1:], np.s_[1:]) - xcor_center_expected = (np.s_[:], np.s_[:]) + xcor_center_expected = (np.s_[:], np.s_[:]) self.assertEqual(u_center_slices, u_center_expected) self.assertEqual(v_center_slices, v_center_expected) self.assertEqual(xz_center_slices, xz_center_expected) @@ -390,15 +397,15 @@ def tearDownClass(cls): def setUp(self): self.sgrid_target = os.path.join(TEST_FILES, 'tmp_sgrid.nc') - self.sg_obj = from_ncfile(self.sgrid_test_file) + self.sg_obj = load_sgrid(self.sgrid_test_file) self.sg_obj.save_as_netcdf(self.sgrid_target) - self.target = from_ncfile(self.sgrid_target) + self.target = load_sgrid(self.sgrid_target) def tearDown(self): os.remove(self.sgrid_target) def test_sgrid(self): - self.assertIsInstance(self.target, SGrid2D) + self.assertIsInstance(self.target, SGrid) def test_nodes(self): nodes = self.target.nodes @@ -433,9 +440,9 @@ def tearDownClass(cls): def setUp(self): self.sgrid_target = os.path.join(TEST_FILES, 'tmp_sgrid.nc') - self.sg_obj = from_ncfile(self.sgrid_test_file) + self.sg_obj = load_sgrid(self.sgrid_test_file) self.sg_obj.save_as_netcdf(self.sgrid_target) - self.target = from_ncfile(self.sgrid_target) + self.target = load_sgrid(self.sgrid_target) def tearDown(self): os.remove(self.sgrid_target) @@ -481,14 +488,15 @@ def test_save_as_netcdf(self): ] target_face_coordinates = self.target.face_coordinates expected_target_face_coordinates = (u'XZ', u'YZ') - self.assertIsInstance(self.target, SGrid2D) + self.assertIsInstance(self.target, SGrid) self.assertEqual(len(target_dims), len(expected_target_dims)) self.assertEqual(set(target_dims), set(expected_target_dims)) self.assertEqual(len(target_vars), len(expected_target_vars)) self.assertEqual(set(target_vars), set(expected_target_vars)) self.assertEqual(len(target_grid_vars), len(expected_target_grid_vars)) self.assertEqual(set(target_grid_vars), set(expected_target_grid_vars)) - self.assertEqual(target_face_coordinates, expected_target_face_coordinates) + self.assertEqual(target_face_coordinates, + expected_target_face_coordinates) def test_saved_sgrid_attributes(self): """ @@ -505,89 +513,4 @@ def test_saved_sgrid_attributes(self): saved_angles = self.target.angles self.assertEqual(u1_var_center_avg_axis, expected_u1_center_axis) self.assertEqual(u1_vector_axis, expected_u1_vector_axis) - np.testing.assert_almost_equal(original_angles, saved_angles, decimal=3) - - -class Test3DimensionalSGrid(unittest.TestCase): - - @classmethod - def setUpClass(cls): - cls.sgrid_test_file = wrf_sgrid() - - @classmethod - def tearDownClass(cls): - os.remove(cls.sgrid_test_file) - - def setUp(self): - self.sg_obj = from_ncfile(self.sgrid_test_file) - - def test_sgrid_instance(self): - self.assertIsInstance(self.sg_obj, SGrid3D) - - def test_variables(self): - sg_vars = self.sg_obj.variables - sg_vars_expected = [u'Times', - u'XTIME', - u'U', - u'V', - u'W', - u'T', - u'XLAT', - u'XLONG', - u'ZNU', - u'ZNW', - u'grid' - ] - self.assertEqual(len(sg_vars), len(sg_vars_expected)) - self.assertEqual(set(sg_vars), set(sg_vars_expected)) - - def test_volume_padding(self): - volume_padding = self.sg_obj.volume_padding - volume_padding_expected = [GridPadding(mesh_topology_var=u'grid', face_dim=u'west_east', node_dim=u'west_east_stag', padding=u'none'), - GridPadding(mesh_topology_var=u'grid', face_dim=u'south_north', node_dim=u'south_north_stag', padding=u'none'), - GridPadding(mesh_topology_var=u'grid', face_dim=u'bottom_top', node_dim=u'bottom_top_stag', padding=u'none') - ] - self.assertEqual(volume_padding, volume_padding_expected) - - def test_volume_coordinates(self): - volume_coordinates = self.sg_obj.volume_coordinates - volume_coordinates_expected = (u'XLONG', u'XLAT', u'ZNU') - self.assertEqual(volume_coordinates, volume_coordinates_expected) - - def test_slicing_assignment(self): - u_center_slice = self.sg_obj.U.center_slicing - u_center_slice_expected = (np.s_[:], np.s_[:], np.s_[:], np.s_[:]) - self.assertEqual(u_center_slice, u_center_slice_expected) - - def test_sgrid_centers(self): - centers_shape = self.sg_obj.centers.shape - expected_shape = (2, 5, 4, 2) - self.assertEqual(centers_shape, expected_shape) - - def test_topology_dimension(self): - topology_dim = self.sg_obj.topology_dimension - expected_topology_dim = 3 - self.assertEqual(topology_dim, expected_topology_dim) - - def test_no_2d_attributes(self): - self.assertFalse(hasattr(self.sg_obj, 'face_padding')) - self.assertFalse(hasattr(self.sg_obj, 'face_coordinates')) - self.assertFalse(hasattr(self.sg_obj, 'face_dimensions')) - self.assertFalse(hasattr(self.sg_obj, 'vertical_padding')) - self.assertFalse(hasattr(self.sg_obj, 'vertical_dimensions')) - - def test_3d_attributes(self): - self.assertTrue(hasattr(self.sg_obj, 'volume_padding')) - self.assertTrue(hasattr(self.sg_obj, 'volume_dimensions')) - self.assertTrue(hasattr(self.sg_obj, 'volume_coordinates')) - self.assertTrue(hasattr(self.sg_obj, 'face1_padding')) - self.assertTrue(hasattr(self.sg_obj, 'face1_coordinates')) - self.assertTrue(hasattr(self.sg_obj, 'face1_dimensions')) - self.assertTrue(hasattr(self.sg_obj, 'face2_padding')) - self.assertTrue(hasattr(self.sg_obj, 'face2_coordinates')) - self.assertTrue(hasattr(self.sg_obj, 'face2_dimensions')) - self.assertTrue(hasattr(self.sg_obj, 'face3_padding')) - self.assertTrue(hasattr(self.sg_obj, 'face3_coordinates')) - self.assertTrue(hasattr(self.sg_obj, 'edge3_padding')) - self.assertTrue(hasattr(self.sg_obj, 'edge3_coordinates')) - self.assertTrue(hasattr(self.sg_obj, 'edge3_dimensions')) + np.testing.assert_almost_equal(original_angles, saved_angles, decimal=3) # noqa diff --git a/pysgrid/tests/test_utils.py b/pysgrid/tests/test_utils.py index 4b688a0..be89172 100644 --- a/pysgrid/tests/test_utils.py +++ b/pysgrid/tests/test_utils.py @@ -3,32 +3,35 @@ @author: ayan ''' + +from __future__ import (absolute_import, division, print_function) + import unittest import numpy as np -from ..utils import (calculate_bearing, calculate_angle_from_true_east, +from ..utils import (calculate_bearing, calculate_angle_from_true_east, check_element_equal, does_intersection_exist, pair_arrays) class TestDoesIntersectionExist(unittest.TestCase): - + def setUp(self): self.tuple_a = (718, 903, 1029, 1701) self.tuple_b = (718, 828) self.tuple_c = (15, 20) - + def test_intersect_exists(self): result = does_intersection_exist(self.tuple_a, self.tuple_b) self.assertTrue(result) - + def test_intersect_does_not_exist(self): result = does_intersection_exist(self.tuple_a, self.tuple_c) self.assertFalse(result) class TestPairArrays(unittest.TestCase): - + def setUp(self): self.a1 = (1, 2) self.a2 = (3, 4) @@ -38,7 +41,7 @@ def setUp(self): self.b3 = (50, 60) self.a = np.array([self.a1, self.a2, self.a3]) self.b = np.array([self.b1, self.b2, self.b3]) - + def test_pair_arrays(self): result = pair_arrays(self.a, self.b) x = [[(1, 10), (2, 20)], @@ -46,58 +49,59 @@ def test_pair_arrays(self): [(5, 50), (6, 60)]] expected = np.array(x) np.testing.assert_almost_equal(result, expected, decimal=3) - + class TestCheckElementEqual(unittest.TestCase): - + def setUp(self): self.a = [7, 7, 7, 7] self.b = [7, 8, 9, 10] - + def test_list_with_identical_elements(self): result = check_element_equal(self.a) self.assertTrue(result) - + def test_list_with_different_elements(self): result = check_element_equal(self.b) self.assertFalse(result) - - + + class TestCalculateBearing(unittest.TestCase): - + def setUp(self): - self.points = np.array([(-93.51105439, 11.88846735), (-93.46607342, 11.90917952)]) + self.points = np.array([(-93.51105439, 11.88846735), + (-93.46607342, 11.90917952)]) self.point_1 = self.points[:-1, :] self.point_2 = self.points[1:, :] - + def test_bearing_calculation(self): result = calculate_bearing(self.point_1, self.point_2) expected = 64.7947 np.testing.assert_almost_equal(result, expected, decimal=3) - - + + class TestCalculateAngleFromTrueEast(unittest.TestCase): - + def setUp(self): - self.vertical_1 = np.array([[-122.41, 37.78], [-122.33, 37.84], [-122.22, 37.95]]) - self.vertical_2 = np.array([[-90.07, 29.95], [-89.97, 29.84], [-89.91, 29.76]]) - self.vertical_3 = np.array([[-89.40, 43.07], [-89.49, 42.93], [-89.35, 42.84]]) - self.vertical_4 = np.array([[-122.41, 37.78], [-122.53, 37.84], [-122.67, 37.95]]) - self.centers = np.array((self.vertical_1, - self.vertical_2, - self.vertical_3, + self.vertical_1 = np.array([[-122.41, 37.78], [-122.33, 37.84], [-122.22, 37.95]]) # noqa + self.vertical_2 = np.array([[-90.07, 29.95], [-89.97, 29.84], [-89.91, 29.76]]) # noqa + self.vertical_3 = np.array([[-89.40, 43.07], [-89.49, 42.93], [-89.35, 42.84]]) # noqa + self.vertical_4 = np.array([[-122.41, 37.78], [-122.53, 37.84], [-122.67, 37.95]]) # noqa + self.centers = np.array((self.vertical_1, + self.vertical_2, + self.vertical_3, self.vertical_4 )) - + def test_angle_from_true_east_calculation(self): bearing_start_points = self.centers[:, :-1, :] bearing_end_points = self.centers[:, 1:, :] - angle_from_true_east = calculate_angle_from_true_east(bearing_start_points, bearing_end_points) - expected_values = np.array([[0.7598, 0.9033, 0.9033], - [-0.903, -0.994, -0.994], + angle_from_true_east = calculate_angle_from_true_east(bearing_start_points, bearing_end_points) # noqa + expected_values = np.array([[0.7598, 0.9033, 0.9033], + [-0.903, -0.994, -0.994], [-2.011, -0.719, -0.719], [-3.706, -3.926, -3.926] ]) expected_shape = (4, 3) - np.testing.assert_almost_equal(angle_from_true_east, expected_values, decimal=3) - self.assertEqual(angle_from_true_east.shape, expected_shape) \ No newline at end of file + np.testing.assert_almost_equal(angle_from_true_east, expected_values, decimal=3) # noqa + self.assertEqual(angle_from_true_east.shape, expected_shape) diff --git a/pysgrid/tests/test_variables.py b/pysgrid/tests/test_variables.py index 4250d21..3d8d6ff 100644 --- a/pysgrid/tests/test_variables.py +++ b/pysgrid/tests/test_variables.py @@ -3,13 +3,16 @@ @author: ayan ''' + +from __future__ import (absolute_import, division, print_function) + import os import unittest from netCDF4 import Dataset import numpy as np -from ..sgrid import SGrid2D +from ..sgrid import SGrid from ..utils import GridPadding from ..variables import SGridVariable from .write_nc_test_files import deltares_sgrid, roms_sgrid, wrf_sgrid_2d @@ -26,12 +29,17 @@ def tearDownClass(cls): os.remove(cls.test_file) def setUp(self): - self.face_padding = [GridPadding(mesh_topology_var=u'grid', face_dim=u'xi_rho', node_dim=u'xi_psi', padding=u'both'), - GridPadding(mesh_topology_var=u'grid', face_dim=u'eta_rho', node_dim=u'eta_psi', padding=u'both') + self.face_padding = [GridPadding(mesh_topology_var=u'grid', + face_dim=u'xi_rho', + node_dim=u'xi_psi', + padding=u'both'), + GridPadding(mesh_topology_var=u'grid', + face_dim=u'eta_rho', + node_dim=u'eta_psi', + padding=u'both') ] - self.sgrid = SGrid2D(face_padding=self.face_padding, - node_dimensions='xi_psi eta_psi' - ) + self.sgrid = SGrid(face_padding=self.face_padding, + node_dimensions='xi_psi eta_psi') self.dataset = Dataset(self.test_file) self.test_var_1 = self.dataset.variables['u'] self.test_var_2 = self.dataset.variables['zeta'] @@ -90,8 +98,14 @@ def test_edge_location_inference(self): self.assertIsNone(sgrid_var_location) def test_edge_location_inference_with_defined_edges(self): - self.sgrid.edge1_padding = [GridPadding(mesh_topology_var=u'grid', face_dim=u'eta_u', node_dim=u'eta_psi', padding=u'both')] - self.sgrid.edge2_padding = [GridPadding(mesh_topology_var=u'grid', face_dim=u'xi_v', node_dim=u'xi_psi', padding=u'both')] + self.sgrid.edge1_padding = [GridPadding(mesh_topology_var=u'grid', + face_dim=u'eta_u', + node_dim=u'eta_psi', + padding=u'both')] + self.sgrid.edge2_padding = [GridPadding(mesh_topology_var=u'grid', + face_dim=u'xi_v', + node_dim=u'xi_psi', + padding=u'both')] sgrid_var = SGridVariable.create_variable(self.test_var_4, self.sgrid) sgrid_var_location = sgrid_var.location expected_location = 'edge1' @@ -140,13 +154,18 @@ def tearDownClass(cls): os.remove(cls.test_file) def setUp(self): - self.face_padding = [GridPadding(mesh_topology_var=u'grid', face_dim=u'west_east', node_dim=u'west_east_stag', padding=u'none'), - GridPadding(mesh_topology_var=u'grid', face_dim=u'south_north', node_dim=u'south_north_stag', padding=u'none') + self.face_padding = [GridPadding(mesh_topology_var=u'grid', + face_dim=u'west_east', + node_dim=u'west_east_stag', + padding=u'none'), + GridPadding(mesh_topology_var=u'grid', + face_dim=u'south_north', + node_dim=u'south_north_stag', + padding=u'none') ] self.node_dimensions = 'west_east_stag south_north_stag' - self.sgrid = SGrid2D(face_padding=self.face_padding, - node_dimensions=self.node_dimensions - ) + self.sgrid = SGrid(face_padding=self.face_padding, + node_dimensions=self.node_dimensions) self.dataset = Dataset(self.test_file) self.test_var_1 = self.dataset.variables['SNOW'] self.test_var_2 = self.dataset.variables['FAKE_U'] @@ -178,13 +197,18 @@ def tearDownClass(cls): os.remove(cls.test_file) def setUp(self): - self.face_padding = [GridPadding(mesh_topology_var=u'grid', face_dim=u'MMAXZ', node_dim=u'MMAX', padding=u'low'), - GridPadding(mesh_topology_var=u'grid', face_dim=u'NMAXZ', node_dim=u'NMAX', padding=u'low') + self.face_padding = [GridPadding(mesh_topology_var=u'grid', + face_dim=u'MMAXZ', + node_dim=u'MMAX', + padding=u'low'), + GridPadding(mesh_topology_var=u'grid', + face_dim=u'NMAXZ', + node_dim=u'NMAX', + padding=u'low') ] self.node_dimensions = 'MMAX NMAX' - self.sgrid = SGrid2D(face_padding=self.face_padding, - node_dimensions=self.node_dimensions - ) + self.sgrid = SGrid(face_padding=self.face_padding, + node_dimensions=self.node_dimensions) self.dataset = Dataset(self.test_file) self.test_var_1 = self.dataset.variables['FAKE_W'] self.test_var_2 = self.dataset.variables['FAKE_U1'] diff --git a/pysgrid/tests/write_nc_test_files.py b/pysgrid/tests/write_nc_test_files.py index c1dd5f0..8afc4af 100644 --- a/pysgrid/tests/write_nc_test_files.py +++ b/pysgrid/tests/write_nc_test_files.py @@ -3,11 +3,16 @@ @author: ayan ''' + +from __future__ import (absolute_import, division, print_function) + import os from netCDF4 import Dataset import numpy as np -from pysgrid.lookup import (LON_GRID_CELL_CENTER_LONG_NAME, LAT_GRID_CELL_CENTER_LONG_NAME, - LON_GRID_CELL_NODE_LONG_NAME, LAT_GRID_CELL_NODE_LONG_NAME) +from pysgrid.lookup import (LON_GRID_CELL_CENTER_LONG_NAME, + LAT_GRID_CELL_CENTER_LONG_NAME, + LON_GRID_CELL_NODE_LONG_NAME, + LAT_GRID_CELL_NODE_LONG_NAME) TEST_FILES = os.path.join(os.path.split(__file__)[0], 'files') @@ -29,7 +34,8 @@ def simulated_dgrid(target_dir=TEST_FILES, nc_filename='fake_dgrid.nc'): ycor = rg.createVariable('YCOR', 'f4', ('MMAX', 'NMAX')) xz = rg.createVariable('XZ', 'f4', ('MMAXZ', 'NMAXZ')) yz = rg.createVariable('YZ', 'f4', ('MMAXZ', 'NMAXZ')) - u1 = rg.createVariable('U1', 'f4', ('time', 'KMAX', 'MMAXZ', 'NMAX')) # dims T, Z, X, Y + # Dimensions T, Z, X, Y. + u1 = rg.createVariable('U1', 'f4', ('time', 'KMAX', 'MMAXZ', 'NMAX')) v1 = rg.createVariable('V1', 'f4', ('time', 'KMAX', 'MMAX', 'NMAXZ')) times = rg.createVariable('time', 'f8', ('time',)) grid = rg.createVariable('grid', 'i4') @@ -37,7 +43,7 @@ def simulated_dgrid(target_dir=TEST_FILES, nc_filename='fake_dgrid.nc'): grid.cf_role = 'grid_topology' grid.topology_dimension = 2 grid.node_dimensions = 'MMAX NMAX' - grid.face_dimensions = 'MMAXZ: MMAX (padding: low) NMAXZ: NMAX (padding: low)' + grid.face_dimensions = 'MMAXZ: MMAX (padding: low) NMAXZ: NMAX (padding: low)' # noqa grid.node_coordinates = 'XCOR YCOR' # grid.face_coordinates = 'XZ YZ' grid.vertical_dimensions = 'KMAX: KMAX1 (padding: none)' @@ -57,10 +63,10 @@ def simulated_dgrid(target_dir=TEST_FILES, nc_filename='fake_dgrid.nc'): times[:] = np.random.random((2,)) -def deltares_sgrid_no_optional_attr(target_dir=TEST_FILES, nc_filename='test_sgrid_deltares_no_optional_attr.nc'): +def deltares_sgrid_no_optional_attr(target_dir=TEST_FILES, nc_filename='test_sgrid_deltares_no_optional_attr.nc'): # noqa file_name = os.path.join(target_dir, nc_filename) with Dataset(file_name, 'w') as rg: - # define dimensions + # Define dimensions. rg.createDimension('MMAXZ', 4) rg.createDimension('NMAXZ', 4) rg.createDimension('MMAX', 4) @@ -82,7 +88,7 @@ def deltares_sgrid_no_optional_attr(target_dir=TEST_FILES, nc_filename='test_sgr grid.cf_role = 'grid_topology' grid.topology_dimension = 2 grid.node_dimensions = 'MMAX NMAX' - grid.face_dimensions = 'MMAXZ: MMAX (padding: low) NMAXZ: NMAX (padding: low)' + grid.face_dimensions = 'MMAXZ: MMAX (padding: low) NMAXZ: NMAX (padding: low)' # noqa grid.vertical_dimensions = 'KMAX: KMAX1 (padding: none)' xcor.standard_name = 'projection_x_coordinate' xcor.long_name = 'X-coordinate of grid points' @@ -112,7 +118,8 @@ def deltares_sgrid_no_optional_attr(target_dir=TEST_FILES, nc_filename='test_sgr return file_name -def deltares_sgrid(target_dir=TEST_FILES, nc_filename='test_sgrid_deltares.nc'): +def deltares_sgrid(target_dir=TEST_FILES, + nc_filename='test_sgrid_deltares.nc'): """ Create a netCDF file that is structurally similar to deltares output. Dimension and variable names may differ @@ -121,7 +128,7 @@ def deltares_sgrid(target_dir=TEST_FILES, nc_filename='test_sgrid_deltares.nc'): """ file_name = os.path.join(target_dir, nc_filename) with Dataset(file_name, 'w') as rg: - # define dimensions + # Define dimensions. rg.createDimension('MMAXZ', 4) rg.createDimension('NMAXZ', 4) rg.createDimension('MMAX', 4) @@ -129,13 +136,13 @@ def deltares_sgrid(target_dir=TEST_FILES, nc_filename='test_sgrid_deltares.nc'): rg.createDimension('KMAX', 2) rg.createDimension('KMAX1', 3) rg.createDimension('time', 2) - # define variables - xcor = rg.createVariable('XCOR', 'f4', ('MMAX', 'NMAX')) # nodes - ycor = rg.createVariable('YCOR', 'f4', ('MMAX', 'NMAX')) # nodes - xz = rg.createVariable('XZ', 'f4', ('MMAXZ', 'NMAXZ')) # centers - yz = rg.createVariable('YZ', 'f4', ('MMAXZ', 'NMAXZ')) # centers + # Define variables. + xcor = rg.createVariable('XCOR', 'f4', ('MMAX', 'NMAX')) # Nodes. + ycor = rg.createVariable('YCOR', 'f4', ('MMAX', 'NMAX')) # Nodes. + xz = rg.createVariable('XZ', 'f4', ('MMAXZ', 'NMAXZ')) # Centers. + yz = rg.createVariable('YZ', 'f4', ('MMAXZ', 'NMAXZ')) # Centers. u1 = rg.createVariable('U1', 'f4', ('time', 'KMAX', 'MMAX', 'NMAXZ')) - fake_u1 = rg.createVariable('FAKE_U1', 'f4', ('time', 'KMAX', 'MMAX', 'NMAXZ')) + fake_u1 = rg.createVariable('FAKE_U1', 'f4', ('time', 'KMAX', 'MMAX', 'NMAXZ')) # noqa v1 = rg.createVariable('V1', 'f4', ('time', 'KMAX', 'MMAXZ', 'NMAX')) w = rg.createVariable('W', 'f4', ('time', 'KMAX1', 'MMAXZ', 'NMAXZ')) fake_w = rg.createVariable('FAKE_W', 'f4', ('time', 'MMAXZ', 'NMAXZ')) @@ -143,13 +150,13 @@ def deltares_sgrid(target_dir=TEST_FILES, nc_filename='test_sgrid_deltares.nc'): grid = rg.createVariable('grid', 'i4') latitude = rg.createVariable('latitude', 'f4', ('MMAXZ', 'NMAXZ')) longitude = rg.createVariable('longitude', 'f4', ('MMAXZ', 'NMAXZ')) - grid_latitude = rg.createVariable('grid_latitude', 'f4', ('MMAX', 'NMAX')) - grid_longitude = rg.createVariable('grid_longitude', 'f4', ('MMAX', 'NMAX')) - # define variable attributes + grid_latitude = rg.createVariable('grid_latitude', 'f4', ('MMAX', 'NMAX')) # noqa + grid_longitude = rg.createVariable('grid_longitude', 'f4', ('MMAX', 'NMAX')) # noqa + # Define variable attributes. grid.cf_role = 'grid_topology' grid.topology_dimension = 2 grid.node_dimensions = 'MMAX NMAX' - grid.face_dimensions = 'MMAXZ: MMAX (padding: low) NMAXZ: NMAX (padding: low)' + grid.face_dimensions = 'MMAXZ: MMAX (padding: low) NMAXZ: NMAX (padding: low)' # noqa grid.node_coordinates = 'XCOR YCOR' grid.face_coordinates = 'XZ YZ' grid.vertical_dimensions = 'KMAX: KMAX1 (padding: none)' @@ -227,7 +234,7 @@ def roms_sgrid(target_dir=TEST_FILES, nc_filename='test_sgrid_roms.nc'): grid = rg.createVariable('grid', 'i2') u = rg.createVariable('u', 'f4', ('time', 's_rho', 'eta_u', 'xi_u')) v = rg.createVariable('v', 'f4', ('time', 's_rho', 'eta_v', 'xi_v')) - fake_u = rg.createVariable('fake_u', 'f4', ('time', 's_rho', 'eta_u', 'xi_u')) + fake_u = rg.createVariable('fake_u', 'f4', ('time', 's_rho', 'eta_u', 'xi_u')) # noqa lon_centers = rg.createVariable('lon_rho', 'f4', ('eta_rho', 'xi_rho')) lat_centers = rg.createVariable('lat_rho', 'f4', ('eta_rho', 'xi_rho')) lon_nodes = rg.createVariable('lon_psi', 'f4', ('eta_psi', 'xi_psi')) @@ -236,7 +243,7 @@ def roms_sgrid(target_dir=TEST_FILES, nc_filename='test_sgrid_roms.nc'): lon_u = rg.createVariable('lon_u', 'f4', ('eta_u', 'xi_u')) lat_v = rg.createVariable('lat_v', 'f4', ('eta_v', 'xi_v')) lon_v = rg.createVariable('lon_v', 'f4', ('eta_v', 'xi_v')) - salt = rg.createVariable('salt', 'f4', ('time', 's_rho', 'eta_rho', 'xi_rho')) + salt = rg.createVariable('salt', 'f4', ('time', 's_rho', 'eta_rho', 'xi_rho')) # noqa zeta = rg.createVariable('zeta', 'f4', ('time', 'eta_rho', 'xi_rho')) # create variable attributes lon_centers.long_name = LON_GRID_CELL_CENTER_LONG_NAME[0] @@ -253,7 +260,7 @@ def roms_sgrid(target_dir=TEST_FILES, nc_filename='test_sgrid_roms.nc'): grid.cf_role = 'grid_topology' grid.topology_dimension = 2 grid.node_dimensions = 'xi_psi eta_psi' - grid.face_dimensions = 'xi_rho: xi_psi (padding: both) eta_rho: eta_psi (padding: both)' + grid.face_dimensions = 'xi_rho: xi_psi (padding: both) eta_rho: eta_psi (padding: both)' # noqa grid.edge1_dimensions = 'xi_u: xi_psi eta_u: eta_psi (padding: both)' grid.edge2_dimensions = 'xi_v: xi_psi (padding: both) eta_v: eta_psi' grid.node_coordinates = 'lon_psi lat_psi' @@ -307,23 +314,23 @@ def wrf_sgrid_2d(target_dir=TEST_FILES, nc_filename='test_sgrid_wrf_2.nc'): nc.createDimension('bottom_top', 3) nc.createDimension('south_north_stag', 6) nc.createDimension('bottom_top_stag', 4) - times = nc.createVariable('Times', np.dtype(str), ('Time', 'DateStrLen')) + times = nc.createVariable('Times', np.dtype(str), ('Time', 'DateStrLen')) # noqa xtimes = nc.createVariable('XTIME', 'f8', ('Time', )) - us = nc.createVariable('U', 'f4', ('Time', 'bottom_top', 'south_north', 'west_east_stag')) + us = nc.createVariable('U', 'f4', ('Time', 'bottom_top', 'south_north', 'west_east_stag')) # noqa us.grid = 'grid' us.location = 'edge1' - fake_u = nc.createVariable('FAKE_U', 'f4', ('Time', 'bottom_top', 'south_north', 'west_east_stag')) + fake_u = nc.createVariable('FAKE_U', 'f4', ('Time', 'bottom_top', 'south_north', 'west_east_stag')) # noqa fake_u.grid = 'grid' - vs = nc.createVariable('V', 'f4', ('Time', 'bottom_top', 'south_north_stag', 'west_east')) + vs = nc.createVariable('V', 'f4', ('Time', 'bottom_top', 'south_north_stag', 'west_east')) # noqa vs.grid = 'grid' vs.location = 'edge2' - ws = nc.createVariable('W', 'f4', ('Time', 'bottom_top_stag', 'south_north', 'west_east')) + ws = nc.createVariable('W', 'f4', ('Time', 'bottom_top_stag', 'south_north', 'west_east')) # noqa ws.grid = 'grid' ws.location = 'face' - temps = nc.createVariable('T', 'f4', ('Time', 'bottom_top', 'south_north', 'west_east')) + temps = nc.createVariable('T', 'f4', ('Time', 'bottom_top', 'south_north', 'west_east')) # noqa temps.grid = 'grid' temps.location = 'face' - snow = nc.createVariable('SNOW', 'f4', ('Time', 'south_north', 'west_east')) + snow = nc.createVariable('SNOW', 'f4', ('Time', 'south_north', 'west_east')) # noqa snow.grid = 'grid' xlats = nc.createVariable('XLAT', 'f4', ('south_north', 'west_east')) xlongs = nc.createVariable('XLONG', 'f4', ('south_north', 'west_east')) @@ -338,9 +345,9 @@ def wrf_sgrid_2d(target_dir=TEST_FILES, nc_filename='test_sgrid_wrf_2.nc'): 'south_north: south_north_stag (padding: none)' ) grid.face_coordinates = 'XLONG XLAT' - grid.vertical_dimensions = 'bottom_top: bottom_top_stag (padding: none)' - grid.edge1_dimensions = 'west_east_stag south_north: south_north_stag (padding: none)' - grid.edge2_dimensions = 'west_east: west_east_stag (padding: none) south_north_stag' + grid.vertical_dimensions = 'bottom_top: bottom_top_stag (padding: none)' # noqa + grid.edge1_dimensions = 'west_east_stag south_north: south_north_stag (padding: none)' # noqa + grid.edge2_dimensions = 'west_east: west_east_stag (padding: none) south_north_stag' # noqa times[:] = np.random.random(size=(2, 3)).astype(str) xtimes[:] = np.random.random(size=(2,)) us[:, :, :, :] = np.random.random(size=(2, 3, 5, 5)) @@ -362,8 +369,8 @@ def wrf_sgrid(target_dir=TEST_FILES, nc_filename='test_sgrid_wrf.nc'): """ file_name = os.path.join(target_dir, nc_filename) - with Dataset(file_name, 'w') as fg: - # create dimensions + with Dataset(file_name, 'w') as fg: + # Create dimensions. fg.createDimension('Time', 2) fg.createDimension('DateStrLen', 3) fg.createDimension('west_east', 4) @@ -372,33 +379,33 @@ def wrf_sgrid(target_dir=TEST_FILES, nc_filename='test_sgrid_wrf.nc'): fg.createDimension('bottom_top', 3) fg.createDimension('south_north_stag', 6) fg.createDimension('bottom_top_stag', 4) - # create variables - times = fg.createVariable('Times', np.dtype(str), ('Time', 'DateStrLen')) + # Create variables. + times = fg.createVariable('Times', np.dtype(str), ('Time', 'DateStrLen')) # noqa xtimes = fg.createVariable('XTIME', 'f8', ('Time',)) xtimes.standard_name = 'time' - us = fg.createVariable('U', 'f4', ('Time', 'bottom_top', 'south_north', 'west_east_stag')) + us = fg.createVariable('U', 'f4', ('Time', 'bottom_top', 'south_north', 'west_east_stag')) # noqa us.grid = 'grid' us.location = 'face1' - vs = fg.createVariable('V', 'f4', ('Time', 'bottom_top', 'south_north_stag', 'west_east')) + vs = fg.createVariable('V', 'f4', ('Time', 'bottom_top', 'south_north_stag', 'west_east')) # noqa vs.grid = 'grid' vs.location = 'face2' - ws = fg.createVariable('W', 'f4', ('Time', 'bottom_top_stag', 'south_north', 'west_east')) + ws = fg.createVariable('W', 'f4', ('Time', 'bottom_top_stag', 'south_north', 'west_east')) # noqa ws.grid = 'grid' ws.location = 'face3' - temps = fg.createVariable('T', 'f4', ('Time', 'bottom_top', 'south_north', 'west_east')) + temps = fg.createVariable('T', 'f4', ('Time', 'bottom_top', 'south_north', 'west_east')) # noqa temps.grid = 'grid' temps.location = 'volume' - xlats = fg.createVariable('XLAT', 'f4', ('Time', 'south_north', 'west_east')) - xlongs = fg.createVariable('XLONG', 'f4', ('Time', 'south_north', 'west_east')) + xlats = fg.createVariable('XLAT', 'f4', ('Time', 'south_north', 'west_east')) # noqa + xlongs = fg.createVariable('XLONG', 'f4', ('Time', 'south_north', 'west_east')) # noqa znus = fg.createVariable('ZNU', 'f4', ('Time', 'bottom_top')) znws = fg.createVariable('ZNW', 'f4', ('Time', 'bottom_top_stag')) grid = fg.createVariable('grid', 'i2') grid.cf_role = 'grid_topology' grid.topology_dimension = 3 - grid.node_dimensions = 'west_east_stag south_north_stag bottom_top_stag' + grid.node_dimensions = 'west_east_stag south_north_stag bottom_top_stag' # noqa grid.volume_dimensions = ('west_east: west_east_stag (padding: none) ' - 'south_north: south_north_stag (padding: none) ' - 'bottom_top: bottom_top_stag (padding: none)') + 'south_north: south_north_stag (padding: none) ' # noqa + 'bottom_top: bottom_top_stag (padding: none)') # noqa grid.volume_coordinates = 'XLONG XLAT ZNU' # create fake data times[:] = np.random.random(size=(2, 3)).astype(str) @@ -414,7 +421,7 @@ def wrf_sgrid(target_dir=TEST_FILES, nc_filename='test_sgrid_wrf.nc'): return file_name -def non_compliant_sgrid(target_dir=TEST_FILES, nc_filename='test_noncompliant_sgrid.nc'): +def non_compliant_sgrid(target_dir=TEST_FILES, nc_filename='test_noncompliant_sgrid.nc'): # noqa """ Create a netCDF file that is structurally similar to ROMS output. Dimension and variable names may differ @@ -451,8 +458,8 @@ def non_compliant_sgrid(target_dir=TEST_FILES, nc_filename='test_noncompliant_sg grid = rg.createVariable('grid', 'i2') u = rg.createVariable('u', 'f4', ('time', 'z_center', 'y_u', 'x_u')) v = rg.createVariable('v', 'f4', ('time', 'z_center', 'y_v', 'x_v')) - lon_centers = rg.createVariable('lon_center', 'f4', ('y_center', 'x_center')) - lat_centers = rg.createVariable('lat_center', 'f4', ('y_center', 'x_center')) + lon_centers = rg.createVariable('lon_center', 'f4', ('y_center', 'x_center')) # noqa + lat_centers = rg.createVariable('lat_center', 'f4', ('y_center', 'x_center')) # noqa lon_nodes = rg.createVariable('lon_node', 'f4', ('y_node', 'x_node')) lat_nodes = rg.createVariable('lat_node', 'f4', ('y_node', 'x_node')) lat_u = rg.createVariable('lat_u', 'f4', ('y_u', 'x_u')) @@ -466,7 +473,7 @@ def non_compliant_sgrid(target_dir=TEST_FILES, nc_filename='test_noncompliant_sg lat_nodes.long_name = LAT_GRID_CELL_NODE_LONG_NAME[0] grid.topology_dimension = 2 grid.node_dimensions = 'x_node y_node' - grid.face_dimensions = 'x_center: x_node (padding: both) y_center: y_node (padding: both)' + grid.face_dimensions = 'x_center: x_node (padding: both) y_center: y_node (padding: both)' # noqa grid.edge1_dimensions = 'x_u: x_node y_u: y_node (padding: both)' grid.edge2_dimensions = 'x_v: x_node (padding: both) y_v: y_node' grid.node_coordinates = 'lon_node lat_node' @@ -485,8 +492,10 @@ def non_compliant_sgrid(target_dir=TEST_FILES, nc_filename='test_noncompliant_sg y_us[:] = np.random.random(size=(4,)) x_vs[:] = np.random.random(size=(4,)) y_vs[:] = np.random.random(size=(3,)) - u[:, :, :, :] = np.random.random(size=(2, 2, 4, 3)) # x-directed velocities - v[:] = np.random.random(size=(2, 2, 3, 4)) # y-directed velocities + # X-directed velocities. + u[:, :, :, :] = np.random.random(size=(2, 2, 4, 3)) + # Y-directed velocities. + v[:] = np.random.random(size=(2, 2, 3, 4)) lat_u[:] = np.random.random(size=(4, 3)) lon_u[:] = np.random.random(size=(4, 3)) lat_v[:] = np.random.random(size=(3, 4)) diff --git a/pysgrid/utils.py b/pysgrid/utils.py index 9d30387..c35327b 100644 --- a/pysgrid/utils.py +++ b/pysgrid/utils.py @@ -3,17 +3,19 @@ @author: ayan ''' + +from __future__ import (absolute_import, division, print_function) + from collections import namedtuple import numpy as np -GridPadding = namedtuple('GridPadding', ['mesh_topology_var', # the variable containing the padding information - 'face_dim', # the topology attribute - 'node_dim', # node dimension within the topology attribute - 'padding' # padding type for the node dimension - ] - ) +GridPadding = namedtuple('GridPadding', + ['mesh_topology_var', # Padding information. + 'face_dim', # The topology attribute. + 'node_dim', # Node dimension. + 'padding']) # Padding type for the node dimension. def pair_arrays(x_array, y_array): @@ -75,13 +77,16 @@ def determine_variable_slicing(sgrid_obj, nc_variable, method='center'): used to trim data before averaging to grid cell centers; grid cell nodes will be supported later. - :param sgrid_obj: an SGrid object derived from a netCDF file or netCDF4.Dataset object + :param sgrid_obj: an SGrid object derived from a netCDF file or + netCDF4.Dataset object. :type sgrid_obj: sgrid.SGrid - :param nc_dataset: a netCDF4.Dataset object from which the sgrid_obj was derived + :param nc_dataset: a netCDF4.Dataset object from which + the sgrid_obj was derived. :type nc_dataset: netCDF4.Dataset - :param str variable: the name of a variable to be sliced - :param str method: slice method for analysis at grid cell centers or grid cell nodes; accepts either 'center' or 'node' - :return: the slice for the varible for the given method + :param str variable: the name of a variable to be sliced. + :param str method: slice method for analysis at grid cell centers or grid + cell nodes; accepts either 'center' or 'node'. + :return: the slice for the variable for the given method. :rtype: tuple """ @@ -93,16 +98,14 @@ def determine_variable_slicing(sgrid_obj, nc_variable, method='center'): separate_edge_dim_exists = does_intersection_exist(var_dims, node_dims) slice_indices = tuple() if separate_edge_dim_exists: - try: - padding = sgrid_obj.face_padding # try 2D sgrid - except AttributeError: - padding = sgrid_obj.volume_padding # if not 2D, try 3D sgrid + padding = sgrid_obj.face_padding else: padding = sgrid_obj.all_padding() if method == 'center': for var_dim in var_dims: try: - padding_info = next((info for info in padding if info.face_dim == var_dim)) + padding_info = next((info for info in padding if + info.face_dim == var_dim)) except StopIteration: slice_index = np.s_[:] slice_indices += (slice_index,) @@ -126,15 +129,16 @@ def infer_avg_axes(sgrid_obj, nc_var_obj): """ var_dims = nc_var_obj.dimensions node_dimensions = tuple(sgrid_obj.node_dimensions.split(' ')) - separate_edge_dim_exists = does_intersection_exist(node_dimensions, var_dims) + separate_edge_dim_exists = does_intersection_exist(node_dimensions, var_dims) # noqa if separate_edge_dim_exists: padding = sgrid_obj.get_all_face_padding() else: - padding = sgrid_obj.get_all_face_padding() + sgrid_obj.get_all_edge_padding() - # define center averaging axis for a variable + padding = sgrid_obj.get_all_face_padding() + sgrid_obj.get_all_edge_padding() # noqa + # Define center averaging axis for a variable. for var_dim in var_dims: try: - padding_info = next((info for info in padding if info.face_dim == var_dim)) + padding_info = next((info for info in padding if + info.face_dim == var_dim)) except StopIteration: padding_info = None avg_dim = None @@ -166,11 +170,12 @@ def infer_variable_location(sgrid, variable): except TypeError: edge_dims = [] var_dims = variable.dimensions - if does_intersection_exist(var_dims, face_dims) and not does_intersection_exist(var_dims, node_dims): + if (does_intersection_exist(var_dims, face_dims) and not + does_intersection_exist(var_dims, node_dims)): inferred_location = 'face' - elif ((does_intersection_exist(var_dims, face_dims) and does_intersection_exist(var_dims, node_dims)) or - (does_intersection_exist(var_dims, edge_dims)) - ): + elif ((does_intersection_exist(var_dims, face_dims) and + does_intersection_exist(var_dims, node_dims)) or + (does_intersection_exist(var_dims, edge_dims))): inferred_location = 'edge' else: inferred_location = None @@ -189,7 +194,7 @@ def calculate_bearing(lon_lat_1, lon_lat_2): lon_2 = lon_lat_2_radians[..., 0] lat_2 = lon_lat_2_radians[..., 1] x1 = np.sin(lon_2-lon_1) * np.cos(lat_2) - x2 = np.cos(lat_1)*np.sin(lat_2) - np.sin(lat_1)*np.cos(lat_2)*np.cos(lon_2-lon_1) + x2 = np.cos(lat_1)*np.sin(lat_2) - np.sin(lat_1)*np.cos(lat_2)*np.cos(lon_2-lon_1) # noqa bearing_radians = np.arctan2(x1, x2) bearing_degrees = bearing_radians * 180/np.pi return (bearing_degrees + 360) % 360 @@ -203,7 +208,7 @@ def calculate_angle_from_true_east(lon_lat_1, lon_lat_2): bearing = calculate_bearing(lon_lat_1, lon_lat_2) bearing_from_true_east = 90 - bearing bearing_from_true_east_radians = bearing_from_true_east * np.pi/180 - # not sure if this is the most appropriate thing to do for the last grid cell + # Unsure if this is the appropriate thing to do for the last grid cell. angles = np.append(bearing_from_true_east_radians, bearing_from_true_east_radians[..., -1:], axis=-1 diff --git a/pysgrid/variables.py b/pysgrid/variables.py index 10c0fcd..a2ba6f8 100644 --- a/pysgrid/variables.py +++ b/pysgrid/variables.py @@ -3,6 +3,9 @@ @author: ayan ''' + +from __future__ import (absolute_import, division, print_function) + from .read_netcdf import parse_axes, parse_vector_axis from .utils import determine_variable_slicing, infer_avg_axes, infer_variable_location From 8f4a9fd2b7567bd2102998afe563bb04a383a109 Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Sun, 17 Jan 2016 11:24:46 -0300 Subject: [PATCH 09/11] Fix Travis-CI install. --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index e30a7d6..dc4037a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ sudo: false env: - PYTHON="2.7" - - PYTHON="3.3" - PYTHON="3.4" - PYTHON="3.5" @@ -15,7 +14,7 @@ before_install: - conda update --yes --all - travis_retry conda create --yes -n test python=$PYTHON --file requirements.txt - source activate test - - travis_retry conda --yes --file requirements-dev.txt + - travis_retry conda install --yes --file requirements-dev.txt - if [[ "$PYTHON" != "3.5" ]]; then travis_retry conda install --yes mock ; fi From cf204dceef3d61c6383e225fd6d999e16a49e55d Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Mon, 18 Jan 2016 11:59:47 -0300 Subject: [PATCH 10/11] Some small fixes. --- MANIFEST.in | 1 + README.md | 2 +- pysgrid/read_netcdf.py | 18 ++++++++--------- pysgrid/sgrid.py | 29 ++++++++++++--------------- pysgrid/utils.py | 11 +++++------ requirements.txt | 2 +- setup.py | 45 +++++++++++++++++++++--------------------- 7 files changed, 52 insertions(+), 56 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index 0905189..66c7391 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,3 @@ include *.txt include README.md +recursive-include pysgrid *.py diff --git a/README.md b/README.md index f50a243..61bef8c 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,4 @@ [![Build Status](https://travis-ci.org/sgrid/pysgrid.svg?branch=master)](https://travis-ci.org/sgrid/pysgrid) -Python tools for sgrid +Python tools for SGRID. diff --git a/pysgrid/read_netcdf.py b/pysgrid/read_netcdf.py index b587c1f..a03b798 100644 --- a/pysgrid/read_netcdf.py +++ b/pysgrid/read_netcdf.py @@ -70,8 +70,8 @@ def parse_padding(padding_str, mesh_topology_var): raw_dim, raw_sub_dim, raw_padding_var = padding_match dim = raw_dim.split(':')[0] sub_dim = raw_sub_dim - # Remove parentheses. (That is why regular expressions are bad! You - # need a commend to explain what is going on.) + # Remove parentheses. (That is why regular expressions are bad! + # You need a commend to explain what is going on!!) cleaned_padding_var = re.sub('[\(\)]', '', raw_padding_var) # Get the padding value and remove spaces. padding_type = cleaned_padding_var.split(':')[1].strip() @@ -124,11 +124,11 @@ def parse_vector_axis(variable_standard_name): class NetCDFDataset(object): - def __init__(self, nc_dataset_obj): - self.ncd = nc_dataset_obj + def __init__(self, nc): + self.nc = nc # in case a user as a version netcdf C library < 4.1.2 try: - self._filepath = nc_dataset_obj.filepath() + self._filepath = nc.filepath() except ValueError: self._filepath = None self.sgrid_compliant_file() @@ -139,7 +139,7 @@ def find_node_coordinates(self, node_dimensions): cell vertices. """ - nc_vars = self.ncd.variables + nc_vars = self.nc.variables node_dims = node_dimensions.split(' ') node_dim_set = set(node_dims) x_node_coordinate = None @@ -169,7 +169,7 @@ def find_node_coordinates(self, node_dimensions): return None def find_variables_by_attr(self, **kwargs): - nc_vars = self.ncd.variables + nc_vars = self.nc.variables matches = [] keys = kwargs.keys() for nc_var in nc_vars.keys(): @@ -198,7 +198,7 @@ def find_coordinates_by_location(self, location_str, topology_dim): :param int topology_dim: the topology dimension of the grid """ - nc_vars = self.ncd.variables + nc_vars = self.nc.variables vars_with_location = self.find_variables_by_attr(location=location_str) x_coordinate = None y_coordinate = None @@ -276,7 +276,7 @@ def sgrid_compliant_file(self): """ try: - find_grid_topology_var(self.ncd) + find_grid_topology_var(self.nc) except ValueError as e: raise e diff --git a/pysgrid/sgrid.py b/pysgrid/sgrid.py index 0ec2036..aa95927 100644 --- a/pysgrid/sgrid.py +++ b/pysgrid/sgrid.py @@ -258,20 +258,20 @@ class SGridAttributes(object): attributes for either SGrid. """ - def __init__(self, nc_dataset, topology_dim, topology_variable): - self.nc_dataset = nc_dataset - self.ncd = NetCDFDataset(self.nc_dataset) + def __init__(self, nc, topology_dim, topology_variable): + self.nc = nc + self.ncd = NetCDFDataset(self.nc) self.topology_dim = topology_dim self.topology_variable = topology_variable - self.topology_var = self.nc_dataset.variables[self.topology_variable] + self.topology_var = self.nc.variables[self.topology_variable] def get_dimensions(self): - ds_dims = self.nc_dataset.dimensions + ds_dims = self.nc.dimensions grid_dims = [(ds_dim, len(ds_dims[ds_dim])) for ds_dim in ds_dims] return grid_dims def get_topology_var(self): - grid_topology_var = find_grid_topology_var(self.nc_dataset) + grid_topology_var = find_grid_topology_var(self.nc) return grid_topology_var def get_attr_dimension(self, attr_name): @@ -312,7 +312,7 @@ def get_node_coordinates(self): def get_variable_attributes(self, sgrid): dataset_variables = [] grid_variables = [] - nc_variables = self.nc_dataset.variables + nc_variables = self.nc.variables for nc_variable in nc_variables: nc_var = nc_variables[nc_variable] sgrid_var = SGridVariable.create_variable(nc_var, sgrid) @@ -324,11 +324,8 @@ def get_variable_attributes(self, sgrid): sgrid.grid_variables = grid_variables def get_angles(self): - try: - # get angles if they exist, otherwise calculate them - grid_angles = self.nc_dataset.variables['angle'][:] - angles = grid_angles - except KeyError: + angles = self.nc.variables.get('angle') + if not angles: cell_centers = self.get_cell_center_lat_lon() centers_start = cell_centers[..., :-1, :] centers_end = cell_centers[..., 1:, :] @@ -337,8 +334,8 @@ def get_angles(self): def get_cell_center_lat_lon(self): grid_cell_center_lon_var, grid_cell_center_lat_var = self.get_attr_coordinates('face_coordinates') # noqa - grid_cell_center_lat = self.nc_dataset.variables[grid_cell_center_lat_var][:] # noqa - grid_cell_center_lon = self.nc_dataset.variables[grid_cell_center_lon_var][:] # noqa + grid_cell_center_lat = self.nc[grid_cell_center_lat_var] + grid_cell_center_lon = self.nc[grid_cell_center_lon_var] return pair_arrays(grid_cell_center_lon, grid_cell_center_lat) def get_cell_node_lat_lon(self): @@ -347,8 +344,8 @@ def get_cell_node_lat_lon(self): except TypeError: cell_nodes = None else: - grid_cell_nodes_lat = self.nc_dataset.variables[grid_cell_nodes_lat_var][:] # noqa - grid_cell_nodes_lon = self.nc_dataset.variables[grid_cell_nodes_lon_var][:] # noqa + grid_cell_nodes_lat = self.nc[grid_cell_nodes_lat_var] + grid_cell_nodes_lon = self.nc[grid_cell_nodes_lon_var] cell_nodes = pair_arrays(grid_cell_nodes_lon, grid_cell_nodes_lat) return cell_nodes diff --git a/pysgrid/utils.py b/pysgrid/utils.py index c35327b..4062b28 100644 --- a/pysgrid/utils.py +++ b/pysgrid/utils.py @@ -144,14 +144,14 @@ def infer_avg_axes(sgrid_obj, nc_var_obj): avg_dim = None continue else: - avg_dim = var_dim # name of the dimension we're averaging over - break # exit the loop once it's found + avg_dim = var_dim # Name of the dimension we're averaging over. + break # Exit the loop once it's found. if padding_info is not None and avg_dim is not None: var_position = var_dims.index(avg_dim) center_avg_axis = len(var_dims) - var_position - 1 else: center_avg_axis = None - # define the node averaging axis for a variable + # Define the node averaging axis for a variable. if center_avg_axis == 1: node_avg_axis = 0 elif center_avg_axis == 0: @@ -202,7 +202,7 @@ def calculate_bearing(lon_lat_1, lon_lat_2): def calculate_angle_from_true_east(lon_lat_1, lon_lat_2): """ - Return the angle from true east in radians + Return the angle from true east in radians. """ bearing = calculate_bearing(lon_lat_1, lon_lat_2) @@ -211,6 +211,5 @@ def calculate_angle_from_true_east(lon_lat_1, lon_lat_2): # Unsure if this is the appropriate thing to do for the last grid cell. angles = np.append(bearing_from_true_east_radians, bearing_from_true_east_radians[..., -1:], - axis=-1 - ) + axis=-1) return angles diff --git a/requirements.txt b/requirements.txt index b2b141b..a4e44c5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ -netCDF4 +netCDF4 >=1.2.0 numpy diff --git a/setup.py b/setup.py index b47b000..5a1c66e 100644 --- a/setup.py +++ b/setup.py @@ -26,26 +26,25 @@ def readme(): with open('README.md') as f: return f.read() -setup( - name='pysgrid', - version=extract_version(), - description='Python package for working with staggered gridded data', - author='Andrew Yan', - author_email='ayan@usgs.gov', - url='https://github.com/sgrid/pysgrid', - packages=find_packages(), - license='BSD', - long_description=readme(), - install_requires=reqs, - tests_require=['mock', 'nose'], - classifiers=[ - 'Development Status :: 3 - Alpha', - 'Intended Audience :: Developers', - 'Intended Audience :: Science/Research', - 'License :: OSI Approved :: BSD License', - 'Operating System :: POSIX :: Linux', - 'Programming Language :: Python', - 'Topic :: Scientific/Engineering', - ], - include_package_data=True, -) +setup(name='pysgrid', + version=extract_version(), + description='Python package for working with staggered gridded data', + author='Andrew Yan', + author_email='ayan@usgs.gov', + url='https://github.com/sgrid/pysgrid', + packages=find_packages(), + license='BSD', + long_description=readme(), + install_requires=reqs, + tests_require=['mock', 'nose'], + classifiers=[ + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Developers', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: BSD License', + 'Operating System :: POSIX :: Linux', + 'Programming Language :: Python', + 'Topic :: Scientific/Engineering', + ], + include_package_data=True, + ) From 71718c399361da742497ea9550b8f966b21ddd51 Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Mon, 18 Jan 2016 14:24:30 -0300 Subject: [PATCH 11/11] Split nodes and centers. --- pysgrid/sgrid.py | 78 +++++++++++++++++++------------------ pysgrid/tests/test_sgrid.py | 51 ++++++++++++++---------- pysgrid/tests/test_utils.py | 3 +- pysgrid/variables.py | 6 +-- 4 files changed, 74 insertions(+), 64 deletions(-) diff --git a/pysgrid/sgrid.py b/pysgrid/sgrid.py index aa95927..533e7f4 100644 --- a/pysgrid/sgrid.py +++ b/pysgrid/sgrid.py @@ -24,8 +24,10 @@ class SGrid(object): topology_dimension = 2 def __init__(self, - nodes=None, - centers=None, + node_lon=None, + node_lat=None, + center_lon=None, + center_lat=None, edges=None, node_padding=None, edge1_padding=None, @@ -50,8 +52,10 @@ def __init__(self, *args, **kwargs): - self.nodes = nodes - self.centers = centers + self.node_lon = node_lon + self.node_lat = node_lat + self.center_lon = center_lon + self.center_lat = center_lat self.edges = edges self.node_padding = node_padding self.edge1_padding = edge1_padding @@ -91,12 +95,13 @@ def load_sgrid(cls, nc): edge2_coordinates = sa.get_attr_coordinates('edge2_coordinates') angles = sa.get_angles() vertical_dimensions, vertical_padding = sa.get_attr_dimension('vertical_dimensions') # noqa - centers = sa.get_cell_center_lat_lon() + node_lon, node_lat = sa.get_cell_node_lat_lon() + center_lon, center_lat = sa.get_cell_center_lat_lon() face_dimensions, face_padding = sa.get_attr_dimension('face_dimensions') # noqa face_coordinates = sa.get_attr_coordinates('face_coordinates') - nodes = sa.get_cell_node_lat_lon() sgrid = cls(angles=angles, - centers=centers, + center_lon=center_lon, + center_lat=center_lat, dimensions=dimensions, edge1_coordinates=edge1_coordinates, edge1_dimensions=edge1_dimensions, @@ -114,11 +119,11 @@ def load_sgrid(cls, nc): node_coordinates=node_coordinates, node_dimensions=node_dimensions, node_padding=None, - nodes=nodes, + node_lon=node_lon, + node_lat=node_lat, variables=None, vertical_dimensions=vertical_dimensions, - vertical_padding=vertical_padding - ) + vertical_padding=vertical_padding) sa.get_variable_attributes(sgrid) return sgrid @@ -161,24 +166,22 @@ def non_grid_variables(self): def _save_common_components(self, nc_file): grid_var = self.grid_topology_var - # create dimensions + # Create dimensions. for grid_dim in self.dimensions: dim_name, dim_size = grid_dim nc_file.createDimension(dim_name, dim_size) - # create variables + # Create variables. center_lon, center_lat = self.face_coordinates center_lon_obj = getattr(self, center_lon) center_lat_obj = getattr(self, center_lat) - grid_center_lon = nc_file.createVariable(center_lon_obj.variable, - center_lon_obj.dtype, - center_lon_obj.dimensions - ) - grid_center_lat = nc_file.createVariable(center_lat_obj.variable, - center_lat_obj.dtype, - center_lat_obj.dimensions - ) - grid_center_lon[:] = self.centers[..., 0] - grid_center_lat[:] = self.centers[..., 1] + center_lon = nc_file.createVariable(center_lon_obj.variable, + center_lon_obj.dtype, + center_lon_obj.dimensions) + center_lat = nc_file.createVariable(center_lat_obj.variable, + center_lat_obj.dtype, + center_lat_obj.dimensions) + center_lon[:] = self.center_lon[:] + center_lat[:] = self.center_lat[:] try: node_lon, node_lat = self.node_coordinates except TypeError: @@ -187,15 +190,13 @@ def _save_common_components(self, nc_file): node_lon_obj = getattr(self, node_lon) grid_node_lon = nc_file.createVariable(node_lon_obj.variable, node_lon_obj.dtype, - node_lon_obj.dimensions - ) + node_lon_obj.dimensions) node_lat_obj = getattr(self, node_lat) grid_node_lat = nc_file.createVariable(node_lat_obj.variable, node_lat_obj.dtype, - node_lat_obj.dimensions - ) - grid_node_lon[:] = self.nodes[..., 0] - grid_node_lat[:] = self.nodes[..., 1] + node_lat_obj.dimensions) + grid_node_lon[:] = self.node_lon[:] + grid_node_lat[:] = self.node_lat[:] grid_var_obj = getattr(self, grid_var) grid_vars = nc_file.createVariable(grid_var_obj.variable, grid_var_obj.dtype) @@ -326,7 +327,9 @@ def get_variable_attributes(self, sgrid): def get_angles(self): angles = self.nc.variables.get('angle') if not angles: - cell_centers = self.get_cell_center_lat_lon() + # FIXME: Get rid of pair_arrays. + center_lon, center_lat = self.get_cell_center_lat_lon() + cell_centers = pair_arrays(center_lon, center_lat) centers_start = cell_centers[..., :-1, :] centers_end = cell_centers[..., 1:, :] angles = calculate_angle_from_true_east(centers_start, centers_end) @@ -334,20 +337,19 @@ def get_angles(self): def get_cell_center_lat_lon(self): grid_cell_center_lon_var, grid_cell_center_lat_var = self.get_attr_coordinates('face_coordinates') # noqa - grid_cell_center_lat = self.nc[grid_cell_center_lat_var] - grid_cell_center_lon = self.nc[grid_cell_center_lon_var] - return pair_arrays(grid_cell_center_lon, grid_cell_center_lat) + center_lat = self.nc[grid_cell_center_lat_var] + center_lon = self.nc[grid_cell_center_lon_var] + return center_lon, center_lat def get_cell_node_lat_lon(self): try: - grid_cell_nodes_lon_var, grid_cell_nodes_lat_var = self.get_node_coordinates()[1] # noqa + node_lon_var, node_lat_var = self.get_node_coordinates()[1] except TypeError: - cell_nodes = None + node_lon, node_lat = None, None else: - grid_cell_nodes_lat = self.nc[grid_cell_nodes_lat_var] - grid_cell_nodes_lon = self.nc[grid_cell_nodes_lon_var] - cell_nodes = pair_arrays(grid_cell_nodes_lon, grid_cell_nodes_lat) - return cell_nodes + node_lat = self.nc[node_lat_var] + node_lon = self.nc[node_lon_var] + return node_lon, node_lat def load_sgrid(nc): diff --git a/pysgrid/tests/test_sgrid.py b/pysgrid/tests/test_sgrid.py index 0d34e86..ad5031a 100644 --- a/pysgrid/tests/test_sgrid.py +++ b/pysgrid/tests/test_sgrid.py @@ -88,11 +88,13 @@ def setUp(self): self.sg_obj = load_sgrid(self.sgrid_test_file) self.write_path = os.path.join(CURRENT_DIR, 'test_sgrid_write.nc') - def test_centers(self): - centers = self.sg_obj.centers - centers_shape = centers.shape - expected_shape = (4, 4, 2) - self.assertEqual(centers_shape, expected_shape) + def test_center_lon(self): + center_lon = self.sg_obj.center_lon + self.assertEqual(center_lon.shape, (4, 4)) + + def test_center_lat(self): + center_lat = self.sg_obj.center_lat + self.assertEqual(center_lat.shape, (4, 4)) def test_variables(self): dataset_vars = self.sg_obj.variables @@ -226,15 +228,21 @@ def test_face_coordinate_inference(self): expected_face_coordinates = (u'XZ', u'YZ') self.assertEqual(face_coordinates, expected_face_coordinates) - def test_grid_cell_centers(self): - centers = self.sgrid_obj.centers - centers_shape = (4, 4, 2) - self.assertEqual(centers.shape, centers_shape) + def test_center_lon(self): + center_lon = self.sgrid_obj.center_lon + self.assertEqual(center_lon.shape, (4, 4)) + + def test_center_lat(self): + center_lat = self.sgrid_obj.center_lat + self.assertEqual(center_lat.shape, (4, 4)) - def test_grid_cell_nodes(self): - nodes = self.sgrid_obj.nodes - nodes_shape = (4, 4, 2) - self.assertEqual(nodes.shape, nodes_shape) + def test_node_lon(self): + node_lon = self.sgrid_obj.node_lon + self.assertEqual(node_lon.shape, (4, 4)) + + def test_node_lat(self): + node_lat = self.sgrid_obj.node_lat + self.assertEqual(node_lat.shape, (4, 4)) def test_grid_angles(self): angles = self.sgrid_obj.angles @@ -296,11 +304,13 @@ def tearDownClass(cls): def setUp(self): self.sg_obj = load_sgrid(self.sgrid_test_file) - def test_centers(self): - centers = self.sg_obj.centers - centers_shape = centers.shape - expected_shape = (4, 4, 2) - self.assertEqual(centers_shape, expected_shape) + def test_center_lon(self): + center_lon = self.sg_obj.center_lon + self.assertEqual(center_lon.shape, (4, 4)) + + def test_center_lat(self): + center_lat = self.sg_obj.center_lat + self.assertEqual(center_lat.shape, (4, 4)) def test_topology_dimension(self): topology_dim = self.sg_obj.topology_dimension @@ -408,8 +418,9 @@ def test_sgrid(self): self.assertIsInstance(self.target, SGrid) def test_nodes(self): - nodes = self.target.nodes - self.assertIsNone(nodes) + node_lon = self.target.node_lon + node_lat = self.target.node_lat + self.assertIsNone(node_lon) and self.assertIsNone(node_lat) def test_node_coordinates(self): node_coordinates = self.target.node_coordinates diff --git a/pysgrid/tests/test_utils.py b/pysgrid/tests/test_utils.py index be89172..e25a02d 100644 --- a/pysgrid/tests/test_utils.py +++ b/pysgrid/tests/test_utils.py @@ -90,8 +90,7 @@ def setUp(self): self.centers = np.array((self.vertical_1, self.vertical_2, self.vertical_3, - self.vertical_4 - )) + self.vertical_4)) def test_angle_from_true_east_calculation(self): bearing_start_points = self.centers[:, :-1, :] diff --git a/pysgrid/variables.py b/pysgrid/variables.py index a2ba6f8..173c42c 100644 --- a/pysgrid/variables.py +++ b/pysgrid/variables.py @@ -61,8 +61,7 @@ def create_variable(cls, nc_var_obj, sgrid_obj): center_axis, node_axis = infer_avg_axes(sgrid_obj, nc_var_obj) center_slicing = determine_variable_slicing(sgrid_obj, nc_var_obj, - method='center' - ) + method='center') dimensions = nc_var_obj.dimensions dtype = nc_var_obj.dtype try: @@ -111,6 +110,5 @@ def create_variable(cls, nc_var_obj, sgrid_obj): location=location, standard_name=standard_name, vector_axis=vector_axis, - coordinates=coordinates - ) + coordinates=coordinates) return sgrid_var