Skip to content

Instantly share code, notes, and snippets.

@rsignell-usgs
Created October 25, 2017 14:15
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/434d3d98cf8d27ba0f9d8e828edaafdc to your computer and use it in GitHub Desktop.
Save rsignell-usgs/434d3d98cf8d27ba0f9d8e828edaafdc to your computer and use it in GitHub Desktop.
tmp/geotiffs2nc.ipynb
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