mirror of
https://github.com/Unidata/python-awips.git
synced 2025-02-23 22:57:56 -05:00
148 lines
440 KiB
Text
148 lines
440 KiB
Text
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"The simplest example of requesting and plotting AWIPS gridded data with Matplotlib and Cartopy."
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 14,
|
||
|
"metadata": {
|
||
|
"collapsed": false
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"from awips.dataaccess import DataAccessLayer\n",
|
||
|
"import cartopy.crs as ccrs\n",
|
||
|
"import matplotlib.pyplot as plt\n",
|
||
|
"from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER\n",
|
||
|
"%matplotlib inline\n",
|
||
|
"\n",
|
||
|
"DataAccessLayer.changeEDEXHost(\"edex-cloud.unidata.ucar.edu\")\n",
|
||
|
"request = DataAccessLayer.newDataRequest()\n",
|
||
|
"request.setDatatype(\"grid\")\n",
|
||
|
"request.setLocationNames(\"RAP13\")\n",
|
||
|
"request.setParameters(\"T\")\n",
|
||
|
"request.setLevels(\"2.0FHAG\")\n",
|
||
|
"cycles = DataAccessLayer.getAvailableTimes(request, True)\n",
|
||
|
"times = DataAccessLayer.getAvailableTimes(request)\n",
|
||
|
"fcstRun = DataAccessLayer.getForecastRun(cycles[-1], times)\n",
|
||
|
"response = DataAccessLayer.getGridData(request, [fcstRun[0]])\n",
|
||
|
"grid = response[0]\n",
|
||
|
"data = grid.getRawData()\n",
|
||
|
"lons, lats = grid.getLatLonCoords()\n",
|
||
|
"bbox = [lons.min(), lons.max(), lats.min(), lats.max()]\n",
|
||
|
"\n",
|
||
|
"def make_map(bbox, projection=ccrs.PlateCarree()):\n",
|
||
|
" fig, ax = plt.subplots(figsize=(16, 9),\n",
|
||
|
" subplot_kw=dict(projection=projection))\n",
|
||
|
" ax.set_extent(bbox)\n",
|
||
|
" ax.coastlines(resolution='50m')\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": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"# pcolormesh"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 15,
|
||
|
"metadata": {
|
||
|
"collapsed": false
|
||
|
},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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\n5KuvvuLvv/9m8eLFXtf
|
||
|
"text/plain": [
|
||
|
"<matplotlib.figure.Figure at 0x1104fb550>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"cmap = plt.get_cmap('rainbow')\n",
|
||
|
"fig, ax = make_map(bbox=bbox)\n",
|
||
|
"cs = ax.pcolormesh(lons, lats, data, cmap=cmap)\n",
|
||
|
"cbar = fig.colorbar(cs, extend='both', shrink=0.5, orientation='horizontal')\n",
|
||
|
"cbar.set_label(str(grid.getLocationName()) +\" \" \\\n",
|
||
|
" + str(grid.getLevel()) + \" \" \\\n",
|
||
|
" + str(grid.getParameter()) \\\n",
|
||
|
" + \" (\" + str(grid.getUnit()) + \") \" \\\n",
|
||
|
" + \"valid \" + str(grid.getDataTime().getRefTime()))"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"# contourf"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 16,
|
||
|
"metadata": {
|
||
|
"collapsed": false
|
||
|
},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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\na2trJk+eTGBgYIGGcZO
|
||
|
"text/plain": [
|
||
|
"<matplotlib.figure.Figure at 0x1104fb110>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"fig2, ax2 = make_map(bbox=bbox)\n",
|
||
|
"cs2 = ax2.contourf(lons, lats, data, 80, cmap=cmap,\n",
|
||
|
" vmin=data.min(), vmax=data.max())\n",
|
||
|
"cbar2 = fig2.colorbar(cs2, extend='both', shrink=0.5, orientation='horizontal')\n",
|
||
|
"cbar2.set_label(str(grid.getLocationName()) +\" \" \\\n",
|
||
|
" + str(grid.getLevel()) + \" \" \\\n",
|
||
|
" + str(grid.getParameter()) \\\n",
|
||
|
" + \" (\" + str(grid.getUnit()) + \") \" \\\n",
|
||
|
" + \"valid \" + str(grid.getDataTime().getRefTime()))"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"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.11"
|
||
|
}
|
||
|
},
|
||
|
"nbformat": 4,
|
||
|
"nbformat_minor": 0
|
||
|
}
|