mirror of
https://github.com/Unidata/python-awips.git
synced 2025-02-24 06:57:56 -05:00
389 lines
423 KiB
Text
389 lines
423 KiB
Text
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## List Available Parameters for a Grid Name"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 40,
|
||
|
"metadata": {
|
||
|
"collapsed": false,
|
||
|
"scrolled": true
|
||
|
},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"AV\n",
|
||
|
"BLI\n",
|
||
|
"CAPE\n",
|
||
|
"CFRZR6hr\n",
|
||
|
"CICEP6hr\n",
|
||
|
"CIn\n",
|
||
|
"CP6hr\n",
|
||
|
"CRAIN6hr\n",
|
||
|
"CSNOW6hr\n",
|
||
|
"GH\n",
|
||
|
"P\n",
|
||
|
"P6hr\n",
|
||
|
"PMSL\n",
|
||
|
"PVV\n",
|
||
|
"PW\n",
|
||
|
"RH\n",
|
||
|
"SLI\n",
|
||
|
"T\n",
|
||
|
"TP6hr\n",
|
||
|
"VSS\n",
|
||
|
"WEASD\n",
|
||
|
"WGH\n",
|
||
|
"uW\n",
|
||
|
"vW\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"from awips.dataaccess import DataAccessLayer\n",
|
||
|
"\n",
|
||
|
"# Select HRRR\n",
|
||
|
"DataAccessLayer.changeEDEXHost(\"edex-cloud.unidata.ucar.edu\")\n",
|
||
|
"request = DataAccessLayer.newDataRequest()\n",
|
||
|
"request.setDatatype(\"grid\")\n",
|
||
|
"request.setLocationNames(\"GFS40\")\n",
|
||
|
"\n",
|
||
|
"# Print parm list\n",
|
||
|
"available_parms = DataAccessLayer.getAvailableParameters(request)\n",
|
||
|
"available_parms.sort()\n",
|
||
|
"for parm in available_parms:\n",
|
||
|
" print parm"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## List Available Levels for Parameter"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 41,
|
||
|
"metadata": {
|
||
|
"collapsed": false
|
||
|
},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"1000.0MB\n",
|
||
|
"950.0MB\n",
|
||
|
"925.0MB\n",
|
||
|
"900.0MB\n",
|
||
|
"875.0MB\n",
|
||
|
"850.0MB\n",
|
||
|
"825.0MB\n",
|
||
|
"800.0MB\n",
|
||
|
"775.0MB\n",
|
||
|
"725.0MB\n",
|
||
|
"600.0MB\n",
|
||
|
"575.0MB\n",
|
||
|
"0.0_30.0BL\n",
|
||
|
"60.0_90.0BL\n",
|
||
|
"90.0_120.0BL\n",
|
||
|
"0.5PV\n",
|
||
|
"2.0PV\n",
|
||
|
"30.0_60.0BL\n",
|
||
|
"1.0PV\n",
|
||
|
"750.0MB\n",
|
||
|
"120.0_150.0BL\n",
|
||
|
"975.0MB\n",
|
||
|
"700.0MB\n",
|
||
|
"675.0MB\n",
|
||
|
"650.0MB\n",
|
||
|
"625.0MB\n",
|
||
|
"550.0MB\n",
|
||
|
"525.0MB\n",
|
||
|
"500.0MB\n",
|
||
|
"450.0MB\n",
|
||
|
"400.0MB\n",
|
||
|
"300.0MB\n",
|
||
|
"250.0MB\n",
|
||
|
"200.0MB\n",
|
||
|
"150.0MB\n",
|
||
|
"100.0MB\n",
|
||
|
"0.0TROP\n",
|
||
|
"1.5PV\n",
|
||
|
"150.0_180.0BL\n",
|
||
|
"350.0MB\n",
|
||
|
"10.0FHAG\n",
|
||
|
"0.0MAXW\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"# Set parm to u-wind\n",
|
||
|
"request.setParameters(\"uW\")\n",
|
||
|
"\n",
|
||
|
"# Print level list\n",
|
||
|
"available_levels = DataAccessLayer.getAvailableLevels(request)\n",
|
||
|
"available_levels.sort()\n",
|
||
|
"for level in available_levels:\n",
|
||
|
" print level"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## Construct Wind Field from U and V Components"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 46,
|
||
|
"metadata": {
|
||
|
"collapsed": false
|
||
|
},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"Time : 2016-04-20 18:00:00 (240)\n",
|
||
|
"Model: GFS40\n",
|
||
|
"Unit : m*sec^-1\n",
|
||
|
"Parms : vW vW\n",
|
||
|
"(185, 129)\n",
|
||
|
"windArray = [[ 1.47078204 1.69705617 0.69296461 ..., 9.390378 9.14996147 8.55599213] [ 8.23072243 8.20243835 8.31557465 ..., 1.48492408 0.56568539 0.39597979] [ 0.49497473 0.52325904 0.1979899 ..., 2.67286372 2.63043714 2.65872145] ..., [ 2.17788887 2.20617294 2.13546252 ..., 1.01823378 0.62225395 0.39597979] [ 0.02828427 0.8768124 1.51320839 ..., 6.47709799 6.68922997 6.84479332] [ 6.92964649 7.02864122 6.98621511 ..., 0.91923875 1.24450791 1.28693426]] knot\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"import numpy\n",
|
||
|
"from metpy.units import units\n",
|
||
|
"\n",
|
||
|
"# Set level for u-wind\n",
|
||
|
"request.setLevels(\"10.0FHAG\")\n",
|
||
|
"t = DataAccessLayer.getAvailableTimes(request)\n",
|
||
|
"# Select last time for u-wind\n",
|
||
|
"response = DataAccessLayer.getGridData(request, [t[-1]])\n",
|
||
|
"data_uw = response[-1]\n",
|
||
|
"lons,lats = data_uw.getLatLonCoords()\n",
|
||
|
"\n",
|
||
|
"# Select v-wind\n",
|
||
|
"request.setParameters(\"vW\")\n",
|
||
|
"# Select last time for v-wind\n",
|
||
|
"response = DataAccessLayer.getGridData(request, [t[-1]])\n",
|
||
|
"data_uv = response[-1]\n",
|
||
|
"\n",
|
||
|
"# Print \n",
|
||
|
"print 'Time :', t[-1]\n",
|
||
|
"print 'Model:', data_uv.getLocationName()\n",
|
||
|
"print 'Unit :', data_uv.getUnit()\n",
|
||
|
"print 'Parms :', data_uw.getParameter(), data_uv.getParameter()\n",
|
||
|
"print data_uv.getRawData().shape\n",
|
||
|
"\n",
|
||
|
"# Calculate total wind speed\n",
|
||
|
"spd = numpy.sqrt( data_uw.getRawData()**2 + data_uv.getRawData()**2 )\n",
|
||
|
"spd = spd * units.knot\n",
|
||
|
"print \"windArray =\", spd\n",
|
||
|
"\n",
|
||
|
"data = data_uw"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## Plotting a Grid with Basemap\n",
|
||
|
"\n",
|
||
|
"Using **matplotlib**, **numpy**, and **basemap**:"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 43,
|
||
|
"metadata": {
|
||
|
"collapsed": false
|
||
|
},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArUAAAGICAYAAABfrBivAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXdUFEnXhx9yzghiViToihkVc1YMmLOIac1pRcEcMWcx\nB9Q1u+a4rlnMYdVVUVREUVFAVKKShu8PP3hBB5g8A85zzhxxprr6dld1169v37qlkZ6ejho1atSo\nUaNGjRo1+RlNZRugRo0aNWrUqFGjRo20qEWtGjVq1KhRo0aNmnyPWtSqUaNGjRo1atSoyfeoRa0a\nNWrUqFGjRo2afI9a1KpRo0aNGjVq1KjJ92iLWlBDQ0OdJkGNGjVq1KhRo0aNQkhPT9cQp7xYntr0\n9PQ8P9euXcPNzY3KlStz7tw5IiIi2LRpE2PGjGHevHkYGhqioaFB27ZtCQgIICoqKse67ty5g4eH\nB3Z2djRs2BBra2v09fUZOXIk6enppKSkcPPmTRYuXEjZsmUz7YyPjxfJVnl+/v33Xw4fPqx0O36F\nT6NGjXj9+rXS7VD0RyAQ8PbtW86ePcvSpUvx8vKiZs2aFCpUCB0dHezs7Chfvjy9e/dmx44d3Llz\nh7i4uBzrS0pKIiwsjJs3b3Lo0CGmTp2KlZUVAwYMIDQ0VOnHq+qf6dOnK90GWXwiIiKoV68ebdu2\nJSYmRun2qD8/fzZu3Ejx4sV58eKF0m3J6RMYGEidOnUwMjLC0dGRXr16sXz5cq5cuUJCQoLQbcLC\nwvD09OTt27dKt1/9Uf5HEjRE3VBDQyM9t7KhoaFMmDCBa9euMWrUKACOHj3Kw4cPadGiBVWrViUk\nJISgoCAeP37Mly9fANDU1KR+/fq0b9+ejh07Urx4cW7dusWsWbO4f/8+vr6+DBw4kA4dOnDnzh0C\nAgLo27cvNWrU4Pr165QsWZK3b9/y+fNnAPz8/ChXrhxVqlShdOnSEp0UWXDv3j3CwsJo166d0mz4\nVQgMDMTf3599+/Zl+14gEBAeHs6TJ094/vw5oaGhvHnzhsjISNLS0gDQ0NBAS0uLM2fOoKlZcKJx\nEhISePbsGU+fPs32ef78OVZWVpQqVYoKFSrw8uVL3r9/z/v374mJicHGxgY7Ozvs7OwoU6YMI0aM\nyPbAKG8i45IACAmPUdg+ZcUm/0UMHDlepnXaFzGTaX158ei/B/Tt2YVOXXvgO2W61NdEfmzHDJ6+\nlY/t/Zo4SLV9QEAAvr6+7N69G3Nzc6Kjo6lTpw7GxsYyslC2pKamEhQUxJ07d7h9+za3b98mKCgI\nBwcHqlevjqurK66urjx69Ijx48fz+fNnHj9+jKOjo7JNV6NkNDQ0SBfTUyu1qP3y5Qtz5swhICAA\nNzc3QkNDiY6Opl27drRv357GjRujp6eXbZv09O/egKCgIIKCgnjy5AlBQUFoa2vj5+dHrVq1qF27\nNidOnMDc3ByAAQMGMG7cOMqVK5fpAa1Xrx7W1tZER0dTu3Ztnj17lm0/aWlpShMqalGrWGrUqIGB\ngUHGRZD5vYmJCcWLF6dkyZKULVsWZ2dnHB0d0dXVzSyzatUqrl69yu7du5VhukIRCASEhYVx69Yt\nPn/+TPHixSlSpAh2dnZYW1ujpaWlFLsyxCzkXyGU30XtkYP7meg9hnlLltOuY2ep6sqvbZgVeYna\nDCQRtx8/fqRIkSJoa2tTqFAhrK2tSUpKon79+qxZs0YOVsqHpKQk/vvvP27fvp0pdvX19dmwYQNu\nbm58+vQJQ0NDZZupRskoVNSmpKSwbt06/Pz88PDwoHfv3nTt2pVDhw5Rq1YticVkeno6Fy9eZOnS\npdy6dYuhQ4cybNgwbGxsctxGIBBgbm5OUlISw4YNo3///nTt2pXt27dTvXp1ieyQFrWozV94eXnh\n4uLCuHHjlG3KL0VWMZtBfhVEsha1ihK06enpzJ89gwP7drN1119UqFhJ4rrya9v9iLwFLYBzse/t\n6+aU89gmjOTk5GwP5W/fvqVixYq8efMGIyMjmdqoaCIiIqhQoQJRUVHKNkWNCiCJqBV5olgG6enp\nHDlyBB8fH0qXLs3Zs2dxcXHBy8uLUaNGUbt2bXGrzIaGhgaNGjWiUaNGPH36lOXLl+Pk5MSCBQsY\nNGiQ0G00NTWJjY3N9l2rVq3o2LEjFhYWQuM03N3dmT17NgYGBlLZq6ZgsG3bNurUqUONGjWoX7++\nss2RO8LEpJpfkzu3bnJo/z5OXbhCoULiCSwoOEI2A0UKWoDrwZFS1qZLuYrVmLdyM607dgfEeyDK\nqf3si5hhY6In9Dd58ebNG4oXL67QfWbw77//AlClShU0NMTSUWpUCLFE7Z07dxg3bhzR0dH4+/vT\nokULAF6/fs3x48cJCQmRqXHOzs60bduWgwcPUqVKFbG2nTVrFr1790ZDQ+OnT1paGvPmzaNatWps\n376datWqydRu+P7a+8iRI9y7d++n38zMzIiJ+flGEh0dzYABA6hcubLM7VGTN6dPn8bNzY1z587l\n+mYgP6MWs/kDRYYdvHgejGvNWmIJ2oImZDNQhKCVBx5de7Nz0+pMUSsqebVjxv1CUeJWWaL2woUL\ndOjQga9fv5KWloatrS2XLl1S6HwCNbJBLFHr4eHBzJkz6devH9ra/9t0yZIlDBw4MDP+VVQEAgGj\nRo3C0tISFxcXXFxcKFu2bGbdJ06coF+/fhw7dgxXV1ex6jYyMspVCO/Zs4fdu3fj7u7OyJEjGTly\nJF+/fiUxMZHExEQSEhKy/ZvT3z9+p6enR69evejSpQsBAQF52vns2TNKliyJnp4eAoGA2bNn8+XL\nFxo2bCjW8aqRHmNjY3bt2oW7uzu3b99WSDy2WmRmp6CKJVXmZcgL7MuKFt+pbh/VpHaDZiye4Uvo\ni2BKl3UiJDwmzwejvNoyax2ymsAZG/OFe7evYWhoxIfYNARpaTStaEtKSgopKSmcOnVK4aL2wIED\nDB06lJUrV+Lv709UVBTJyckkJiYq1A41skGsmNrY2FhMTEyyfR8VFYWTkxOPHz/Gzs5O5B1v3boV\nZ2dnOnXqRP/+/Xn06BEPHz4kPDwcJycnnJycOH/+PMeOHaNmzZpiHZQ4vH37lt9//50rV65gZGSE\noaEhhoaGmX+L+110dDSbN2/m7t27eHl5MXjwYBwcsg8YAoGAo0ePMm/ePG7dugWAt7c3ZcuWZffu\n3bx79w59fX2sra3ldtxqcubDhw/o6OhgZWUlt318+hyDlra2Ovzl//manKpsE6Tm5fNgyjg4ibWN\nkbEJCfFxuZYx0BU7Skwsgp8GMXPuQrr26JVn2YIuahXlqc0afiALoqMiGdyzDaMmzKR+E/effs8Q\np8puv/XL57Ft3fJcy/zzzz80a9ZMMfasX8/MmTM5ceIEffv2pVq1auzevZtr166J/XZYjexRSvaD\nKVOm8PfffzN06FC+ffvG169f+fbtG6mpqYwePRoLCwuh9ZmZmaGnp4e7uzvbtm3L/D4hIYGgoCAe\nPXpE9erVcXFxEed4VIaQkBA2bNjAli1bqFSpEkOGDKF58+bs3r2bJUuWYGpqyvv37/n69SulSpWi\nWbNmbNmyhXLlynHo0CGOHz9OSkoK/fv3V/ahqJEhGR6P+X4zKVWmDN17eirZIuUyZ+5CuvcdrGwz\nZEKnpq64t+sq1jbGJqbEx8XmXRCwlNMr4G0BG/GZNI0+/QeKVF7ZwkieKDqeVhZERbxnpFcnWnh0\npt+wsTKtW148fRtDWloqifGxJMTFkBAXy8unD7j69wFevwhSiA2zZ89m69at/PPPP9jb23Pu3DmW\nL19O3bp1WbRoEd7e3nh7e2eblKdGsShkotiP2NjY4OjoyNWrV9HX1yctLY0tW7bg4uLCH3/88VP5\nT58+cfXqVeLj46lUqRLu7tmfKo2MjDLz1uVn7O3tWbBgAbNmzeLAgQMsX76c7t2706JFCzZs2EB4\neDhTp07l+vXrVK1aFVN
|
||
|
"text/plain": [
|
||
|
"<matplotlib.figure.Figure at 0x7fd4164c2110>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"%matplotlib inline\n",
|
||
|
"import matplotlib.tri as mtri\n",
|
||
|
"import matplotlib.pyplot as plt\n",
|
||
|
"from matplotlib.transforms import offset_copy\n",
|
||
|
"from mpl_toolkits.basemap import Basemap, cm\n",
|
||
|
"import numpy as np\n",
|
||
|
"from numpy import linspace, transpose\n",
|
||
|
"from numpy import meshgrid\n",
|
||
|
"\n",
|
||
|
"plt.figure(figsize=(12, 12), dpi=100)\n",
|
||
|
"\n",
|
||
|
"map = Basemap(projection='cyl',\n",
|
||
|
" resolution = 'c',\n",
|
||
|
" llcrnrlon = lons.min(), llcrnrlat = lats.min(),\n",
|
||
|
" urcrnrlon =lons.max(), urcrnrlat = lats.max()\n",
|
||
|
")\n",
|
||
|
"map.drawcoastlines()\n",
|
||
|
"map.drawstates()\n",
|
||
|
"map.drawcountries()\n",
|
||
|
"\n",
|
||
|
"# \n",
|
||
|
"# We have to reproject our grid, see https://stackoverflow.com/questions/31822553/m\n",
|
||
|
"#\n",
|
||
|
"x = linspace(0, map.urcrnrx, data.getRawData().shape[1])\n",
|
||
|
"y = linspace(0, map.urcrnry, data.getRawData().shape[0])\n",
|
||
|
"xx, yy = meshgrid(x, y)\n",
|
||
|
"ngrid = len(x)\n",
|
||
|
"rlons = np.repeat(np.linspace(np.min(lons), np.max(lons), ngrid),\n",
|
||
|
" ngrid).reshape(ngrid, ngrid)\n",
|
||
|
"rlats = np.repeat(np.linspace(np.min(lats), np.max(lats), ngrid),\n",
|
||
|
" ngrid).reshape(ngrid, ngrid).T\n",
|
||
|
"tli = mtri.LinearTriInterpolator(mtri.Triangulation(lons.flatten(),\n",
|
||
|
" lats.flatten()), spd.flatten())\n",
|
||
|
"rdata = tli(rlons, rlats)\n",
|
||
|
"#cs = map.contourf(rlons, rlats, rdata, latlon=True)\n",
|
||
|
"cs = map.contourf(rlons, rlats, rdata, latlon=True, vmin=0, vmax=20, cmap='BuPu')\n",
|
||
|
"\n",
|
||
|
"# Add colorbar\n",
|
||
|
"cbar = map.colorbar(cs,location='bottom',pad=\"5%\")\n",
|
||
|
"\n",
|
||
|
"cbar.set_label(\"Wind Speed (Knots)\")\n",
|
||
|
"\n",
|
||
|
"# Show plot\n",
|
||
|
"plt.show()\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"or use **pcolormesh** rather than **contourf**"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 44,
|
||
|
"metadata": {
|
||
|
"collapsed": false
|
||
|
},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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\n7p3bVKpaXbympABYhGt
|
||
|
"text/plain": [
|
||
|
"<matplotlib.figure.Figure at 0x7fd410082390>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"plt.figure(figsize=(12, 12), dpi=100)\n",
|
||
|
"map = Basemap(projection='cyl',\n",
|
||
|
" resolution = 'c',\n",
|
||
|
" llcrnrlon = lons.min(), llcrnrlat = lats.min(),\n",
|
||
|
" urcrnrlon =lons.max(), urcrnrlat = lats.max()\n",
|
||
|
")\n",
|
||
|
"map.drawcoastlines()\n",
|
||
|
"map.drawstates()\n",
|
||
|
"map.drawcountries()\n",
|
||
|
"cs = map.pcolormesh(rlons, rlats, rdata, latlon=True, vmin=0, vmax=20, cmap='BuPu')\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## Plotting a Grid with Cartopy"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 45,
|
||
|
"metadata": {
|
||
|
"collapsed": false
|
||
|
},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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\nXyuv2UkjuUj5AjAa9ev
|
||
|
"text/plain": [
|
||
|
"<matplotlib.figure.Figure at 0x7fd4183d5e10>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"import os\n",
|
||
|
"import matplotlib.pyplot as plt\n",
|
||
|
"import numpy as np\n",
|
||
|
"import iris\n",
|
||
|
"import cartopy.crs as ccrs\n",
|
||
|
"from cartopy import config\n",
|
||
|
"\n",
|
||
|
"lon,lat = data.getLatLonCoords()\n",
|
||
|
"plt.figure(figsize=(12, 12), dpi=100)\n",
|
||
|
"ax = plt.axes(projection=ccrs.PlateCarree())\n",
|
||
|
"cs = plt.contourf(rlons, rlats, rdata, 60, transform=ccrs.PlateCarree(), vmin=0, vmax=20, cmap='BuPu')\n",
|
||
|
"ax.coastlines()\n",
|
||
|
"ax.gridlines()\n",
|
||
|
"\n",
|
||
|
"# add colorbar\n",
|
||
|
"cbar = plt.colorbar(orientation='horizontal')\n",
|
||
|
"cbar.set_label(\"Wind Speed (Knots)\")\n",
|
||
|
"plt.show()"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": null,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": []
|
||
|
}
|
||
|
],
|
||
|
"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
|
||
|
}
|