python-awips/about.html
2025-02-13 18:28:48 +00:00

282 lines
No EOL
17 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html class="writer-html5" lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>About Unidata AWIPS &mdash; python-awips documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=03e43079" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=b3ba4146"></script>
<script src="_static/doctools.js?v=888ff710"></script>
<script src="_static/sphinx_highlight.js?v=4825356b"></script>
<script src="_static/js/theme.js"></script>
<link rel="author" title="About these documents" href="#" />
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="prev" title="Grid Parameters" href="gridparms.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" >
<a href="index.html" class="icon icon-home">
python-awips
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="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="Navigation menu">
<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"><a class="reference internal" href="examples/index.html">Data Plotting Examples</a></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 current"><a class="current reference internal" href="#">About Unidata AWIPS</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#license">License</a></li>
<li class="toctree-l2"><a class="reference internal" href="#about-awips">About AWIPS</a></li>
<li class="toctree-l2"><a class="reference internal" href="#edex">EDEX</a></li>
<li class="toctree-l2"><a class="reference internal" href="#cave">CAVE</a></li>
<li class="toctree-l2"><a class="reference internal" href="#alertviz">Alertviz</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id1">LDM</a></li>
<li class="toctree-l2"><a class="reference internal" href="#edexbridge">edexBridge</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id2">Qpid</a></li>
<li class="toctree-l2"><a class="reference internal" href="#postgresql">PostgreSQL</a></li>
<li class="toctree-l2"><a class="reference internal" href="#hdf5">HDF5</a></li>
<li class="toctree-l2"><a class="reference internal" href="#pypies-httpd-pypies">PyPIES (httpd-pypies)</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<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">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">About Unidata AWIPS</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/about.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">
<section id="about-unidata-awips">
<h1>About Unidata AWIPS<a class="headerlink" href="#about-unidata-awips" title="Permalink to this heading"></a></h1>
<p>AWIPS is a weather forecasting display and analysis package
developed by the National Weather Service and Raytheon. AWIPS is a
Java application consisting of a data-rendering client (CAVE, which runs
on Red Hat/CentOS Linux and Mac OS X) and a backend data server (EDEX,
which runs only on Linux)</p>
<p>AWIPS takes a unified approach to data ingest, and most data types
follow a standard path through the system. At a high level, data flow
describes the path taken by a piece of data from its source to its
display by a client system. This path starts with data requested and
stored by an <a class="reference external" href="#ldm">LDM</a> client and includes the decoding of the data
and storing of decoded data in a form readable and displayable by the
end user.</p>
<p>The AWIPS ingest and request processes are a highly distributed
system, and the messaging broken <a class="reference external" href="#qpid">Qpid</a> is used for
inter-process communication.</p>
<figure class="align-center" id="id3">
<img alt="image" src="http://www.unidata.ucar.edu/software/awips2/images/awips2_coms.png" />
<figcaption>
<p><span class="caption-text">image</span><a class="headerlink" href="#id3" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<section id="license">
<h2>License<a class="headerlink" href="#license" title="Permalink to this heading"></a></h2>
<p>The AWIPS software package released by the Unidata Program Center is considered to
be in the public domain since it is released without proprietary code. As such, export
controls do not apply.  Any person is free to download, modify, distribute, or share
Unidata AWIPS in any form. Entities who modify or re-distribute Unidata AWIPS
software are encouraged to conduct their own FOSS/COTS entitlement/license review
to ensure that they remain compatible with the associated terms (see
FOSS_COTS_License.pdf at <a class="reference external" href="https://github.com/Unidata/awips2">https://github.com/Unidata/awips2</a>).</p>
</section>
<section id="about-awips">
<h2>About AWIPS<a class="headerlink" href="#about-awips" title="Permalink to this heading"></a></h2>
<p>The primary AWIPS application for data ingest, processing, and
storage is the Environmental Data EXchange (<strong>EDEX</strong>) server; the
primary AWIPS application for visualization/data manipulation is the
Common AWIPS Visualization Environment (<strong>CAVE</strong>) client, which is
typically installed on a workstation separate from other AWIPS
components.</p>
<p>In addition to programs developed specifically for AWIPS, AWIPS uses
several commercial off-the-shelf (COTS) and Free or Open Source software
(FOSS) products to assist in its operation. The following components,
working together and communicating, compose the entire AWIPS system.</p>
</section>
<section id="edex">
<h2>EDEX<a class="headerlink" href="#edex" title="Permalink to this heading"></a></h2>
<p>The main server for AWIPS. Qpid sends alerts to EDEX when data stored
by the LDM is ready for processing. These Qpid messages include file
header information which allows EDEX to determine the appropriate data
decoder to use. The default ingest server (simply named ingest) handles
all data ingest other than grib messages, which are processed by a
separate ingestGrib server. After decoding, EDEX writes metadata to the
database via Postgres and saves the processed data in HDF5 via PyPIES. A
third EDEX server, request, feeds requested data to CAVE clients. EDEX
ingest and request servers are started and stopped with the commands
<code class="docutils literal notranslate"><span class="pre">edex</span> <span class="pre">start</span></code> and <code class="docutils literal notranslate"><span class="pre">edex</span> <span class="pre">stop</span></code>, which runs the system script
<code class="docutils literal notranslate"><span class="pre">/etc/rc.d/init.d/edex_camel</span></code></p>
</section>
<section id="cave">
<h2>CAVE<a class="headerlink" href="#cave" title="Permalink to this heading"></a></h2>
<p>Common AWIPS Visualization Environment. The data rendering and
visualization tool for AWIPS. CAVE contains of a number of different
data display configurations called perspectives. Perspectives used in
operational forecasting environments include <strong>D2D</strong> (Display
Two-Dimensional), <strong>GFE</strong> (Graphical Forecast Editor), and <strong>NCP</strong>
(National Centers Perspective). CAVE is started with the command
<code class="docutils literal notranslate"><span class="pre">/awips2/cave/cave.sh</span></code> or <code class="docutils literal notranslate"><span class="pre">cave.sh</span></code></p>
<figure class="align-center" id="id4">
<img alt="CAVE" src="http://www.unidata.ucar.edu/software/awips2/images/Unidata_AWIPS2_CAVE.png" />
<figcaption>
<p><span class="caption-text">CAVE</span><a class="headerlink" href="#id4" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="alertviz">
<h2>Alertviz<a class="headerlink" href="#alertviz" title="Permalink to this heading"></a></h2>
<p><strong>Alertviz</strong> is a modernized version of an AWIPS I application, designed
to present various notifications, error messages, and alarms to the user
(forecaster). AlertViz can be executed either independently or from CAVE
itself. In the Unidata CAVE client, Alertviz is run within CAVE and is
not required to be run separately. The toolbar is also <strong>hidden from
view</strong> and is accessed by right-click on the desktop taskbar icon.</p>
</section>
<section id="id1">
<h2>LDM<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h2>
<p><a class="reference external" href="http://www.unidata.ucar.edu/software/ldm/">http://www.unidata.ucar.edu/software/ldm/</a></p>
<p>The <strong>LDM</strong> (Local Data Manager), developed and supported by Unidata, is
a suite of client and server programs designed for data distribution,
and is the fundamental component comprising the Unidata Internet Data
Distribution (IDD) system. In AWIPS, the LDM provides data feeds for
grids, surface observations, upper-air profiles, satellite and radar
imagery and various other meteorological datasets. The LDM writes data
directly to file and alerts EDEX via Qpid when a file is available for
processing. The LDM is started and stopped with the commands
<code class="docutils literal notranslate"><span class="pre">edex</span> <span class="pre">start</span></code> and <code class="docutils literal notranslate"><span class="pre">edex</span> <span class="pre">stop</span></code>, which runs the commands
<code class="docutils literal notranslate"><span class="pre">service</span> <span class="pre">edex_ldm</span> <span class="pre">start</span></code> and <code class="docutils literal notranslate"><span class="pre">service</span> <span class="pre">edex_ldm</span> <span class="pre">stop</span></code></p>
</section>
<section id="edexbridge">
<h2>edexBridge<a class="headerlink" href="#edexbridge" title="Permalink to this heading"></a></h2>
<p>edexBridge, invoked in the LDM configuration file
<code class="docutils literal notranslate"><span class="pre">/awips2/ldm/etc/ldmd.conf</span></code>, is used by the LDM to post “data
available” messaged to Qpid, which alerts the EDEX Ingest server that a
file is ready for processing.</p>
</section>
<section id="id2">
<h2>Qpid<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<p><a class="reference external" href="http://qpid.apache.org">http://qpid.apache.org</a></p>
<p><strong>Apache Qpid</strong>, the Queue Processor Interface Daemon, is the messaging
system used by AWIPS to facilitate communication between services.
When the LDM receives a data file to be processed, it employs
<strong>edexBridge</strong> to send EDEX ingest servers a message via Qpid. When EDEX
has finished decoding the file, it sends CAVE a message via Qpid that
data are available for display or further processing. Qpid is started
and stopped by <code class="docutils literal notranslate"><span class="pre">edex</span> <span class="pre">start</span></code> and <code class="docutils literal notranslate"><span class="pre">edex</span> <span class="pre">stop</span></code>, and is controlled by
the system script <code class="docutils literal notranslate"><span class="pre">/etc/rc.d/init.d/qpidd</span></code></p>
</section>
<section id="postgresql">
<h2>PostgreSQL<a class="headerlink" href="#postgresql" title="Permalink to this heading"></a></h2>
<p><a class="reference external" href="http://www.postgresql.org">http://www.postgresql.org</a></p>
<p><strong>PostgreSQL</strong>, known simply as Postgres, is a relational database
management system (DBMS) which handles the storage and retrieval of
metadata, database tables and some decoded data. The storage and reading
of EDEX metadata is handled by the Postgres DBMS. Users may query the
metadata tables by using the termainal-based front-end for Postgres
called <strong>psql</strong>. Postgres is started and stopped by <code class="docutils literal notranslate"><span class="pre">edex</span> <span class="pre">start</span></code> and
<code class="docutils literal notranslate"><span class="pre">edex</span> <span class="pre">stop</span></code>, and is controlled by the system script
<code class="docutils literal notranslate"><span class="pre">/etc/rc.d/init.d/edex_postgres</span></code></p>
</section>
<section id="hdf5">
<h2>HDF5<a class="headerlink" href="#hdf5" title="Permalink to this heading"></a></h2>
<p><a class="reference external" href="http://www.hdfgroup.org/HDF5/">http://www.hdfgroup.org/HDF5/</a></p>
<p><strong>Hierarchical Data Format (v.5)</strong> is
the primary data storage format used by AWIPS for processed grids,
satellite and radar imagery and other products. Similar to netCDF,
developed and supported by Unidata, HDF5 supports multiple types of data
within a single file. For example, a single HDF5 file of radar data may
contain multiple volume scans of base reflectivity and base velocity as
well as derived products such as composite reflectivity. The file may
also contain data from multiple radars. HDF5 is stored in
<code class="docutils literal notranslate"><span class="pre">/awips2/edex/data/hdf5/</span></code></p>
</section>
<section id="pypies-httpd-pypies">
<h2>PyPIES (httpd-pypies)<a class="headerlink" href="#pypies-httpd-pypies" title="Permalink to this heading"></a></h2>
<p><strong>PyPIES</strong>, Python Process Isolated Enhanced Storage, was created for
AWIPS to isolate the management of HDF5 Processed Data Storage from
the EDEX processes. PyPIES manages access, i.e., reads and writes, of
data in the HDF5 files. In a sense, PyPIES provides functionality
similar to a DBMS (i.e PostgreSQL for metadata); all data being written
to an HDF5 file is sent to PyPIES, and requests for data stored in HDF5
are processed by PyPIES.</p>
<p>PyPIES is implemented in two parts: 1. The PyPIES manager is a Python
application that runs as part of an Apache HTTP server, and handles
requests to store and retrieve data. 2. The PyPIES logger is a Python
process that coordinates logging. PyPIES is started and stopped by
<code class="docutils literal notranslate"><span class="pre">edex</span> <span class="pre">start</span></code> and <code class="docutils literal notranslate"><span class="pre">edex</span> <span class="pre">stop</span></code>, and is controlled by the system script
<code class="docutils literal notranslate"><span class="pre">/etc/rc.d/init.d/https-pypies</span></code></p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="gridparms.html" class="btn btn-neutral float-left" title="Grid Parameters" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2025, NSF Unidata.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>