2020-09-09 20:02:35 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html class="writer-html5" lang="en" >
|
|
|
|
<head>
|
2021-09-20 20:37:21 +00:00
|
|
|
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
|
|
|
|
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>Upper Air BUFR Soundings — python-awips documentation</title>
|
2021-09-20 20:37:21 +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
|
|
|
<!--[if lt IE 9]>
|
|
|
|
<script src="../../_static/js/html5shiv.min.js"></script>
|
|
|
|
<![endif]-->
|
|
|
|
|
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>
|
2022-06-03 19:57:40 +00:00
|
|
|
<script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
2020-09-09 20:02:35 +00:00
|
|
|
<script src="../../_static/doctools.js"></script>
|
2022-11-09 18:56:39 +00:00
|
|
|
<script src="../../_static/sphinx_highlight.js"></script>
|
2021-09-20 20:37:21 +00:00
|
|
|
<script src="../../_static/js/theme.js"></script>
|
2020-09-09 20:02:35 +00:00
|
|
|
<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" />
|
2022-04-28 16:51:48 +00:00
|
|
|
<link rel="next" title="Watch Warning and Advisory Plotting" href="Watch_Warning_and_Advisory_Plotting.html" />
|
2020-09-09 20:02:35 +00:00
|
|
|
<link rel="prev" title="Satellite Imagery" href="Satellite_Imagery.html" />
|
|
|
|
</head>
|
|
|
|
|
2021-09-20 20:37:21 +00:00
|
|
|
<body class="wy-body-for-nav">
|
2020-09-09 20:02:35 +00:00
|
|
|
<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">
|
2022-01-05 21:21:19 +00:00
|
|
|
18.1.8
|
2020-09-09 20:02:35 +00:00
|
|
|
</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>
|
2021-09-20 20:37:21 +00:00
|
|
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
2020-09-09 20:02:35 +00:00
|
|
|
<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>
|
2022-02-04 21:09:59 +00:00
|
|
|
<li class="toctree-l2"><a class="reference internal" href="Colorized_Grid_Data.html">Colorized Grid Data</a></li>
|
2020-09-09 20:02:35 +00:00
|
|
|
<li class="toctree-l2"><a class="reference internal" href="Forecast_Model_Vertical_Sounding.html">Forecast Model Vertical Sounding</a></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>
|
|
|
|
<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 current"><a class="current reference internal" href="#">Upper Air BUFR Soundings</a></li>
|
2022-04-28 16:51:48 +00:00
|
|
|
<li class="toctree-l2"><a class="reference internal" href="Watch_Warning_and_Advisory_Plotting.html">Watch Warning and Advisory Plotting</a></li>
|
2020-09-09 20:02:35 +00:00
|
|
|
</ul>
|
|
|
|
</li>
|
|
|
|
<li class="toctree-l1"><a class="reference internal" href="../../dev.html">Development Guide</a></li>
|
2021-09-20 20:37:21 +00:00
|
|
|
<li class="toctree-l1"><a class="reference external" href="http://unidata.github.io/awips2/appendix/appendix-grid-parameters/">AWIPS Grid Parameters</a></li>
|
2020-09-09 20:02:35 +00:00
|
|
|
<li class="toctree-l1"><a class="reference internal" href="../../about.html">About Unidata AWIPS</a></li>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
|
2021-09-20 20:37:21 +00:00
|
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
2020-09-09 20:02:35 +00:00
|
|
|
<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-09-20 20:37:21 +00:00
|
|
|
<div role="navigation" aria-label="Page navigation">
|
2020-09-09 20:02:35 +00:00
|
|
|
<ul class="wy-breadcrumbs">
|
2022-11-09 18:56:39 +00:00
|
|
|
<li><a href="../../index.html" class="icon icon-home"></a></li>
|
|
|
|
<li class="breadcrumb-item"><a href="../index.html">Data Plotting Examples</a></li>
|
|
|
|
<li class="breadcrumb-item active">Upper Air BUFR Soundings</li>
|
2020-09-09 20:02:35 +00:00
|
|
|
<li class="wy-breadcrumbs-aside">
|
|
|
|
<a href="../../_sources/examples/generated/Upper_Air_BUFR_Soundings.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">
|
2021-09-20 20:37:21 +00:00
|
|
|
|
|
|
|
<section id="upper-air-bufr-soundings">
|
2022-06-03 19:57:40 +00:00
|
|
|
<h1>Upper Air BUFR Soundings<a class="headerlink" href="#upper-air-bufr-soundings" title="Permalink to this heading"></a></h1>
|
2020-09-09 20:02:35 +00:00
|
|
|
<p><a class="reference external" href="http://nbviewer.ipython.org/github/Unidata/python-awips/blob/master/examples/notebooks/Upper_Air_BUFR_Soundings.ipynb">Notebook</a>
|
|
|
|
The following script takes you through the steps of retrieving an Upper
|
|
|
|
Air vertical profile from an AWIPS EDEX server and plotting a
|
|
|
|
Skew-T/Log-P chart with Matplotlib and MetPy.</p>
|
|
|
|
<p>The <strong>bufrua</strong> plugin returns separate objects for parameters at
|
|
|
|
<strong>mandatory levels</strong> and at <strong>significant temperature levels</strong>. For the
|
|
|
|
Skew-T/Log-P plot, significant temperature levels are used to plot the
|
|
|
|
pressure, temperature, and dewpoint lines, while mandatory levels are
|
|
|
|
used to plot the wind profile.</p>
|
|
|
|
<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="kn">import</span> <span class="nn">matplotlib.tri</span> <span class="k">as</span> <span class="nn">mtri</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">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">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
|
|
|
|
<span class="kn">import</span> <span class="nn">math</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">metpy.calc</span> <span class="kn">import</span> <span class="n">wind_speed</span><span class="p">,</span> <span class="n">wind_components</span><span class="p">,</span> <span class="n">lcl</span><span class="p">,</span> <span class="n">dry_lapse</span><span class="p">,</span> <span class="n">parcel_profile</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="p">,</span> <span class="n">concatenate</span>
|
|
|
|
|
|
|
|
<span class="c1"># Set host</span>
|
|
|
|
<span class="n">DataAccessLayer</span><span class="o">.</span><span class="n">changeEDEXHost</span><span class="p">(</span><span class="s2">"edex-cloud.unidata.ucar.edu"</span><span class="p">)</span>
|
|
|
|
<span class="n">request</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="c1"># Set data type</span>
|
|
|
|
<span class="n">request</span><span class="o">.</span><span class="n">setDatatype</span><span class="p">(</span><span class="s2">"bufrua"</span><span class="p">)</span>
|
|
|
|
<span class="n">availableLocs</span> <span class="o">=</span> <span class="n">DataAccessLayer</span><span class="o">.</span><span class="n">getAvailableLocationNames</span><span class="p">(</span><span class="n">request</span><span class="p">)</span>
|
|
|
|
<span class="n">availableLocs</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
|
|
|
|
|
|
|
|
<span class="n">MAN_PARAMS</span> <span class="o">=</span> <span class="nb">set</span><span class="p">([</span><span class="s1">'prMan'</span><span class="p">,</span> <span class="s1">'htMan'</span><span class="p">,</span> <span class="s1">'tpMan'</span><span class="p">,</span> <span class="s1">'tdMan'</span><span class="p">,</span> <span class="s1">'wdMan'</span><span class="p">,</span> <span class="s1">'wsMan'</span><span class="p">])</span>
|
|
|
|
<span class="n">SIGT_PARAMS</span> <span class="o">=</span> <span class="nb">set</span><span class="p">([</span><span class="s1">'prSigT'</span><span class="p">,</span> <span class="s1">'tpSigT'</span><span class="p">,</span> <span class="s1">'tdSigT'</span><span class="p">])</span>
|
|
|
|
<span class="n">request</span><span class="o">.</span><span class="n">setParameters</span><span class="p">(</span><span class="s2">"wmoStaNum"</span><span class="p">,</span> <span class="s2">"validTime"</span><span class="p">,</span> <span class="s2">"rptType"</span><span class="p">,</span> <span class="s2">"staElev"</span><span class="p">,</span> <span class="s2">"numMand"</span><span class="p">,</span>
|
|
|
|
<span class="s2">"numSigT"</span><span class="p">,</span> <span class="s2">"numSigW"</span><span class="p">,</span> <span class="s2">"numTrop"</span><span class="p">,</span> <span class="s2">"numMwnd"</span><span class="p">,</span> <span class="s2">"staName"</span><span class="p">)</span>
|
|
|
|
<span class="n">request</span><span class="o">.</span><span class="n">getParameters</span><span class="p">()</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">MAN_PARAMS</span><span class="p">)</span>
|
|
|
|
<span class="n">request</span><span class="o">.</span><span class="n">getParameters</span><span class="p">()</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">SIGT_PARAMS</span><span class="p">)</span>
|
|
|
|
<span class="n">locations</span> <span class="o">=</span> <span class="n">DataAccessLayer</span><span class="o">.</span><span class="n">getAvailableLocationNames</span><span class="p">(</span><span class="n">request</span><span class="p">)</span>
|
|
|
|
<span class="n">locations</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
|
|
|
|
|
|
|
|
<span class="c1"># Set station ID (not name)</span>
|
|
|
|
<span class="n">request</span><span class="o">.</span><span class="n">setLocationNames</span><span class="p">(</span><span class="s2">"72562"</span><span class="p">)</span> <span class="c1">#KLBF</span>
|
|
|
|
|
|
|
|
<span class="c1"># Get all times</span>
|
|
|
|
<span class="n">datatimes</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">request</span><span class="p">)</span>
|
|
|
|
|
|
|
|
<span class="c1"># Get most recent record</span>
|
|
|
|
<span class="n">response</span> <span class="o">=</span> <span class="n">DataAccessLayer</span><span class="o">.</span><span class="n">getGeometryData</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="n">times</span><span class="o">=</span><span class="n">datatimes</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">validPeriod</span><span class="p">)</span>
|
|
|
|
|
|
|
|
<span class="c1"># Initialize data arrays</span>
|
|
|
|
<span class="n">tdMan</span><span class="p">,</span><span class="n">tpMan</span><span class="p">,</span><span class="n">prMan</span><span class="p">,</span><span class="n">wdMan</span><span class="p">,</span><span class="n">wsMan</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">np</span><span class="o">.</span><span class="n">array</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">np</span><span class="o">.</span><span class="n">array</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">prSig</span><span class="p">,</span><span class="n">tpSig</span><span class="p">,</span><span class="n">tdSig</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">np</span><span class="o">.</span><span class="n">array</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">manGeos</span> <span class="o">=</span> <span class="p">[]</span>
|
|
|
|
<span class="n">sigtGeos</span> <span class="o">=</span> <span class="p">[]</span>
|
|
|
|
|
|
|
|
<span class="c1"># Build arrays</span>
|
|
|
|
<span class="k">for</span> <span class="n">ob</span> <span class="ow">in</span> <span class="n">response</span><span class="p">:</span>
|
|
|
|
<span class="n">parm_array</span> <span class="o">=</span> <span class="n">ob</span><span class="o">.</span><span class="n">getParameters</span><span class="p">()</span>
|
|
|
|
<span class="k">if</span> <span class="nb">set</span><span class="p">(</span><span class="n">parm_array</span><span class="p">)</span> <span class="o">&</span> <span class="n">MAN_PARAMS</span><span class="p">:</span>
|
|
|
|
<span class="n">manGeos</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ob</span><span class="p">)</span>
|
|
|
|
<span class="n">prMan</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">prMan</span><span class="p">,</span><span class="n">ob</span><span class="o">.</span><span class="n">getNumber</span><span class="p">(</span><span class="s2">"prMan"</span><span class="p">))</span>
|
|
|
|
<span class="n">tpMan</span><span class="p">,</span> <span class="n">tpUnit</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tpMan</span><span class="p">,</span><span class="n">ob</span><span class="o">.</span><span class="n">getNumber</span><span class="p">(</span><span class="s2">"tpMan"</span><span class="p">)),</span> <span class="n">ob</span><span class="o">.</span><span class="n">getUnit</span><span class="p">(</span><span class="s2">"tpMan"</span><span class="p">)</span>
|
|
|
|
<span class="n">tdMan</span><span class="p">,</span> <span class="n">tdUnit</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tdMan</span><span class="p">,</span><span class="n">ob</span><span class="o">.</span><span class="n">getNumber</span><span class="p">(</span><span class="s2">"tdMan"</span><span class="p">)),</span> <span class="n">ob</span><span class="o">.</span><span class="n">getUnit</span><span class="p">(</span><span class="s2">"tdMan"</span><span class="p">)</span>
|
|
|
|
<span class="n">wdMan</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">wdMan</span><span class="p">,</span><span class="n">ob</span><span class="o">.</span><span class="n">getNumber</span><span class="p">(</span><span class="s2">"wdMan"</span><span class="p">))</span>
|
|
|
|
<span class="n">wsMan</span><span class="p">,</span> <span class="n">wsUnit</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">wsMan</span><span class="p">,</span><span class="n">ob</span><span class="o">.</span><span class="n">getNumber</span><span class="p">(</span><span class="s2">"wsMan"</span><span class="p">)),</span> <span class="n">ob</span><span class="o">.</span><span class="n">getUnit</span><span class="p">(</span><span class="s2">"wsMan"</span><span class="p">)</span>
|
|
|
|
<span class="k">continue</span>
|
|
|
|
<span class="k">if</span> <span class="nb">set</span><span class="p">(</span><span class="n">parm_array</span><span class="p">)</span> <span class="o">&</span> <span class="n">SIGT_PARAMS</span><span class="p">:</span>
|
|
|
|
<span class="n">sigtGeos</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ob</span><span class="p">)</span>
|
|
|
|
<span class="n">prSig</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">prSig</span><span class="p">,</span><span class="n">ob</span><span class="o">.</span><span class="n">getNumber</span><span class="p">(</span><span class="s2">"prSigT"</span><span class="p">))</span>
|
|
|
|
<span class="n">tpSig</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tpSig</span><span class="p">,</span><span class="n">ob</span><span class="o">.</span><span class="n">getNumber</span><span class="p">(</span><span class="s2">"tpSigT"</span><span class="p">))</span>
|
|
|
|
<span class="n">tdSig</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tdSig</span><span class="p">,</span><span class="n">ob</span><span class="o">.</span><span class="n">getNumber</span><span class="p">(</span><span class="s2">"tdSigT"</span><span class="p">))</span>
|
|
|
|
<span class="k">continue</span>
|
|
|
|
|
|
|
|
<span class="c1"># Sort mandatory levels (but not sigT levels) because of the 1000.MB interpolation inclusion</span>
|
|
|
|
<span class="n">ps</span> <span class="o">=</span> <span class="n">prMan</span><span class="o">.</span><span class="n">argsort</span><span class="p">()[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
|
|
|
|
<span class="n">wpres</span> <span class="o">=</span> <span class="n">prMan</span><span class="p">[</span><span class="n">ps</span><span class="p">]</span>
|
|
|
|
<span class="n">direc</span> <span class="o">=</span> <span class="n">wdMan</span><span class="p">[</span><span class="n">ps</span><span class="p">]</span>
|
|
|
|
<span class="n">spd</span> <span class="o">=</span> <span class="n">wsMan</span><span class="p">[</span><span class="n">ps</span><span class="p">]</span>
|
|
|
|
<span class="n">tman</span> <span class="o">=</span> <span class="n">tpMan</span><span class="p">[</span><span class="n">ps</span><span class="p">]</span>
|
|
|
|
<span class="n">dman</span> <span class="o">=</span> <span class="n">tdMan</span><span class="p">[</span><span class="n">ps</span><span class="p">]</span>
|
|
|
|
|
|
|
|
<span class="c1"># Flag missing data</span>
|
|
|
|
<span class="n">prSig</span><span class="p">[</span><span class="n">prSig</span> <span class="o"><=</span> <span class="o">-</span><span class="mi">9999</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span>
|
|
|
|
<span class="n">tpSig</span><span class="p">[</span><span class="n">tpSig</span> <span class="o"><=</span> <span class="o">-</span><span class="mi">9999</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span>
|
|
|
|
<span class="n">tdSig</span><span class="p">[</span><span class="n">tdSig</span> <span class="o"><=</span> <span class="o">-</span><span class="mi">9999</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span>
|
|
|
|
<span class="n">wpres</span><span class="p">[</span><span class="n">wpres</span> <span class="o"><=</span> <span class="o">-</span><span class="mi">9999</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span>
|
|
|
|
<span class="n">tman</span><span class="p">[</span><span class="n">tman</span> <span class="o"><=</span> <span class="o">-</span><span class="mi">9999</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span>
|
|
|
|
<span class="n">dman</span><span class="p">[</span><span class="n">dman</span> <span class="o"><=</span> <span class="o">-</span><span class="mi">9999</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span>
|
|
|
|
<span class="n">direc</span><span class="p">[</span><span class="n">direc</span> <span class="o"><=</span> <span class="o">-</span><span class="mi">9999</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span>
|
|
|
|
<span class="n">spd</span><span class="p">[</span><span class="n">spd</span> <span class="o"><=</span> <span class="o">-</span><span class="mi">9999</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span>
|
|
|
|
|
|
|
|
<span class="c1"># assign units</span>
|
|
|
|
<span class="n">p</span> <span class="o">=</span> <span class="p">(</span><span class="n">prSig</span><span class="o">/</span><span class="mi">100</span><span class="p">)</span> <span class="o">*</span> <span class="n">units</span><span class="o">.</span><span class="n">mbar</span>
|
|
|
|
<span class="n">wpres</span> <span class="o">=</span> <span class="p">(</span><span class="n">wpres</span><span class="o">/</span><span class="mi">100</span><span class="p">)</span> <span class="o">*</span> <span class="n">units</span><span class="o">.</span><span class="n">mbar</span>
|
|
|
|
<span class="n">u</span><span class="p">,</span><span class="n">v</span> <span class="o">=</span> <span class="n">wind_components</span><span class="p">(</span><span class="n">spd</span> <span class="o">*</span> <span class="n">units</span><span class="o">.</span><span class="n">knots</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">deg2rad</span><span class="p">(</span><span class="n">direc</span><span class="p">))</span>
|
|
|
|
|
|
|
|
<span class="k">if</span> <span class="n">tpUnit</span> <span class="o">==</span> <span class="s1">'K'</span><span class="p">:</span>
|
|
|
|
<span class="n">T</span> <span class="o">=</span> <span class="p">(</span><span class="n">tpSig</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">Td</span> <span class="o">=</span> <span class="p">(</span><span class="n">tdSig</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">tman</span> <span class="o">=</span> <span class="n">tman</span> <span class="o">*</span> <span class="n">units</span><span class="o">.</span><span class="n">degC</span>
|
|
|
|
<span class="n">dman</span> <span class="o">=</span> <span class="n">dman</span> <span class="o">*</span> <span class="n">units</span><span class="o">.</span><span class="n">degC</span>
|
|
|
|
|
|
|
|
<span class="c1"># Create SkewT/LogP</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">10</span><span class="p">,</span> <span class="mi">12</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">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">Td</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">wpres</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">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">60</span><span class="p">,</span> <span class="mi">30</span><span class="p">)</span>
|
|
|
|
|
|
|
|
<span class="n">title_string</span> <span class="o">=</span> <span class="s2">" T(F) Td "</span>
|
|
|
|
<span class="n">title_string</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">ob</span><span class="o">.</span><span class="n">getString</span><span class="p">(</span><span class="s2">"staName"</span><span class="p">))</span>
|
|
|
|
<span class="n">title_string</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">ob</span><span class="o">.</span><span class="n">getDataTime</span><span class="p">()</span><span class="o">.</span><span class="n">getRefTime</span><span class="p">())</span>
|
|
|
|
<span class="n">title_string</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">ob</span><span class="o">.</span><span class="n">getNumber</span><span class="p">(</span><span class="s2">"staElev"</span><span class="p">))</span> <span class="o">+</span> <span class="s2">"m elev)"</span>
|
|
|
|
<span class="n">title_string</span> <span class="o">+=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">round</span><span class="p">(</span><span class="n">T</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">'degF'</span><span class="p">)</span><span class="o">.</span><span class="n">item</span><span class="p">(),</span><span class="mi">1</span><span class="p">))</span>
|
|
|
|
<span class="n">title_string</span> <span class="o">+=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">round</span><span class="p">(</span><span class="n">Td</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">'degF'</span><span class="p">)</span><span class="o">.</span><span class="n">item</span><span class="p">(),</span><span class="mi">1</span><span class="p">))</span>
|
|
|
|
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="n">title_string</span><span class="p">,</span> <span class="n">loc</span><span class="o">=</span><span class="s1">'left'</span><span class="p">)</span>
|
|
|
|
|
|
|
|
<span class="c1"># Calculate LCL height and plot as black dot</span>
|
|
|
|
<span class="n">lcl_pressure</span><span class="p">,</span> <span class="n">lcl_temperature</span> <span class="o">=</span> <span class="n">lcl</span><span class="p">(</span><span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">T</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">Td</span><span class="p">[</span><span class="mi">0</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">lcl_pressure</span><span class="p">,</span> <span class="n">lcl_temperature</span><span class="p">,</span> <span class="s1">'ko'</span><span class="p">,</span> <span class="n">markerfacecolor</span><span class="o">=</span><span class="s1">'black'</span><span class="p">)</span>
|
|
|
|
|
|
|
|
<span class="c1"># Calculate full parcel profile and add to plot as black line</span>
|
|
|
|
<span class="n">prof</span> <span class="o">=</span> <span class="n">parcel_profile</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="mi">0</span><span class="p">],</span> <span class="n">Td</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">'degC'</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">prof</span><span class="p">,</span> <span class="s1">'k'</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="c1"># An example of a slanted line at constant T -- in this case the 0 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">2</span><span class="p">)</span>
|
|
|
|
|
|
|
|
<span class="c1"># Draw 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">'30%'</span><span class="p">,</span> <span class="s1">'30%'</span><span class="p">,</span> <span class="n">loc</span><span class="o">=</span><span class="mi">3</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">wsMan</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">spd</span><span class="p">)</span>
|
|
|
|
|
|
|
|
<span class="c1"># Show the plot</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/Upper_Air_BUFR_Soundings_1_0.png" src="../../_images/Upper_Air_BUFR_Soundings_1_0.png" />
|
2021-09-20 20:37:21 +00:00
|
|
|
</section>
|
2020-09-09 20:02:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
2021-09-20 20:37:21 +00:00
|
|
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
2021-03-23 16:15:37 +00:00
|
|
|
<a href="Satellite_Imagery.html" class="btn btn-neutral float-left" title="Satellite Imagery" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
2022-04-28 16:51:48 +00:00
|
|
|
<a href="Watch_Warning_and_Advisory_Plotting.html" class="btn btn-neutral float-right" title="Watch Warning and Advisory Plotting" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
2020-09-09 20:02:35 +00:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<hr/>
|
|
|
|
|
|
|
|
<div role="contentinfo">
|
2021-09-20 20:37:21 +00:00
|
|
|
<p>© Copyright 2018, Unidata.</p>
|
2020-09-09 20:02:35 +00:00
|
|
|
</div>
|
2021-09-20 20:37:21 +00:00
|
|
|
|
|
|
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
2021-03-23 16:15:37 +00:00
|
|
|
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
2021-09-20 20:37:21 +00:00
|
|
|
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
|
|
|
2020-09-09 20:02:35 +00:00
|
|
|
|
|
|
|
</footer>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</section>
|
|
|
|
</div>
|
2021-09-20 20:37:21 +00:00
|
|
|
<script>
|
2020-09-09 20:02:35 +00:00
|
|
|
jQuery(function () {
|
|
|
|
SphinxRtdTheme.Navigation.enable(true);
|
|
|
|
});
|
2021-09-20 20:37:21 +00:00
|
|
|
</script>
|
2020-09-09 20:02:35 +00:00
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|