Skip to content

Instantly share code, notes, and snippets.

@rsignell-usgs
Last active October 25, 2017 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rsignell-usgs/032e8d787da566fc3d666011c514799b to your computer and use it in GitHub Desktop.
Save rsignell-usgs/032e8d787da566fc3d666011c514799b to your computer and use it in GitHub Desktop.
tmp/geotiffs2nc.ipynb
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-10-25T14:14:43.451558Z",
"end_time": "2017-10-25T14:14:44.279468Z"
},
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "import urllib.request\nimport Nio\nimport xarray as xr",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-10-25T14:14:44.282440Z",
"end_time": "2017-10-25T14:14:44.286968Z"
},
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "url='http://thredds.ucar.edu/thredds/fileServer/grib/NCEP/WW3/Regional_Alaska/WW3_Regional_Alaska_20171012_0000.grib2'\nfname = 'ww3_test.grib2'",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-10-25T14:14:44.290699Z",
"end_time": "2017-10-25T14:14:48.728048Z"
},
"trusted": true
},
"cell_type": "code",
"source": "urllib.request.urlretrieve(url, fname)",
"execution_count": 3,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 3,
"data": {
"text/plain": "('ww3_test.grib2', <http.client.HTTPMessage at 0x7f94d4cf4198>)"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-10-25T14:14:48.731536Z",
"end_time": "2017-10-25T14:14:48.787956Z"
},
"trusted": true
},
"cell_type": "code",
"source": "nc = Nio.open_file(fname)",
"execution_count": 4,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-10-25T14:14:48.791023Z",
"end_time": "2017-10-25T14:14:48.895258Z"
},
"trusted": true
},
"cell_type": "code",
"source": "nc.variables",
"execution_count": 5,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 5,
"data": {
"text/plain": "{'WDIR_P0_L1_GLL0': <Nio.NioVariable object at 0x7f951850fe10>, 'WIND_P0_L1_GLL0': <Nio.NioVariable object at 0x7f94c5f6ea90>, 'UGRD_P0_L1_GLL0': <Nio.NioVariable object at 0x7f94d4d11128>, 'VGRD_P0_L1_GLL0': <Nio.NioVariable object at 0x7f94d4d111d0>, 'HTSGW_P0_L1_GLL0': <Nio.NioVariable object at 0x7f94d4d11278>, 'WVDIR_P0_L1_GLL0': <Nio.NioVariable object at 0x7f94d4d11320>, 'WVHGT_P0_L1_GLL0': <Nio.NioVariable object at 0x7f94d4d113c8>, 'WVPER_P0_L1_GLL0': <Nio.NioVariable object at 0x7f94d4d11470>, 'SWDIR_P0_L241_GLL0': <Nio.NioVariable object at 0x7f94d4d11518>, 'SWELL_P0_L241_GLL0': <Nio.NioVariable object at 0x7f94d4d115c0>, 'SWPER_P0_L241_GLL0': <Nio.NioVariable object at 0x7f94d4d11668>, 'DIRPW_P0_L1_GLL0': <Nio.NioVariable object at 0x7f94d4d11710>, 'PERPW_P0_L1_GLL0': <Nio.NioVariable object at 0x7f94d4d117b8>, 'WSTP_P0_L1_GLL0': <Nio.NioVariable object at 0x7f94d4d11860>, 'lv_OSEQD0': <Nio.NioVariable object at 0x7f94d4d11908>, 'lat_0': <Nio.NioVariable object at 0x7f94d4d11940>, 'lon_0': <Nio.NioVariable object at 0x7f94d4d119b0>, 'forecast_time0': <Nio.NioVariable object at 0x7f94d4d11a20>}"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-10-25T14:14:48.899033Z",
"end_time": "2017-10-25T14:14:49.261308Z"
},
"trusted": true
},
"cell_type": "code",
"source": "ds = xr.open_dataset(fname, engine='pynio')",
"execution_count": 6,
"outputs": [
{
"output_type": "error",
"ename": "AttributeError",
"evalue": "'nioDict' object has no attribute 'iteritems'",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-6-8ba3ce7b7c40>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mxr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen_dataset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mengine\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'pynio'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/home/usgs/miniconda/envs/IOOS3/lib/python3.6/site-packages/xarray/backends/api.py\u001b[0m in \u001b[0;36mopen_dataset\u001b[0;34m(filename_or_obj, group, decode_cf, mask_and_scale, decode_times, autoclose, concat_characters, decode_coords, engine, chunks, lock, cache, drop_variables)\u001b[0m\n\u001b[1;32m 299\u001b[0m \u001b[0mlock\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_default_lock\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename_or_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mengine\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 300\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mclose_on_error\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstore\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 301\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mmaybe_decode_store\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstore\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlock\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 302\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 303\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;34m'scipy'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/usgs/miniconda/envs/IOOS3/lib/python3.6/site-packages/xarray/backends/api.py\u001b[0m in \u001b[0;36mmaybe_decode_store\u001b[0;34m(store, lock)\u001b[0m\n\u001b[1;32m 223\u001b[0m \u001b[0mstore\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmask_and_scale\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmask_and_scale\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdecode_times\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdecode_times\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 224\u001b[0m \u001b[0mconcat_characters\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconcat_characters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdecode_coords\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdecode_coords\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 225\u001b[0;31m drop_variables=drop_variables)\n\u001b[0m\u001b[1;32m 226\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 227\u001b[0m \u001b[0m_protect_dataset_variables_inplace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/usgs/miniconda/envs/IOOS3/lib/python3.6/site-packages/xarray/conventions.py\u001b[0m in \u001b[0;36mdecode_cf\u001b[0;34m(obj, concat_characters, mask_and_scale, decode_times, decode_coords, drop_variables)\u001b[0m\n\u001b[1;32m 944\u001b[0m \u001b[0mencoding\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 945\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mAbstractDataStore\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 946\u001b[0;31m \u001b[0mvars\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattrs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 947\u001b[0m \u001b[0mextra_coords\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 948\u001b[0m \u001b[0mfile_obj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/usgs/miniconda/envs/IOOS3/lib/python3.6/site-packages/xarray/backends/common.py\u001b[0m in \u001b[0;36mload\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 120\u001b[0m \"\"\"\n\u001b[1;32m 121\u001b[0m variables = FrozenOrderedDict((_decode_variable_name(k), v)\n\u001b[0;32m--> 122\u001b[0;31m for k, v in self.get_variables().items())\n\u001b[0m\u001b[1;32m 123\u001b[0m \u001b[0mattributes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mFrozenOrderedDict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_attrs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 124\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mvariables\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattributes\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/usgs/miniconda/envs/IOOS3/lib/python3.6/site-packages/xarray/backends/pynio_.py\u001b[0m in \u001b[0;36mget_variables\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mensure_open\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mautoclose\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 56\u001b[0m return FrozenOrderedDict((k, self.open_store_variable(k, v))\n\u001b[0;32m---> 57\u001b[0;31m for k, v in self.ds.variables.iteritems())\n\u001b[0m\u001b[1;32m 58\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_attrs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mAttributeError\u001b[0m: 'nioDict' object has no attribute 'iteritems'"
]
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"_draft": {
"nbviewer_url": "https://gist.github.com/032e8d787da566fc3d666011c514799b"
},
"gist": {
"id": "032e8d787da566fc3d666011c514799b",
"data": {
"description": "tmp/geotiffs2nc.ipynb",
"public": true
}
},
"gist_id": "536ae476814d37d6f5ffa7539c83fb31",
"kernelspec": {
"name": "conda-env-IOOS3-py",
"display_name": "Python [conda env:IOOS3]",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.6.1",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment