2020-09-09 20:02:35 +00:00
<!DOCTYPE html>
< html class = "writer-html5" lang = "en" >
< head >
2021-03-23 16:15:37 +00:00
< meta charset = "utf-8" / >
2020-09-09 20:02:35 +00:00
2021-03-23 16:15:37 +00:00
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
2020-09-09 20:02:35 +00:00
< title > Forecast Model Vertical Sounding — python-awips documentation< / title >
< link rel = "stylesheet" href = "../../_static/css/theme.css" type = "text/css" / >
< link rel = "stylesheet" href = "../../_static/pygments.css" type = "text/css" / >
2021-06-01 19:34:54 +00:00
< link rel = "stylesheet" href = "../../_static/pygments.css" type = "text/css" / >
< link rel = "stylesheet" href = "../../_static/css/theme.css" type = "text/css" / >
2020-09-09 20:02:35 +00:00
2021-03-23 16:15:37 +00:00
2020-09-09 20:02:35 +00:00
2021-03-23 16:15:37 +00:00
2020-09-09 20:02:35 +00:00
<!-- [if lt IE 9]>
< script src = "../../_static/js/html5shiv.min.js" > < / script >
<![endif]-->
< script type = "text/javascript" id = "documentation_options" data-url_root = "../../" src = "../../_static/documentation_options.js" > < / script >
2021-06-01 19:34:54 +00:00
< script data-url_root = "../../" id = "documentation_options" src = "../../_static/documentation_options.js" > < / script >
2020-09-09 20:02:35 +00:00
< script src = "../../_static/jquery.js" > < / script >
< script src = "../../_static/underscore.js" > < / script >
< script src = "../../_static/doctools.js" > < / script >
< script type = "text/javascript" src = "../../_static/js/theme.js" > < / script >
< link rel = "author" title = "About these documents" href = "../../about.html" / >
< link rel = "index" title = "Index" href = "../../genindex.html" / >
< link rel = "search" title = "Search" href = "../../search.html" / >
2021-07-14 21:23:25 +00:00
< link rel = "next" title = "GOES CIRA Product Writer" href = "GOES_CIRA_Product_Writer.html" / >
2020-09-09 20:02:35 +00:00
< link rel = "prev" title = "Colored Surface Temperature Plot" href = "Colored_Surface_Temperature_Plot.html" / >
< / head >
< body class = "wy-body-for-nav" >
< div class = "wy-grid-for-nav" >
< nav data-toggle = "wy-nav-shift" class = "wy-nav-side" >
< div class = "wy-side-scroll" >
< div class = "wy-side-nav-search" >
2021-03-23 16:15:37 +00:00
< a href = "../../index.html" class = "icon icon-home" > python-awips
2020-09-09 20:02:35 +00:00
< / a >
< div class = "version" >
18.1.7
< / div >
< div role = "search" >
< form id = "rtd-search-form" class = "wy-form" action = "../../search.html" method = "get" >
< input type = "text" name = "q" placeholder = "Search docs" / >
< input type = "hidden" name = "check_keywords" value = "yes" / >
< input type = "hidden" name = "area" value = "default" / >
< / form >
< / div >
< / div >
< div class = "wy-menu wy-menu-vertical" data-spy = "affix" role = "navigation" aria-label = "main navigation" >
< ul class = "current" >
< li class = "toctree-l1" > < a class = "reference internal" href = "../../api/index.html" > API Documentation< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../../datatypes.html" > Available Data Types< / a > < / li >
< li class = "toctree-l1 current" > < a class = "reference internal" href = "../index.html" > Data Plotting Examples< / a > < ul class = "current" >
< li class = "toctree-l2" > < a class = "reference internal" href = "Colored_Surface_Temperature_Plot.html" > Colored Surface Temperature Plot< / a > < / li >
< li class = "toctree-l2 current" > < a class = "current reference internal" href = "#" > Forecast Model Vertical Sounding< / a > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "#skew-t-log-p" > Skew-T/Log-P< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#model-sounding-comparison" > Model Sounding Comparison< / a > < / li >
< / ul >
< / li >
2021-07-14 21:23:25 +00:00
< li class = "toctree-l2" > < a class = "reference internal" href = "GOES_CIRA_Product_Writer.html" > GOES CIRA Product Writer< / a > < / li >
2020-09-09 20:02:35 +00:00
< li class = "toctree-l2" > < a class = "reference internal" href = "GOES_Geostationary_Lightning_Mapper.html" > GOES Geostationary Lightning Mapper< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Grid_Levels_and_Parameters.html" > Grid Levels and Parameters< / a > < / li >
2021-06-01 21:35:01 +00:00
< li class = "toctree-l2" > < a class = "reference internal" href = "Grids_and_Cartopy.html" > Grids and Cartopy< / a > < / li >
2020-09-09 20:02:35 +00:00
< li class = "toctree-l2" > < a class = "reference internal" href = "METAR_Station_Plot_with_MetPy.html" > METAR Station Plot with MetPy< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Map_Resources_and_Topography.html" > Map Resources and Topography< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Model_Sounding_Data.html" > Model Sounding Data< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "NEXRAD_Level3_Radar.html" > NEXRAD Level3 Radar< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Precip_Accumulation-Region_Of_Interest.html" > Precip Accumulation-Region Of Interest< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Regional_Surface_Obs_Plot.html" > Regional Surface Obs Plot< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Satellite_Imagery.html" > Satellite Imagery< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Upper_Air_BUFR_Soundings.html" > Upper Air BUFR Soundings< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Watch_and_Warning_Polygons.html" > Watch and Warning Polygons< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../../dev.html" > Development Guide< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../../gridparms.html" > Grid Parameters< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../../about.html" > About Unidata AWIPS< / a > < / li >
< / ul >
< / div >
< / div >
< / nav >
< section data-toggle = "wy-nav-shift" class = "wy-nav-content-wrap" >
< nav class = "wy-nav-top" aria-label = "top navigation" >
< i data-toggle = "wy-nav-top" class = "fa fa-bars" > < / i >
< a href = "../../index.html" > python-awips< / a >
< / nav >
< div class = "wy-nav-content" >
< div class = "rst-content" >
2021-03-23 16:15:37 +00:00
2020-09-09 20:02:35 +00:00
< div role = "navigation" aria-label = "breadcrumbs navigation" >
< ul class = "wy-breadcrumbs" >
< li > < a href = "../../index.html" class = "icon icon-home" > < / a > » < / li >
< li > < a href = "../index.html" > Data Plotting Examples< / a > » < / li >
< li > Forecast Model Vertical Sounding< / li >
< li class = "wy-breadcrumbs-aside" >
2021-03-23 16:15:37 +00:00
2020-09-09 20:02:35 +00:00
< a href = "../../_sources/examples/generated/Forecast_Model_Vertical_Sounding.rst.txt" rel = "nofollow" > View page source< / a >
< / li >
< / ul >
< hr / >
< / div >
< div role = "main" class = "document" itemscope = "itemscope" itemtype = "http://schema.org/Article" >
< div itemprop = "articleBody" >
< div class = "section" id = "forecast-model-vertical-sounding" >
< h1 > Forecast Model Vertical Sounding< a class = "headerlink" href = "#forecast-model-vertical-sounding" title = "Permalink to this headline" > ¶< / a > < / h1 >
< p > < a class = "reference external" href = "http://nbviewer.ipython.org/github/Unidata/python-awips/blob/master/examples/notebooks/Forecast_Model_Vertical_Sounding.ipynb" > Notebook< / a >
The ModelSounding class allows us to create a vertical sounding through
any available AWIPS model with isobaric levels.< / p >
< ul class = "simple" >
< li > < p > A Shapely Point geometry is used to select longitude and latitude:
from shapely.geometry import Point point = Point(-104.67,39.87)< / p > < / li >
< li > < p > Parameters < code class = "docutils literal notranslate" > < span class = "pre" > ['T','DpT','uW','vW']< / span > < / code > are requested for all isobaric
levels available for the selected model.< / p > < / li >
< li > < p > There is a single-record query performed for < code class = "docutils literal notranslate" > < span class = "pre" > level< / span > < span class = "pre" > =< / span > < span class = "pre" > " 0.0FHAG" < / span > < / code > to
determine the surface pressure level.< / p > < / li >
< li > < p > Pay attention to units when switching models. This notebook was
written for the NAM 40km AWIPS model where temperature and dewpoint
are returned as Kelvin and wind components as m/s.< / p > < / li >
< / ul >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "o" > %< / span > < span class = "k" > matplotlib< / span > inline
< span class = "kn" > from< / span > < span class = "nn" > awips.dataaccess< / span > < span class = "kn" > import< / span > < span class = "n" > DataAccessLayer< / span > < span class = "p" > ,< / span > < span class = "n" > ModelSounding< / span >
< span class = "kn" > from< / span > < span class = "nn" > awips< / span > < span class = "kn" > import< / span > < span class = "n" > ThriftClient< / span >
< span class = "kn" > import< / span > < span class = "nn" > matplotlib.pyplot< / span > < span class = "k" > as< / span > < span class = "nn" > plt< / span >
< span class = "kn" > import< / span > < span class = "nn" > numpy< / span > < span class = "k" > as< / span > < span class = "nn" > np< / span >
< span class = "kn" > from< / span > < span class = "nn" > metpy.plots< / span > < span class = "kn" > import< / span > < span class = "n" > SkewT< / span > < span class = "p" > ,< / span > < span class = "n" > Hodograph< / span >
< span class = "kn" > from< / span > < span class = "nn" > metpy.units< / span > < span class = "kn" > import< / span > < span class = "n" > units< / span >
< span class = "kn" > from< / span > < span class = "nn" > mpl_toolkits.axes_grid1.inset_locator< / span > < span class = "kn" > import< / span > < span class = "n" > inset_axes< / span >
< span class = "kn" > from< / span > < span class = "nn" > math< / span > < span class = "kn" > import< / span > < span class = "n" > sqrt< / span >
< span class = "kn" > from< / span > < span class = "nn" > datetime< / span > < span class = "kn" > import< / span > < span class = "n" > datetime< / span > < span class = "p" > ,< / span > < span class = "n" > timedelta< / span >
< span class = "kn" > from< / span > < span class = "nn" > shapely.geometry< / span > < span class = "kn" > import< / span > < span class = "n" > Point< / span > < span class = "p" > ,< / span > < span class = "n" > Polygon< / span >
< span class = "kn" > import< / span > < span class = "nn" > shapely.wkb< / span >
< span class = "kn" > import< / span > < span class = "nn" > timeit< / span >
< span class = "n" > model< / span > < span class = "o" > =< / span > < span class = "s2" > " NAM40" < / span >
< span class = "n" > parms< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "s1" > ' T' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' DpT' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' uW' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' vW' < / span > < span class = "p" > ]< / span >
< span class = "n" > server< / span > < span class = "o" > =< / span > < span class = "s1" > ' edex-cloud.unidata.ucar.edu' < / span >
< span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > changeEDEXHost< / span > < span class = "p" > (< / span > < span class = "n" > server< / span > < span class = "p" > )< / span >
< span class = "c1" > # note the order is LON,lat and not lat,LON< / span >
< span class = "n" > point< / span > < span class = "o" > =< / span > < span class = "n" > Point< / span > < span class = "p" > (< / span > < span class = "o" > -< / span > < span class = "mf" > 104.67< / span > < span class = "p" > ,< / span > < span class = "mf" > 39.87< / span > < span class = "p" > )< / span >
< span class = "n" > inc< / span > < span class = "o" > =< / span > < span class = "mf" > 0.005< / span >
< span class = "n" > bbox< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > point< / span > < span class = "o" > .< / span > < span class = "n" > y< / span > < span class = "o" > -< / span > < span class = "n" > inc< / span > < span class = "p" > ,< / span > < span class = "n" > point< / span > < span class = "o" > .< / span > < span class = "n" > y< / span > < span class = "o" > +< / span > < span class = "n" > inc< / span > < span class = "p" > ,< / span > < span class = "n" > point< / span > < span class = "o" > .< / span > < span class = "n" > x< / span > < span class = "o" > -< / span > < span class = "n" > inc< / span > < span class = "p" > ,< / span > < span class = "n" > point< / span > < span class = "o" > .< / span > < span class = "n" > x< / span > < span class = "o" > +< / span > < span class = "n" > inc< / span > < span class = "p" > ]< / span >
< span class = "n" > polygon< / span > < span class = "o" > =< / span > < span class = "n" > Polygon< / span > < span class = "p" > ([(< / span > < span class = "n" > bbox< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ],< / span > < span class = "n" > bbox< / span > < span class = "p" > [< / span > < span class = "mi" > 2< / span > < span class = "p" > ]),(< / span > < span class = "n" > bbox< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ],< / span > < span class = "n" > bbox< / span > < span class = "p" > [< / span > < span class = "mi" > 3< / span > < span class = "p" > ]),< / span >
< span class = "p" > (< / span > < span class = "n" > bbox< / span > < span class = "p" > [< / span > < span class = "mi" > 1< / span > < span class = "p" > ],< / span > < span class = "n" > bbox< / span > < span class = "p" > [< / span > < span class = "mi" > 3< / span > < span class = "p" > ]),(< / span > < span class = "n" > bbox< / span > < span class = "p" > [< / span > < span class = "mi" > 1< / span > < span class = "p" > ],< / span > < span class = "n" > bbox< / span > < span class = "p" > [< / span > < span class = "mi" > 2< / span > < span class = "p" > ]),< / span >
< span class = "p" > (< / span > < span class = "n" > bbox< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ],< / span > < span class = "n" > bbox< / span > < span class = "p" > [< / span > < span class = "mi" > 2< / span > < span class = "p" > ])])< / span >
< span class = "c1" > # Get latest forecast cycle run< / span >
< span class = "n" > timeReq< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > newDataRequest< / span > < span class = "p" > (< / span > < span class = "s2" > " grid" < / span > < span class = "p" > )< / span >
< span class = "n" > timeReq< / span > < span class = "o" > .< / span > < span class = "n" > setLocationNames< / span > < span class = "p" > (< / span > < span class = "n" > model< / span > < span class = "p" > )< / span >
< span class = "n" > cycles< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getAvailableTimes< / span > < span class = "p" > (< / span > < span class = "n" > timeReq< / span > < span class = "p" > ,< / span > < span class = "kc" > True< / span > < span class = "p" > )< / span >
< span class = "n" > times< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getAvailableTimes< / span > < span class = "p" > (< / span > < span class = "n" > timeReq< / span > < span class = "p" > )< / span >
< span class = "n" > fcstRun< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getForecastRun< / span > < span class = "p" > (< / span > < span class = "n" > cycles< / span > < span class = "p" > [< / span > < span class = "o" > -< / span > < span class = "mi" > 2< / span > < span class = "p" > ],< / span > < span class = "n" > times< / span > < span class = "p" > )< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Using " < / span > < span class = "o" > +< / span > < span class = "n" > model< / span > < span class = "o" > +< / span > < span class = "s2" > " forecast time " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > fcstRun< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]))< / span >
< / pre > < / div >
< / div >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > Using< / span > < span class = "n" > NAM40< / span > < span class = "n" > forecast< / span > < span class = "n" > time< / span > < span class = "mi" > 2018< / span > < span class = "o" > -< / span > < span class = "mi" > 10< / span > < span class = "o" > -< / span > < span class = "mi" > 15< / span > < span class = "mi" > 12< / span > < span class = "p" > :< / span > < span class = "mi" > 00< / span > < span class = "p" > :< / span > < span class = "mi" > 00< / span >
< / pre > < / div >
< / div >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > p< / span > < span class = "p" > ,< / span > < span class = "n" > t< / span > < span class = "p" > ,< / span > < span class = "n" > d< / span > < span class = "p" > ,< / span > < span class = "n" > u< / span > < span class = "p" > ,< / span > < span class = "n" > v< / span > < span class = "o" > =< / span > < span class = "p" > [],[],[],[],[]< / span >
< span class = "n" > use_parms< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "s1" > ' T' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' DpT' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' uW' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' vW' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' P' < / span > < span class = "p" > ]< / span >
< span class = "n" > use_level< / span > < span class = "o" > =< / span > < span class = "s2" > " 0.0FHAG" < / span >
< span class = "n" > sndObject< / span > < span class = "o" > =< / span > < span class = "n" > ModelSounding< / span > < span class = "o" > .< / span > < span class = "n" > getSounding< / span > < span class = "p" > (< / span > < span class = "n" > model< / span > < span class = "p" > ,< / span > < span class = "n" > use_parms< / span > < span class = "p" > ,< / span >
< span class = "p" > [< / span > < span class = "s2" > " 0.0FHAG" < / span > < span class = "p" > ],< / span > < span class = "n" > point< / span > < span class = "p" > ,< / span > < span class = "n" > timeRange< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > fcstRun< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]])< / span >
< span class = "k" > if< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "p" > )< / span > < span class = "o" > > < / span > < span class = "mi" > 0< / span > < span class = "p" > :< / span >
< span class = "k" > for< / span > < span class = "n" > time< / span > < span class = "ow" > in< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > :< / span >
< span class = "n" > p< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > use_level< / span > < span class = "p" > ][< / span > < span class = "s1" > ' P' < / span > < span class = "p" > ]))< / span >
< span class = "n" > t< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > use_level< / span > < span class = "p" > ][< / span > < span class = "s1" > ' T' < / span > < span class = "p" > ]))< / span >
< span class = "n" > d< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > use_level< / span > < span class = "p" > ][< / span > < span class = "s1" > ' DpT' < / span > < span class = "p" > ]))< / span >
< span class = "n" > u< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > use_level< / span > < span class = "p" > ][< / span > < span class = "s1" > ' uW' < / span > < span class = "p" > ]))< / span >
< span class = "n" > v< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > use_level< / span > < span class = "p" > ][< / span > < span class = "s1" > ' vW' < / span > < span class = "p" > ]))< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Found surface record at " < / span > < span class = "o" > +< / span > < span class = "s2" > " < / span > < span class = "si" > %.1f< / span > < span class = "s2" > " < / span > < span class = "o" > %< / span > < span class = "n" > p< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]< / span > < span class = "o" > +< / span > < span class = "s2" > " MB" < / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > ValueError< / span > < span class = "p" > (< / span > < span class = "s2" > " sndObject returned empty for query [" < / span >
< span class = "o" > +< / span > < span class = "s1" > ' , ' < / span > < span class = "o" > .< / span > < span class = "n" > join< / span > < span class = "p" > (< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > x< / span > < span class = "p" > )< / span > < span class = "k" > for< / span > < span class = "n" > x< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "n" > model< / span > < span class = "p" > ,< / span > < span class = "n" > use_parms< / span > < span class = "p" > ,< / span > < span class = "n" > point< / span > < span class = "p" > ,< / span > < span class = "n" > use_level< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " ]" < / span > < span class = "p" > )< / span >
< / pre > < / div >
< / div >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > Found< / span > < span class = "n" > surface< / span > < span class = "n" > record< / span > < span class = "n" > at< / span > < span class = "mf" > 836.4< / span > < span class = "n" > MB< / span >
< / pre > < / div >
< / div >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "c1" > # Get isobaric levels with our requested parameters< / span >
< span class = "n" > levelReq< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > newDataRequest< / span > < span class = "p" > (< / span > < span class = "s2" > " grid" < / span > < span class = "p" > ,< / span > < span class = "n" > envelope< / span > < span class = "o" > =< / span > < span class = "n" > point< / span > < span class = "p" > )< / span >
< span class = "n" > levelReq< / span > < span class = "o" > .< / span > < span class = "n" > setLocationNames< / span > < span class = "p" > (< / span > < span class = "n" > model< / span > < span class = "p" > )< / span >
< span class = "n" > levelReq< / span > < span class = "o" > .< / span > < span class = "n" > setParameters< / span > < span class = "p" > (< / span > < span class = "s1" > ' T' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' DpT' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' uW' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' vW' < / span > < span class = "p" > )< / span >
< span class = "n" > availableLevels< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getAvailableLevels< / span > < span class = "p" > (< / span > < span class = "n" > levelReq< / span > < span class = "p" > )< / span >
< span class = "c1" > # Clean levels list of unit string (MB, FHAG, etc.)< / span >
< span class = "n" > levels< / span > < span class = "o" > =< / span > < span class = "p" > []< / span >
< span class = "k" > for< / span > < span class = "n" > lvl< / span > < span class = "ow" > in< / span > < span class = "n" > availableLevels< / span > < span class = "p" > :< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > lvl< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "s1" > ' MB' < / span > < span class = "ow" > in< / span > < span class = "n" > name< / span > < span class = "ow" > and< / span > < span class = "s1" > ' _' < / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "n" > name< / span > < span class = "p" > :< / span >
< span class = "c1" > # If this level is above (less than in mb) our 0.0FHAG record< / span >
< span class = "k" > if< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > name< / span > < span class = "o" > .< / span > < span class = "n" > replace< / span > < span class = "p" > (< / span > < span class = "s1" > ' MB' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' ' < / span > < span class = "p" > ))< / span > < span class = "o" > < < / span > < span class = "n" > p< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]:< / span >
< span class = "n" > levels< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > lvl< / span > < span class = "p" > )< / span >
< span class = "c1" > # Get Sounding< / span >
< span class = "n" > sndObject< / span > < span class = "o" > =< / span > < span class = "n" > ModelSounding< / span > < span class = "o" > .< / span > < span class = "n" > getSounding< / span > < span class = "p" > (< / span > < span class = "n" > model< / span > < span class = "p" > ,< / span > < span class = "n" > parms< / span > < span class = "p" > ,< / span > < span class = "n" > levels< / span > < span class = "p" > ,< / span > < span class = "n" > point< / span > < span class = "p" > ,< / span >
< span class = "n" > timeRange< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > fcstRun< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]])< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "p" > )< / span > < span class = "o" > > < / span > < span class = "mi" > 0< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > ValueError< / span > < span class = "p" > (< / span > < span class = "s2" > " sndObject returned empty for query [" < / span >
< span class = "o" > +< / span > < span class = "s1" > ' , ' < / span > < span class = "o" > .< / span > < span class = "n" > join< / span > < span class = "p" > (< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > x< / span > < span class = "p" > )< / span > < span class = "k" > for< / span > < span class = "n" > x< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "n" > model< / span > < span class = "p" > ,< / span > < span class = "n" > parms< / span > < span class = "p" > ,< / span > < span class = "n" > point< / span > < span class = "p" > ,< / span > < span class = "n" > levels< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " ]" < / span > < span class = "p" > )< / span >
< span class = "k" > for< / span > < span class = "n" > time< / span > < span class = "ow" > in< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > :< / span >
< span class = "k" > for< / span > < span class = "n" > lvl< / span > < span class = "ow" > in< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ]< / span > < span class = "o" > .< / span > < span class = "n" > levels< / span > < span class = "p" > ():< / span >
< span class = "k" > for< / span > < span class = "n" > parm< / span > < span class = "ow" > in< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > lvl< / span > < span class = "p" > ]< / span > < span class = "o" > .< / span > < span class = "n" > parameters< / span > < span class = "p" > ():< / span >
< span class = "k" > if< / span > < span class = "n" > parm< / span > < span class = "o" > ==< / span > < span class = "s2" > " T" < / span > < span class = "p" > :< / span >
< span class = "n" > t< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > lvl< / span > < span class = "p" > ][< / span > < span class = "n" > parm< / span > < span class = "p" > ]))< / span >
< span class = "k" > elif< / span > < span class = "n" > parm< / span > < span class = "o" > ==< / span > < span class = "s2" > " DpT" < / span > < span class = "p" > :< / span >
< span class = "n" > d< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > lvl< / span > < span class = "p" > ][< / span > < span class = "n" > parm< / span > < span class = "p" > ]))< / span >
< span class = "k" > elif< / span > < span class = "n" > parm< / span > < span class = "o" > ==< / span > < span class = "s1" > ' uW' < / span > < span class = "p" > :< / span >
< span class = "n" > u< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > lvl< / span > < span class = "p" > ][< / span > < span class = "n" > parm< / span > < span class = "p" > ]))< / span >
< span class = "k" > elif< / span > < span class = "n" > parm< / span > < span class = "o" > ==< / span > < span class = "s1" > ' vW' < / span > < span class = "p" > :< / span >
< span class = "n" > v< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > lvl< / span > < span class = "p" > ][< / span > < span class = "n" > parm< / span > < span class = "p" > ]))< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " WHAT IS THIS" < / span > < span class = "p" > )< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > lvl< / span > < span class = "p" > ][< / span > < span class = "n" > parm< / span > < span class = "p" > ])< / span >
< span class = "c1" > # Pressure is our requested level rather than a returned parameter< / span >
< span class = "n" > p< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > lvl< / span > < span class = "o" > .< / span > < span class = "n" > replace< / span > < span class = "p" > (< / span > < span class = "s1" > ' MB' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' ' < / span > < span class = "p" > )))< / span >
< span class = "c1" > # convert to numpy.array()< / span >
< span class = "n" > p< / span > < span class = "o" > =< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > array< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ,< / span > < span class = "n" > dtype< / span > < span class = "o" > =< / span > < span class = "nb" > float< / span > < span class = "p" > )< / span >
< span class = "n" > t< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > array< / span > < span class = "p" > (< / span > < span class = "n" > t< / span > < span class = "p" > ,< / span > < span class = "n" > dtype< / span > < span class = "o" > =< / span > < span class = "nb" > float< / span > < span class = "p" > )< / span > < span class = "o" > -< / span > < span class = "mf" > 273.15< / span > < span class = "p" > )< / span > < span class = "o" > *< / span > < span class = "n" > units< / span > < span class = "o" > .< / span > < span class = "n" > degC< / span >
< span class = "n" > d< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > array< / span > < span class = "p" > (< / span > < span class = "n" > d< / span > < span class = "p" > ,< / span > < span class = "n" > dtype< / span > < span class = "o" > =< / span > < span class = "nb" > float< / span > < span class = "p" > )< / span > < span class = "o" > -< / span > < span class = "mf" > 273.15< / span > < span class = "p" > )< / span > < span class = "o" > *< / span > < span class = "n" > units< / span > < span class = "o" > .< / span > < span class = "n" > degC< / span >
< span class = "n" > u< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > array< / span > < span class = "p" > (< / span > < span class = "n" > u< / span > < span class = "p" > ,< / span > < span class = "n" > dtype< / span > < span class = "o" > =< / span > < span class = "nb" > float< / span > < span class = "p" > )< / span > < span class = "o" > *< / span > < span class = "n" > units< / span > < span class = "p" > (< / span > < span class = "s1" > ' m/s' < / span > < span class = "p" > ))< / span > < span class = "o" > .< / span > < span class = "n" > to< / span > < span class = "p" > (< / span > < span class = "s1" > ' knots' < / span > < span class = "p" > )< / span >
< span class = "n" > v< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > array< / span > < span class = "p" > (< / span > < span class = "n" > v< / span > < span class = "p" > ,< / span > < span class = "n" > dtype< / span > < span class = "o" > =< / span > < span class = "nb" > float< / span > < span class = "p" > )< / span > < span class = "o" > *< / span > < span class = "n" > units< / span > < span class = "p" > (< / span > < span class = "s1" > ' m/s' < / span > < span class = "p" > ))< / span > < span class = "o" > .< / span > < span class = "n" > to< / span > < span class = "p" > (< / span > < span class = "s1" > ' knots' < / span > < span class = "p" > )< / span >
< span class = "n" > w< / span > < span class = "o" > =< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > sqrt< / span > < span class = "p" > (< / span > < span class = "n" > u< / span > < span class = "o" > **< / span > < span class = "mi" > 2< / span > < span class = "o" > +< / span > < span class = "n" > v< / span > < span class = "o" > **< / span > < span class = "mi" > 2< / span > < span class = "p" > )< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Using " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > levels< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " levels between " < / span > < span class = "o" > +< / span >
< span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "s2" > " < / span > < span class = "si" > %.1f< / span > < span class = "s2" > " < / span > < span class = "o" > %< / span > < span class = "nb" > max< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " and " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "s2" > " < / span > < span class = "si" > %.1f< / span > < span class = "s2" > " < / span > < span class = "o" > %< / span > < span class = "nb" > min< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " MB" < / span > < span class = "p" > )< / span >
< / pre > < / div >
< / div >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > Using< / span > < span class = "mi" > 32< / span > < span class = "n" > levels< / span > < span class = "n" > between< / span > < span class = "mf" > 836.4< / span > < span class = "ow" > and< / span > < span class = "mf" > 50.0< / span > < span class = "n" > MB< / span >
< / pre > < / div >
< / div >
< hr class = "docutils" / >
< div class = "section" id = "skew-t-log-p" >
< h2 > Skew-T/Log-P< a class = "headerlink" href = "#skew-t-log-p" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > plt< / span > < span class = "o" > .< / span > < span class = "n" > rcParams< / span > < span class = "p" > [< / span > < span class = "s1" > ' figure.figsize' < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "mi" > 12< / span > < span class = "p" > ,< / span > < span class = "mi" > 14< / span > < span class = "p" > )< / span >
< span class = "c1" > # Skew-T< / span >
< span class = "n" > skew< / span > < span class = "o" > =< / span > < span class = "n" > SkewT< / span > < span class = "p" > (< / span > < span class = "n" > rotation< / span > < span class = "o" > =< / span > < span class = "mi" > 45< / span > < span class = "p" > )< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > plot< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ,< / span > < span class = "n" > t< / span > < span class = "p" > ,< / span > < span class = "s1" > ' r' < / span > < span class = "p" > ,< / span > < span class = "n" > linewidth< / span > < span class = "o" > =< / span > < span class = "mi" > 2< / span > < span class = "p" > )< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > plot< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ,< / span > < span class = "n" > d< / span > < span class = "p" > ,< / span > < span class = "s1" > ' g' < / span > < span class = "p" > ,< / span > < span class = "n" > linewidth< / span > < span class = "o" > =< / span > < span class = "mi" > 2< / span > < span class = "p" > )< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > plot_barbs< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ,< / span > < span class = "n" > u< / span > < span class = "p" > ,< / span > < span class = "n" > v< / span > < span class = "p" > )< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > plot_dry_adiabats< / span > < span class = "p" > ()< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > plot_moist_adiabats< / span > < span class = "p" > ()< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > plot_mixing_lines< / span > < span class = "p" > (< / span > < span class = "n" > linestyle< / span > < span class = "o" > =< / span > < span class = "s1" > ' :' < / span > < span class = "p" > )< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > set_ylim< / span > < span class = "p" > (< / span > < span class = "mi" > 1000< / span > < span class = "p" > ,< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > min< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ))< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > set_xlim< / span > < span class = "p" > (< / span > < span class = "o" > -< / span > < span class = "mi" > 50< / span > < span class = "p" > ,< / span > < span class = "mi" > 40< / span > < span class = "p" > )< / span >
< span class = "c1" > # Title< / span >
< span class = "n" > plt< / span > < span class = "o" > .< / span > < span class = "n" > title< / span > < span class = "p" > (< / span > < span class = "n" > model< / span > < span class = "o" > +< / span > < span class = "s2" > " (" < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > point< / span > < span class = "p" > )< / span > < span class = "o" > +< / span > < span class = "s2" > " ) " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > time< / span > < span class = "o" > .< / span > < span class = "n" > getRefTime< / span > < span class = "p" > ()))< / span >
< span class = "c1" > # Hodograph< / span >
< span class = "n" > ax_hod< / span > < span class = "o" > =< / span > < span class = "n" > inset_axes< / span > < span class = "p" > (< / span > < span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > ax< / span > < span class = "p" > ,< / span > < span class = "s1" > ' 40%' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' 40%' < / span > < span class = "p" > ,< / span > < span class = "n" > loc< / span > < span class = "o" > =< / span > < span class = "mi" > 2< / span > < span class = "p" > )< / span >
< span class = "n" > h< / span > < span class = "o" > =< / span > < span class = "n" > Hodograph< / span > < span class = "p" > (< / span > < span class = "n" > ax_hod< / span > < span class = "p" > ,< / span > < span class = "n" > component_range< / span > < span class = "o" > =< / span > < span class = "nb" > max< / span > < span class = "p" > (< / span > < span class = "n" > w< / span > < span class = "o" > .< / span > < span class = "n" > magnitude< / span > < span class = "p" > ))< / span >
< span class = "n" > h< / span > < span class = "o" > .< / span > < span class = "n" > add_grid< / span > < span class = "p" > (< / span > < span class = "n" > increment< / span > < span class = "o" > =< / span > < span class = "mi" > 20< / span > < span class = "p" > )< / span >
< span class = "n" > h< / span > < span class = "o" > .< / span > < span class = "n" > plot_colormapped< / span > < span class = "p" > (< / span > < span class = "n" > u< / span > < span class = "p" > ,< / span > < span class = "n" > v< / span > < span class = "p" > ,< / span > < span class = "n" > w< / span > < span class = "p" > )< / span >
< span class = "c1" > # Dotted line at 0C isotherm< / span >
< span class = "n" > l< / span > < span class = "o" > =< / span > < span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > axvline< / span > < span class = "p" > (< / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "n" > color< / span > < span class = "o" > =< / span > < span class = "s1" > ' c' < / span > < span class = "p" > ,< / span > < span class = "n" > linestyle< / span > < span class = "o" > =< / span > < span class = "s1" > ' -' < / span > < span class = "p" > ,< / span > < span class = "n" > linewidth< / span > < span class = "o" > =< / span > < span class = "mi" > 1< / span > < span class = "p" > )< / span >
< span class = "n" > plt< / span > < span class = "o" > .< / span > < span class = "n" > show< / span > < span class = "p" > ()< / span >
< / pre > < / div >
< / div >
< img alt = "../../_images/Forecast_Model_Vertical_Sounding_5_0.png" src = "../../_images/Forecast_Model_Vertical_Sounding_5_0.png" / >
< / div >
< div class = "section" id = "model-sounding-comparison" >
< h2 > Model Sounding Comparison< a class = "headerlink" href = "#model-sounding-comparison" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > models< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "s2" > " CMC" < / span > < span class = "p" > ,< / span > < span class = "s2" > " GFS20" < / span > < span class = "p" > ,< / span > < span class = "s2" > " NAM40" < / span > < span class = "p" > ]< / span >
< span class = "n" > parms< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "s1" > ' T' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' DpT' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' uW' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' vW' < / span > < span class = "p" > ]< / span >
< span class = "k" > for< / span > < span class = "n" > modelName< / span > < span class = "ow" > in< / span > < span class = "n" > models< / span > < span class = "p" > :< / span >
< span class = "n" > timeReq< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > newDataRequest< / span > < span class = "p" > (< / span > < span class = "s2" > " grid" < / span > < span class = "p" > )< / span >
< span class = "n" > timeReq< / span > < span class = "o" > .< / span > < span class = "n" > setLocationNames< / span > < span class = "p" > (< / span > < span class = "n" > modelName< / span > < span class = "p" > )< / span >
< span class = "n" > cycles< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getAvailableTimes< / span > < span class = "p" > (< / span > < span class = "n" > timeReq< / span > < span class = "p" > ,< / span > < span class = "kc" > True< / span > < span class = "p" > )< / span >
< span class = "n" > times< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getAvailableTimes< / span > < span class = "p" > (< / span > < span class = "n" > timeReq< / span > < span class = "p" > )< / span >
< span class = "n" > fcstRun< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getForecastRun< / span > < span class = "p" > (< / span > < span class = "n" > cycles< / span > < span class = "p" > [< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "p" > ],< / span > < span class = "n" > times< / span > < span class = "p" > )< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Using " < / span > < span class = "o" > +< / span > < span class = "n" > modelName< / span > < span class = "o" > +< / span > < span class = "s2" > " forecast time " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > fcstRun< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]))< / span >
< span class = "n" > p< / span > < span class = "p" > ,< / span > < span class = "n" > t< / span > < span class = "p" > ,< / span > < span class = "n" > d< / span > < span class = "p" > ,< / span > < span class = "n" > u< / span > < span class = "p" > ,< / span > < span class = "n" > v< / span > < span class = "o" > =< / span > < span class = "p" > [],[],[],[],[]< / span >
< span class = "n" > use_parms< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "s1" > ' T' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' DpT' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' uW' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' vW' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' P' < / span > < span class = "p" > ]< / span >
< span class = "n" > use_level< / span > < span class = "o" > =< / span > < span class = "s2" > " 0.0FHAG" < / span >
< span class = "n" > sndObject< / span > < span class = "o" > =< / span > < span class = "n" > ModelSounding< / span > < span class = "o" > .< / span > < span class = "n" > getSounding< / span > < span class = "p" > (< / span > < span class = "n" > modelName< / span > < span class = "p" > ,< / span > < span class = "n" > use_parms< / span > < span class = "p" > ,< / span >
< span class = "p" > [< / span > < span class = "n" > use_level< / span > < span class = "p" > ],< / span > < span class = "n" > point< / span > < span class = "p" > ,< / span > < span class = "n" > timeRange< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > fcstRun< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]])< / span >
< span class = "k" > if< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "p" > )< / span > < span class = "o" > > < / span > < span class = "mi" > 0< / span > < span class = "p" > :< / span >
< span class = "k" > for< / span > < span class = "n" > time< / span > < span class = "ow" > in< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > :< / span >
< span class = "n" > p< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > use_level< / span > < span class = "p" > ][< / span > < span class = "s1" > ' P' < / span > < span class = "p" > ]))< / span >
< span class = "n" > t< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > use_level< / span > < span class = "p" > ][< / span > < span class = "s1" > ' T' < / span > < span class = "p" > ]))< / span >
< span class = "n" > d< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > use_level< / span > < span class = "p" > ][< / span > < span class = "s1" > ' DpT' < / span > < span class = "p" > ]))< / span >
< span class = "n" > u< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > use_level< / span > < span class = "p" > ][< / span > < span class = "s1" > ' uW' < / span > < span class = "p" > ]))< / span >
< span class = "n" > v< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > use_level< / span > < span class = "p" > ][< / span > < span class = "s1" > ' vW' < / span > < span class = "p" > ]))< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Found surface record at " < / span > < span class = "o" > +< / span > < span class = "s2" > " < / span > < span class = "si" > %.1f< / span > < span class = "s2" > " < / span > < span class = "o" > %< / span > < span class = "n" > p< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]< / span > < span class = "o" > +< / span > < span class = "s2" > " MB" < / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > ValueError< / span > < span class = "p" > (< / span > < span class = "s2" > " sndObject returned empty for query [" < / span >
< span class = "o" > +< / span > < span class = "s1" > ' , ' < / span > < span class = "o" > .< / span > < span class = "n" > join< / span > < span class = "p" > (< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > x< / span > < span class = "p" > )< / span > < span class = "k" > for< / span > < span class = "n" > x< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "n" > modelName< / span > < span class = "p" > ,< / span > < span class = "n" > use_parms< / span > < span class = "p" > ,< / span > < span class = "n" > point< / span > < span class = "p" > ,< / span > < span class = "n" > use_level< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " ]" < / span > < span class = "p" > )< / span >
< span class = "c1" > # Get isobaric levels with our requested parameters< / span >
< span class = "n" > levelReq< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > newDataRequest< / span > < span class = "p" > (< / span > < span class = "s2" > " grid" < / span > < span class = "p" > ,< / span > < span class = "n" > envelope< / span > < span class = "o" > =< / span > < span class = "n" > point< / span > < span class = "p" > )< / span >
< span class = "n" > levelReq< / span > < span class = "o" > .< / span > < span class = "n" > setLocationNames< / span > < span class = "p" > (< / span > < span class = "n" > modelName< / span > < span class = "p" > )< / span >
< span class = "n" > levelReq< / span > < span class = "o" > .< / span > < span class = "n" > setParameters< / span > < span class = "p" > (< / span > < span class = "s1" > ' T' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' DpT' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' uW' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' vW' < / span > < span class = "p" > )< / span >
< span class = "n" > availableLevels< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getAvailableLevels< / span > < span class = "p" > (< / span > < span class = "n" > levelReq< / span > < span class = "p" > )< / span >
< span class = "c1" > # Clean levels list of unit string (MB, FHAG, etc.)< / span >
< span class = "n" > levels< / span > < span class = "o" > =< / span > < span class = "p" > []< / span >
< span class = "k" > for< / span > < span class = "n" > lvl< / span > < span class = "ow" > in< / span > < span class = "n" > availableLevels< / span > < span class = "p" > :< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > lvl< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "s1" > ' MB' < / span > < span class = "ow" > in< / span > < span class = "n" > name< / span > < span class = "ow" > and< / span > < span class = "s1" > ' _' < / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "n" > name< / span > < span class = "p" > :< / span >
< span class = "c1" > # If this level is above (less than in mb) our 0.0FHAG record< / span >
< span class = "k" > if< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > name< / span > < span class = "o" > .< / span > < span class = "n" > replace< / span > < span class = "p" > (< / span > < span class = "s1" > ' MB' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' ' < / span > < span class = "p" > ))< / span > < span class = "o" > < < / span > < span class = "n" > p< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]:< / span >
< span class = "n" > levels< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > lvl< / span > < span class = "p" > )< / span >
< span class = "c1" > # Get Sounding< / span >
< span class = "n" > sndObject< / span > < span class = "o" > =< / span > < span class = "n" > ModelSounding< / span > < span class = "o" > .< / span > < span class = "n" > getSounding< / span > < span class = "p" > (< / span > < span class = "n" > modelName< / span > < span class = "p" > ,< / span > < span class = "n" > parms< / span > < span class = "p" > ,< / span > < span class = "n" > levels< / span > < span class = "p" > ,< / span > < span class = "n" > point< / span > < span class = "p" > ,< / span >
< span class = "n" > timeRange< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > fcstRun< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]])< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "p" > )< / span > < span class = "o" > > < / span > < span class = "mi" > 0< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > ValueError< / span > < span class = "p" > (< / span > < span class = "s2" > " sndObject returned empty for query [" < / span >
< span class = "o" > +< / span > < span class = "s1" > ' , ' < / span > < span class = "o" > .< / span > < span class = "n" > join< / span > < span class = "p" > (< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > x< / span > < span class = "p" > )< / span > < span class = "k" > for< / span > < span class = "n" > x< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "n" > modelName< / span > < span class = "p" > ,< / span > < span class = "n" > parms< / span > < span class = "p" > ,< / span > < span class = "n" > point< / span > < span class = "p" > ,< / span > < span class = "n" > levels< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " ]" < / span > < span class = "p" > )< / span >
< span class = "k" > for< / span > < span class = "n" > time< / span > < span class = "ow" > in< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > :< / span >
< span class = "k" > for< / span > < span class = "n" > lvl< / span > < span class = "ow" > in< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ]< / span > < span class = "o" > .< / span > < span class = "n" > levels< / span > < span class = "p" > ():< / span >
< span class = "k" > for< / span > < span class = "n" > parm< / span > < span class = "ow" > in< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > lvl< / span > < span class = "p" > ]< / span > < span class = "o" > .< / span > < span class = "n" > parameters< / span > < span class = "p" > ():< / span >
< span class = "k" > if< / span > < span class = "n" > parm< / span > < span class = "o" > ==< / span > < span class = "s2" > " T" < / span > < span class = "p" > :< / span >
< span class = "n" > t< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > lvl< / span > < span class = "p" > ][< / span > < span class = "n" > parm< / span > < span class = "p" > ]))< / span >
< span class = "k" > elif< / span > < span class = "n" > parm< / span > < span class = "o" > ==< / span > < span class = "s2" > " DpT" < / span > < span class = "p" > :< / span >
< span class = "n" > d< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > lvl< / span > < span class = "p" > ][< / span > < span class = "n" > parm< / span > < span class = "p" > ]))< / span >
< span class = "k" > elif< / span > < span class = "n" > parm< / span > < span class = "o" > ==< / span > < span class = "s1" > ' uW' < / span > < span class = "p" > :< / span >
< span class = "n" > u< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > lvl< / span > < span class = "p" > ][< / span > < span class = "n" > parm< / span > < span class = "p" > ]))< / span >
< span class = "k" > elif< / span > < span class = "n" > parm< / span > < span class = "o" > ==< / span > < span class = "s1" > ' vW' < / span > < span class = "p" > :< / span >
< span class = "n" > v< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > lvl< / span > < span class = "p" > ][< / span > < span class = "n" > parm< / span > < span class = "p" > ]))< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " WHAT IS THIS" < / span > < span class = "p" > )< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "n" > sndObject< / span > < span class = "o" > .< / span > < span class = "n" > _dataDict< / span > < span class = "p" > [< / span > < span class = "n" > time< / span > < span class = "p" > ][< / span > < span class = "n" > lvl< / span > < span class = "p" > ][< / span > < span class = "n" > parm< / span > < span class = "p" > ])< / span >
< span class = "c1" > # Pressure is our requested level rather than a returned parameter< / span >
< span class = "n" > p< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > lvl< / span > < span class = "o" > .< / span > < span class = "n" > replace< / span > < span class = "p" > (< / span > < span class = "s1" > ' MB' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' ' < / span > < span class = "p" > )))< / span >
< span class = "c1" > # convert to numpy.array()< / span >
< span class = "n" > p< / span > < span class = "o" > =< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > array< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ,< / span > < span class = "n" > dtype< / span > < span class = "o" > =< / span > < span class = "nb" > float< / span > < span class = "p" > )< / span >
< span class = "n" > t< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > array< / span > < span class = "p" > (< / span > < span class = "n" > t< / span > < span class = "p" > ,< / span > < span class = "n" > dtype< / span > < span class = "o" > =< / span > < span class = "nb" > float< / span > < span class = "p" > )< / span > < span class = "o" > -< / span > < span class = "mf" > 273.15< / span > < span class = "p" > )< / span > < span class = "o" > *< / span > < span class = "n" > units< / span > < span class = "o" > .< / span > < span class = "n" > degC< / span >
< span class = "n" > d< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > array< / span > < span class = "p" > (< / span > < span class = "n" > d< / span > < span class = "p" > ,< / span > < span class = "n" > dtype< / span > < span class = "o" > =< / span > < span class = "nb" > float< / span > < span class = "p" > )< / span > < span class = "o" > -< / span > < span class = "mf" > 273.15< / span > < span class = "p" > )< / span > < span class = "o" > *< / span > < span class = "n" > units< / span > < span class = "o" > .< / span > < span class = "n" > degC< / span >
< span class = "n" > u< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > array< / span > < span class = "p" > (< / span > < span class = "n" > u< / span > < span class = "p" > ,< / span > < span class = "n" > dtype< / span > < span class = "o" > =< / span > < span class = "nb" > float< / span > < span class = "p" > )< / span > < span class = "o" > *< / span > < span class = "n" > units< / span > < span class = "p" > (< / span > < span class = "s1" > ' m/s' < / span > < span class = "p" > ))< / span > < span class = "o" > .< / span > < span class = "n" > to< / span > < span class = "p" > (< / span > < span class = "s1" > ' knots' < / span > < span class = "p" > )< / span >
< span class = "n" > v< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > array< / span > < span class = "p" > (< / span > < span class = "n" > v< / span > < span class = "p" > ,< / span > < span class = "n" > dtype< / span > < span class = "o" > =< / span > < span class = "nb" > float< / span > < span class = "p" > )< / span > < span class = "o" > *< / span > < span class = "n" > units< / span > < span class = "p" > (< / span > < span class = "s1" > ' m/s' < / span > < span class = "p" > ))< / span > < span class = "o" > .< / span > < span class = "n" > to< / span > < span class = "p" > (< / span > < span class = "s1" > ' knots' < / span > < span class = "p" > )< / span >
< span class = "n" > w< / span > < span class = "o" > =< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > sqrt< / span > < span class = "p" > (< / span > < span class = "n" > u< / span > < span class = "o" > **< / span > < span class = "mi" > 2< / span > < span class = "o" > +< / span > < span class = "n" > v< / span > < span class = "o" > **< / span > < span class = "mi" > 2< / span > < span class = "p" > )< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Using " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > levels< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " levels between " < / span > < span class = "o" > +< / span >
< span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "s2" > " < / span > < span class = "si" > %.1f< / span > < span class = "s2" > " < / span > < span class = "o" > %< / span > < span class = "nb" > max< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " and " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "s2" > " < / span > < span class = "si" > %.1f< / span > < span class = "s2" > " < / span > < span class = "o" > %< / span > < span class = "nb" > min< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " MB" < / span > < span class = "p" > )< / span >
< span class = "c1" > # Skew-T< / span >
< span class = "n" > plt< / span > < span class = "o" > .< / span > < span class = "n" > rcParams< / span > < span class = "p" > [< / span > < span class = "s1" > ' figure.figsize' < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "mi" > 12< / span > < span class = "p" > ,< / span > < span class = "mi" > 14< / span > < span class = "p" > )< / span >
< span class = "n" > skew< / span > < span class = "o" > =< / span > < span class = "n" > SkewT< / span > < span class = "p" > (< / span > < span class = "n" > rotation< / span > < span class = "o" > =< / span > < span class = "mi" > 45< / span > < span class = "p" > )< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > plot< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ,< / span > < span class = "n" > t< / span > < span class = "p" > ,< / span > < span class = "s1" > ' r' < / span > < span class = "p" > ,< / span > < span class = "n" > linewidth< / span > < span class = "o" > =< / span > < span class = "mi" > 2< / span > < span class = "p" > )< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > plot< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ,< / span > < span class = "n" > d< / span > < span class = "p" > ,< / span > < span class = "s1" > ' g' < / span > < span class = "p" > ,< / span > < span class = "n" > linewidth< / span > < span class = "o" > =< / span > < span class = "mi" > 2< / span > < span class = "p" > )< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > plot_barbs< / span > < span class = "p" > (< / span > < span class = "n" > p< / span > < span class = "p" > ,< / span > < span class = "n" > u< / span > < span class = "p" > ,< / span > < span class = "n" > v< / span > < span class = "p" > )< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > plot_dry_adiabats< / span > < span class = "p" > ()< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > plot_moist_adiabats< / span > < span class = "p" > ()< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > plot_mixing_lines< / span > < span class = "p" > (< / span > < span class = "n" > linestyle< / span > < span class = "o" > =< / span > < span class = "s1" > ' :' < / span > < span class = "p" > )< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > set_ylim< / span > < span class = "p" > (< / span > < span class = "mi" > 1000< / span > < span class = "p" > ,< / span > < span class = "mi" > 100< / span > < span class = "p" > )< / span >
< span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > set_xlim< / span > < span class = "p" > (< / span > < span class = "o" > -< / span > < span class = "mi" > 50< / span > < span class = "p" > ,< / span > < span class = "mi" > 40< / span > < span class = "p" > )< / span >
< span class = "c1" > # Title< / span >
< span class = "n" > plt< / span > < span class = "o" > .< / span > < span class = "n" > title< / span > < span class = "p" > (< / span > < span class = "n" > modelName< / span > < span class = "o" > +< / span > < span class = "s2" > " (" < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > point< / span > < span class = "p" > )< / span > < span class = "o" > +< / span > < span class = "s2" > " ) " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > time< / span > < span class = "o" > .< / span > < span class = "n" > getRefTime< / span > < span class = "p" > ()))< / span >
< span class = "c1" > # Hodograph< / span >
< span class = "n" > ax_hod< / span > < span class = "o" > =< / span > < span class = "n" > inset_axes< / span > < span class = "p" > (< / span > < span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > ax< / span > < span class = "p" > ,< / span > < span class = "s1" > ' 40%' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' 40%' < / span > < span class = "p" > ,< / span > < span class = "n" > loc< / span > < span class = "o" > =< / span > < span class = "mi" > 2< / span > < span class = "p" > )< / span >
< span class = "n" > h< / span > < span class = "o" > =< / span > < span class = "n" > Hodograph< / span > < span class = "p" > (< / span > < span class = "n" > ax_hod< / span > < span class = "p" > ,< / span > < span class = "n" > component_range< / span > < span class = "o" > =< / span > < span class = "nb" > max< / span > < span class = "p" > (< / span > < span class = "n" > w< / span > < span class = "o" > .< / span > < span class = "n" > magnitude< / span > < span class = "p" > ))< / span >
< span class = "n" > h< / span > < span class = "o" > .< / span > < span class = "n" > add_grid< / span > < span class = "p" > (< / span > < span class = "n" > increment< / span > < span class = "o" > =< / span > < span class = "mi" > 20< / span > < span class = "p" > )< / span >
< span class = "n" > h< / span > < span class = "o" > .< / span > < span class = "n" > plot_colormapped< / span > < span class = "p" > (< / span > < span class = "n" > u< / span > < span class = "p" > ,< / span > < span class = "n" > v< / span > < span class = "p" > ,< / span > < span class = "n" > w< / span > < span class = "p" > )< / span >
< span class = "c1" > # Dotted line at 0C isotherm< / span >
< span class = "n" > l< / span > < span class = "o" > =< / span > < span class = "n" > skew< / span > < span class = "o" > .< / span > < span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > axvline< / span > < span class = "p" > (< / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "n" > color< / span > < span class = "o" > =< / span > < span class = "s1" > ' c' < / span > < span class = "p" > ,< / span > < span class = "n" > linestyle< / span > < span class = "o" > =< / span > < span class = "s1" > ' -' < / span > < span class = "p" > ,< / span > < span class = "n" > linewidth< / span > < span class = "o" > =< / span > < span class = "mi" > 1< / span > < span class = "p" > )< / span >
< span class = "n" > plt< / span > < span class = "o" > .< / span > < span class = "n" > show< / span > < span class = "p" > ()< / span >
< / pre > < / div >
< / div >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > Using< / span > < span class = "n" > CMC< / span > < span class = "n" > forecast< / span > < span class = "n" > time< / span > < span class = "mi" > 2018< / span > < span class = "o" > -< / span > < span class = "mi" > 10< / span > < span class = "o" > -< / span > < span class = "mi" > 15< / span > < span class = "mi" > 12< / span > < span class = "p" > :< / span > < span class = "mi" > 00< / span > < span class = "p" > :< / span > < span class = "mi" > 00< / span >
< span class = "n" > Found< / span > < span class = "n" > surface< / span > < span class = "n" > record< / span > < span class = "n" > at< / span > < span class = "mf" > 848.6< / span > < span class = "n" > MB< / span >
< span class = "n" > Using< / span > < span class = "mi" > 19< / span > < span class = "n" > levels< / span > < span class = "n" > between< / span > < span class = "mf" > 848.6< / span > < span class = "ow" > and< / span > < span class = "mf" > 50.0< / span > < span class = "n" > MB< / span >
< / pre > < / div >
< / div >
< img alt = "../../_images/Forecast_Model_Vertical_Sounding_7_1.png" src = "../../_images/Forecast_Model_Vertical_Sounding_7_1.png" / >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > Using< / span > < span class = "n" > GFS20< / span > < span class = "n" > forecast< / span > < span class = "n" > time< / span > < span class = "mi" > 2018< / span > < span class = "o" > -< / span > < span class = "mi" > 10< / span > < span class = "o" > -< / span > < span class = "mi" > 15< / span > < span class = "mi" > 18< / span > < span class = "p" > :< / span > < span class = "mi" > 00< / span > < span class = "p" > :< / span > < span class = "mi" > 00< / span >
< span class = "n" > Found< / span > < span class = "n" > surface< / span > < span class = "n" > record< / span > < span class = "n" > at< / span > < span class = "mf" > 848.1< / span > < span class = "n" > MB< / span >
< span class = "n" > Using< / span > < span class = "mi" > 22< / span > < span class = "n" > levels< / span > < span class = "n" > between< / span > < span class = "mf" > 848.1< / span > < span class = "ow" > and< / span > < span class = "mf" > 100.0< / span > < span class = "n" > MB< / span >
< / pre > < / div >
< / div >
< img alt = "../../_images/Forecast_Model_Vertical_Sounding_7_3.png" src = "../../_images/Forecast_Model_Vertical_Sounding_7_3.png" / >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > Using< / span > < span class = "n" > NAM40< / span > < span class = "n" > forecast< / span > < span class = "n" > time< / span > < span class = "mi" > 2018< / span > < span class = "o" > -< / span > < span class = "mi" > 10< / span > < span class = "o" > -< / span > < span class = "mi" > 15< / span > < span class = "mi" > 18< / span > < span class = "p" > :< / span > < span class = "mi" > 00< / span > < span class = "p" > :< / span > < span class = "mi" > 00< / span >
< span class = "n" > Found< / span > < span class = "n" > surface< / span > < span class = "n" > record< / span > < span class = "n" > at< / span > < span class = "mf" > 837.7< / span > < span class = "n" > MB< / span >
< span class = "n" > Using< / span > < span class = "mi" > 32< / span > < span class = "n" > levels< / span > < span class = "n" > between< / span > < span class = "mf" > 837.7< / span > < span class = "ow" > and< / span > < span class = "mf" > 50.0< / span > < span class = "n" > MB< / span >
< / pre > < / div >
< / div >
< img alt = "../../_images/Forecast_Model_Vertical_Sounding_7_5.png" src = "../../_images/Forecast_Model_Vertical_Sounding_7_5.png" / >
< / div >
< / div >
< / div >
< / div >
< footer >
< div class = "rst-footer-buttons" role = "navigation" aria-label = "footer navigation" >
2021-07-14 21:23:25 +00:00
< a href = "GOES_CIRA_Product_Writer.html" class = "btn btn-neutral float-right" title = "GOES CIRA Product Writer" accesskey = "n" rel = "next" > Next < span class = "fa fa-arrow-circle-right" aria-hidden = "true" > < / span > < / a >
2021-03-23 16:15:37 +00:00
< a href = "Colored_Surface_Temperature_Plot.html" class = "btn btn-neutral float-left" title = "Colored Surface Temperature Plot" accesskey = "p" rel = "prev" > < span class = "fa fa-arrow-circle-left" aria-hidden = "true" > < / span > Previous< / a >
2020-09-09 20:02:35 +00:00
< / div >
< hr / >
< div role = "contentinfo" >
< p >
2021-03-23 16:15:37 +00:00
© Copyright 2018, Unidata.
2020-09-09 20:02:35 +00:00
< / p >
< / div >
2021-03-23 16:15:37 +00:00
Built with < a href = "https://www.sphinx-doc.org/" > Sphinx< / a > using a
2020-09-09 20:02:35 +00:00
2021-03-23 16:15:37 +00:00
< a href = "https://github.com/readthedocs/sphinx_rtd_theme" > theme< / a >
2020-09-09 20:02:35 +00:00
provided by < a href = "https://readthedocs.org" > Read the Docs< / a > .
< / footer >
< / div >
< / div >
< / section >
< / div >
< script type = "text/javascript" >
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
< / script >
< / body >
< / html >