python-awips/examples/notebooks/Model_Sounding_Data.ipynb

496 lines
157 KiB
Text
Raw Normal View History

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The EDEX modelsounding plugin creates 64-level vertical profiles from GFS and ETA (NAM) model runs. As of AWIPS release 16.1.5, the available locations are limited to stations around OAX (Omaha) due to localization (16.2.2 will allow requests for all stations)."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"from awips.dataaccess import DataAccessLayer\n",
"DataAccessLayer.changeEDEXHost(\"edex-cloud.unidata.ucar.edu\")\n",
"request = DataAccessLayer.newDataRequest()\n",
"request.setDatatype(\"modelsounding\")\n",
"request.addIdentifier(\"reportType\", \"ETA\")\n",
"request.setParameters(\"pressure\",\"temperature\",\"specHum\",\"uComp\",\"vComp\")"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CHE\n",
"CRL\n",
"EAX\n",
"HSI\n",
"KDSM\n",
"KFOE\n",
"KFRM\n",
"KFSD\n",
"KGRI\n",
"KLNK\n",
"KMCI\n",
"KMCW\n",
"KMHE\n",
"KMHK\n",
"KMKC\n",
"KOFK\n",
"KOMA\n",
"KRSL\n",
"KSLN\n",
"KSTJ\n",
"KSUX\n",
"KTOP\n",
"KYKN\n",
"OAX\n",
"P#8\n",
"P#9\n",
"P#A\n",
"P#G\n",
"P#I\n",
"RDD\n",
"WSC\n"
]
}
],
"source": [
"availableLocs = DataAccessLayer.getAvailableLocationNames(request)\n",
"availableLocs.sort()\n",
"for loc in availableLocs: print loc"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"request.setLocationNames(\"WSC\")"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"using 2016-07-15 00:00:00\n"
]
}
],
"source": [
"cycles = DataAccessLayer.getAvailableTimes(request, True)\n",
"print \"using \", str(cycles[-1]) # 0 for FIRST time, -1 for LAST"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"allTimes = DataAccessLayer.getAvailableTimes(request)\n",
"\n",
"# Build one complete model run\n",
"fcstRun = []\n",
"for time in allTimes:\n",
" if str(time)[:19] == str(cycles[-1]):\n",
" fcstRun.append(time)\n",
"\n",
"#for time in fcstRun: print time"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Request data for a single time"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"response = DataAccessLayer.getGeometryData(request,times=[fcstRun[0]])"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"parms = ['pressure', 'uComp', 'temperature', 'specHum', 'vComp']\n",
"site = WSC\n",
"datetime = 1970-01-17 23:55:40.800000 (0)\n",
"geom = POINT (-93.55999755859375 44.13999938964844)\n",
"\n",
"2016-07-15 00:00:00 (0)\n"
]
}
],
"source": [
"print \"parms = \" + str(response[0].getParameters())\n",
"print \"site = \" + response[0].getLocationName()\n",
"print \"datetime = \" + str(response[0].getDataTime())\n",
"print \"geom = \" + str(response[0].getGeometry())\n",
"print \"\"\n",
"\n",
"print fcstRun[0]\n",
"\n",
"tmp,prs,sh,uc,vc = [],[],[],[],[]\n",
"for ob in response:\n",
" tmp.append(float(ob.getString(\"temperature\")))\n",
" prs.append(float(ob.getString(\"pressure\")))\n",
" sh.append(float(ob.getString(\"specHum\")))\n",
" uc.append(float(ob.getString(\"uComp\")))\n",
" vc.append(float(ob.getString(\"vComp\")))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create data arrays and calculate dewpoint from spec. humidity"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [],
"source": [
"import matplotlib.tri as mtri\n",
"import matplotlib.pyplot as plt\n",
"from mpl_toolkits.axes_grid1.inset_locator import inset_axes\n",
"from math import exp, log\n",
"import numpy as np\n",
"\n",
"from metpy.calc import get_wind_components, lcl, dry_lapse, parcel_profile, dewpoint\n",
"from metpy.calc import get_wind_speed,get_wind_dir, thermo, vapor_pressure\n",
"from metpy.plots import SkewT, Hodograph\n",
"from metpy.units import units, concatenate\n",
"\n",
"pres = np.array(prs)\n",
"# we can use units.* here...\n",
"t = (np.array(tmp)-273.16) * units.degC\n",
"p = np.array(pres)/100 * units.mbar\n",
"s = np.array(sh)\n",
"\n",
"u,v = np.array(uc)*1.94384,np.array(vc)*1.94384 # m/s to knots\n",
"spd = get_wind_speed(u, v) * units.knots\n",
"dir = get_wind_dir(u, v) * units.deg\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## dewpoint from specific humidity\n",
"\n",
"Because the modelsounding plugin does not return dewpoint values, we must calculate the profile of dewpoint ourselves. Here are shown three different examples of calculating dewpoint from specific humidity, including a manual calculation using in NCEP AWIPS. \n",
"\n",
"### 1) metpy calculated mixing ratio and vapor pressure"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"rmix = (s/(1-s)) *1000 * units('g/kg')\n",
"e = vapor_pressure(p, rmix)\n",
"td = dewpoint(e)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2) metpy calculated assuming spec. humidity = vapor pressure"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"td2 = dewpoint(vapor_pressure(p, s))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3) NCEP AWIPS soundingrequest plugin\n",
"based on GEMPAK/NSHARP, from https://github.com/Unidata/awips2-ncep/blob/unidata_16.2.2/edex/gov.noaa.nws.ncep.edex.plugin.soundingrequest/src/gov/noaa/nws/ncep/edex/plugin/soundingrequest/handler/MergeSounding.java#L1783"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/awips2/python/lib/python2.7/site-packages/ipykernel/__main__.py:8: RuntimeWarning: divide by zero encountered in log\n",
"/awips2/python/lib/python2.7/site-packages/ipykernel/__main__.py:8: RuntimeWarning: invalid value encountered in divide\n"
]
}
],
"source": [
"# new arrays\n",
"ntmp,nprs,nsh = np.array(tmp)-273.16,np.array(prs),np.array(sh)\n",
"\n",
"# where p=pressure(pa), T=temp(C), T0=reference temp(273.16)\n",
"rh = 0.263*nprs*nsh / (np.exp(17.67*ntmp/(ntmp+273.16-29.65)))\n",
"vaps = 6.112 * np.exp((17.67 * ntmp) / (ntmp + 243.5))\n",
"vapr = rh * vaps / 100\n",
"dwpc = np.array(243.5 * (np.log(6.112) - np.log(vapr)) / (np.log(vapr) - np.log(6.112) - 17.67)) * units.degC"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-92.478017542 degC 13.9116676363 degC\n",
"-92.4780705498 degC 13.7561341768 degC\n",
"-92.4797373828 degC 14.0048053654 degC\n"
]
}
],
"source": [
"print min(td), max(td)\n",
"print min(td2), max(td2)\n",
"print min(dwpc), max(dwpc)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plot with MetPy"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n+c87PZCIRCKqq6uzHcM
"text/plain": [
"<matplotlib.figure.Figure at 0x7ff302fb9910>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"plt.rcParams['figure.figsize'] = (12, 14)\n",
"\n",
"# Create a skewT plot\n",
"skew = SkewT()\n",
"\n",
"# Plot the data\n",
"skew.plot(p, t, 'r')\n",
"skew.plot(p, td, 'g')\n",
"skew.plot(p, td2, 'y')\n",
"skew.plot(p, dwpc, 'b')\n",
"\n",
"skew.plot_barbs(p, u, v)\n",
"skew.ax.set_ylim(1000, 100)\n",
"skew.ax.set_xlim(-40, 60)\n",
"\n",
"# Calculate LCL height and plot as black dot\n",
"l = lcl(p[0], t[0], td[0])\n",
"lcl_temp = dry_lapse(concatenate((p[0], l)), t[0])[-1].to('degC')\n",
"skew.plot(l, lcl_temp, 'ko', markerfacecolor='black')\n",
"\n",
"# An example of a slanted line at constant T -- in this case the 0 isotherm\n",
"l = skew.ax.axvline(0, color='c', linestyle='--', linewidth=2)\n",
"\n",
"# Draw hodograph\n",
"ax_hod = inset_axes(skew.ax, '40%', '40%', loc=3)\n",
"h = Hodograph(ax_hod, component_range=80.)\n",
"h.add_grid(increment=20)\n",
"h.plot_colormapped(u, v, spd)\n",
"\n",
"# Show the plot\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"972.6 millibar 13.9116676363 degC 13.7561341768 degC 14.0048053654 degC\n",
"968.1 millibar 13.795309995 degC 13.6403678572 degC 13.8880708933 degC\n",
"963.5 millibar 13.7070447902 degC 13.5523590688 degC 13.7996354037 degC\n",
"958.9 millibar 13.6034524052 degC 13.4491913275 degC 13.6957654641 degC\n",
"954.2 millibar 13.5430001542 degC 13.3886616121 degC 13.6353487333 degC\n",
"949.4 millibar 13.4955511833 degC 13.3409697537 degC 13.5880407718 degC\n",
"944.6 millibar 13.4327262238 degC 13.2780704887 degC 13.5252528231 degC\n",
"939.6 millibar 13.3214175505 degC 13.1671951789 degC 13.4136681067 degC\n",
"934.5 millibar 13.1780826854 degC 13.0246305994 degC 13.2698459052 degC\n",
"929.1 millibar 12.9840646965 degC 12.8318898986 degC 13.0750280636 degC\n",
"923.7 millibar 12.7587117079 degC 12.6081461774 degC 12.8486706315 degC\n",
"917.9 millibar 12.5100387601 degC 12.3612538202 degC 12.5988843283 degC\n",
"911.9 millibar 12.2408903895 degC 12.094052447 degC 12.3285202779 degC\n",
"905.6 millibar 11.8707829848 degC 11.7268890509 degC 11.956583349 degC\n",
"898.9 millibar 11.5848832854 degC 11.4429383778 degC 11.6694675004 degC\n",
"891.7 millibar 10.7024681841 degC 10.5684121493 degC 10.782184737 degC\n",
"883.7 millibar 10.3675094536 degC 10.2355668766 degC 10.4459068236 degC\n",
"874.4 millibar 9.57881581015 degC 9.4530891449 degC 9.65338390277 degC\n",
"863.7 millibar 9.06297448338 degC 8.9405219329 degC 9.13551253922 degC\n",
"851.4 millibar 8.52959620858 degC 8.41026712977 degC 8.6001943448 degC\n",
"837.3 millibar 7.8463517454 degC 7.73112740211 degC 7.91440526624 degC\n",
"821.3 millibar 7.05865450398 degC 6.94802011914 degC 7.12386015443 degC\n",
"803.3 millibar 6.13786844357 degC 6.0324581565 degC 6.19983982692 degC\n",
"783.1 millibar 4.96638946899 degC 4.86761101024 degC 5.02427139898 degC\n",
"760.7 millibar 3.49028027301 degC 3.39965174803 degC 3.54314509801 degC\n",
"736.3 millibar 2.01375469655 degC 1.93042025112 degC 2.06212831003 degC\n",
"710.0 millibar -0.0814385343568 degC -0.154522524712 degC -0.039357011505 degC\n",
"682.1 millibar -3.3723881986 degC -3.43052326592 degC -3.33943614929 degC\n",
"653.2 millibar -7.36829567182 degC -7.41166867572 degC -7.34434733517 degC\n",
"623.5 millibar -13.9853134577 degC -14.0107174126 degC -13.9722607858 degC\n",
"593.2 millibar -27.435498651 degC -27.4428708731 degC -27.4332329337 degC\n",
"562.4 millibar -28.0124591985 degC -28.0197921015 degC -28.0102992759 degC\n",
"531.4 millibar -21.9801025193 degC -21.9942242484 degC -21.9740756264 degC\n",
"500.3 millibar -20.9592100388 degC -20.9757571349 degC -20.951921361 degC\n",
"469.1 millibar -24.7329831608 degC -24.7452030637 degC -24.7284099272 degC\n",
"438.1 millibar -26.2142515313 degC -26.2255402965 degC -26.2103242606 degC\n",
"407.3 millibar -28.0020354968 degC -28.0121700893 degC -27.9988837034 degC\n",
"376.9 millibar -32.7137422477 degC -32.7204493669 degC -32.712754352 degC\n",
"346.8 millibar -37.2686443182 degC -37.2730902274 degC -37.2691563363 degC\n",
"317.4 millibar -40.851081496 degC -40.8543253515 degC -40.8524421238 degC\n",
"289.3 millibar -46.189552697 degC -46.1914523695 degC -46.1918308 degC\n",
"263.1 millibar -51.9389914221 degC -51.9400147149 degC -51.9418882721 degC\n",
"239.4 millibar -63.7858391889 degC -63.7860643717 degC -63.7889037616 degC\n",
"218.0 millibar nan degC nan degC nan degC\n",
"198.7 millibar nan degC nan degC nan degC\n",
"181.3 millibar nan degC nan degC nan degC\n",
"165.6 millibar nan degC nan degC nan degC\n",
"151.1 millibar nan degC nan degC nan degC\n",
"137.3 millibar nan degC nan degC nan degC\n",
"124.0 millibar nan degC nan degC nan degC\n",
"111.3 millibar nan degC nan degC nan degC\n",
"98.9 millibar nan degC nan degC nan degC\n",
"86.9 millibar nan degC nan degC nan degC\n",
"75.1 millibar -79.2738862478 degC -79.27394893 degC -79.2769313644 degC\n",
"63.6 millibar -80.3091524605 degC -80.3092143549 degC -80.3120880214 degC\n",
"52.3 millibar -81.5110089092 degC -81.5110698952 degC -81.5138426851 degC\n",
"41.0 millibar -82.9820927066 degC -82.98215259 degC -82.9847684189 degC\n",
"29.8 millibar -84.8703007167 degC -84.8703591996 degC -84.872780293 degC\n",
"18.7 millibar -87.5495154933 degC -87.5495720173 degC -87.5517264671 degC\n",
"7.6 millibar -92.478017542 degC -92.4780705498 degC -92.4797373828 degC\n"
]
}
],
"source": [
"# manually inspect the three calculated dewpoint profiles\n",
"for i in range(0,len(p)):\n",
" print p[i], td[i], td2[i], dwpc[i]"
]
},
{
"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.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}