mirror of
https://github.com/Unidata/python-awips.git
synced 2025-02-23 14:57:56 -05:00
update install, about, dev, index docs
This commit is contained in:
parent
37003a839f
commit
984dd3b121
5 changed files with 94 additions and 59 deletions
|
@ -1,16 +1,14 @@
|
|||
=====
|
||||
About AWIPS II
|
||||
=====
|
||||
===================
|
||||
About Unidata AWIPS
|
||||
===================
|
||||
|
||||
.. raw:: html
|
||||
|
||||
AWIPS II is a weather forecasting display and analysis package being
|
||||
developed by the National Weather Service and Raytheon. AWIPS II is a
|
||||
AWIPS is a weather forecasting display and analysis package being
|
||||
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)
|
||||
|
||||
AWIPS II takes a unified approach to data ingest, and most data types
|
||||
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
|
||||
|
@ -18,7 +16,7 @@ stored by an `LDM <#ldm>`_ client and includes the decoding of the data
|
|||
and storing of decoded data in a form readable and displayable by the
|
||||
end user.
|
||||
|
||||
The AWIPS II ingest and request processes are a highly distributed
|
||||
The AWIPS ingest and request processes are a highly distributed
|
||||
system, and the messaging broken `Qpid <#qpid>`_ is used for
|
||||
inter-process communication.
|
||||
|
||||
|
@ -43,22 +41,22 @@ FOSS_COTS_License.pdf at `https://github.com/Unidata/awips2 <https://github.com/
|
|||
About AWIPS
|
||||
-----------
|
||||
|
||||
The primary AWIPS II application for data ingest, processing, and
|
||||
The primary AWIPS application for data ingest, processing, and
|
||||
storage is the Environmental Data EXchange (**EDEX**) server; the
|
||||
primary AWIPS II application for visualization/data manipulation is the
|
||||
primary AWIPS application for visualization/data manipulation is the
|
||||
Common AWIPS Visualization Environment (**CAVE**) client, which is
|
||||
typically installed on a workstation separate from other AWIPS II
|
||||
typically installed on a workstation separate from other AWIPS
|
||||
components.
|
||||
|
||||
In addition to programs developed specifically for AWIPS, AWIPS II uses
|
||||
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 II system.
|
||||
working together and communicating, compose the entire AWIPS system.
|
||||
|
||||
AWIPS II Python Stack
|
||||
---------------------
|
||||
AWIPS Python Stack
|
||||
------------------
|
||||
|
||||
A number of Python packages are bundled with the AWIPS II EDEX and CAVE
|
||||
A number of Python packages are bundled with the AWIPS EDEX and CAVE
|
||||
installations.
|
||||
|
||||
|
||||
|
@ -66,9 +64,8 @@ installations.
|
|||
Package Version RPM Name
|
||||
====================== ============== ==============================
|
||||
Python 2.7.10 awips2-python
|
||||
**awips** **0.9.6** **awips2-python-awips**
|
||||
basemap 1.0.7 awips2-python-basemap
|
||||
cartopy 0.13.0 awips2-python-cartopy
|
||||
**awips** **0.9.7** **awips2-python-awips**
|
||||
cartopy 0.14.2 awips2-python-cartopy
|
||||
cherrypy 3.1.2 awips2-python-cherrypy
|
||||
cycler 0.10.0 awips2-python-cycler
|
||||
cython 0.23.4 awips2-python-cython
|
||||
|
@ -78,18 +75,15 @@ h5py 1.3.0 awips2-python-h5py
|
|||
jep 3.4.1 awips2-python-jep
|
||||
matplotlib 1.5.1 awips2-python-matplotlib
|
||||
metpy 0.3.0 awips2-python-metpy
|
||||
nose 0.11.1 awips2-python-nose
|
||||
nose 1.3.7 awips2-python-nose
|
||||
numpy 1.8.0 awips2-python-numpy
|
||||
pil 1.1.6 awips2-python-pil
|
||||
pint 0.7.2 awips2-python-pint
|
||||
pmw 1.3.2 awips2-python-pmw
|
||||
pupynere 1.0.13 awips2-python-pupynere
|
||||
pycairo 1.2.2 awips2-python-pycairo
|
||||
pygtk 2.8.6 awips2-python-pygtk
|
||||
pyparsing 2.1.0 awips2-python-pyparsing
|
||||
qpid 0.32 awips2-python-qpid
|
||||
scientific 2.8 awips2-python-scientific
|
||||
scipy 0.9.0 awips2-python-scipy
|
||||
scipy 0.15.1 awips2-python-scipy
|
||||
shapely 1.5.9 awips2-python-shapely
|
||||
six 1.10.0 awips2-python-six
|
||||
tables 2.1.2 awips2-python-tables
|
||||
|
@ -99,9 +93,9 @@ werkzeug 3.1.2 awips2-python-werkzeug
|
|||
|
||||
|
||||
EDEX
|
||||
-------------------
|
||||
----
|
||||
|
||||
The main server for AWIPS II. Qpid sends alerts to EDEX when data stored
|
||||
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
|
||||
|
@ -114,10 +108,10 @@ ingest and request servers are started and stopped with the commands
|
|||
``/etc/rc.d/init.d/edex_camel``
|
||||
|
||||
CAVE
|
||||
-------------------
|
||||
----
|
||||
|
||||
Common AWIPS Visualization Environment. The data rendering and
|
||||
visualization tool for AWIPS II. CAVE contains of a number of different
|
||||
visualization tool for AWIPS. CAVE contains of a number of different
|
||||
data display configurations called perspectives. Perspectives used in
|
||||
operational forecasting environments include **D2D** (Display
|
||||
Two-Dimensional), **GFE** (Graphical Forecast Editor), and **NCP**
|
||||
|
@ -131,7 +125,7 @@ Two-Dimensional), **GFE** (Graphical Forecast Editor), and **NCP**
|
|||
CAVE
|
||||
|
||||
Alertviz
|
||||
-------------------
|
||||
--------
|
||||
|
||||
**Alertviz** is a modernized version of an AWIPS I application, designed
|
||||
to present various notifications, error messages, and alarms to the user
|
||||
|
@ -141,14 +135,14 @@ not required to be run separately. The toolbar is also **hidden from
|
|||
view** and is accessed by right-click on the desktop taskbar icon.
|
||||
|
||||
LDM
|
||||
-------------------
|
||||
---
|
||||
|
||||
`http://www.unidata.ucar.edu/software/ldm/ <http://www.unidata.ucar.edu/software/ldm/>`_
|
||||
|
||||
The **LDM** (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 II, the LDM provides data feeds for
|
||||
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
|
||||
|
@ -157,7 +151,7 @@ processing. The LDM is started and stopped with the commands
|
|||
``service edex_ldm start`` and ``service edex_ldm stop``
|
||||
|
||||
edexBridge
|
||||
-------------------
|
||||
----------
|
||||
|
||||
edexBridge, invoked in the LDM configuration file
|
||||
``/awips2/ldm/etc/ldmd.conf``, is used by the LDM to post "data
|
||||
|
@ -165,12 +159,12 @@ available" messaged to Qpid, which alerts the EDEX Ingest server that a
|
|||
file is ready for processing.
|
||||
|
||||
Qpid
|
||||
-------------------
|
||||
----
|
||||
|
||||
`http://qpid.apache.org <http://qpid.apache.org>`_
|
||||
|
||||
**Apache Qpid**, the Queue Processor Interface Daemon, is the messaging
|
||||
system used by AWIPS II to facilitate communication between services.
|
||||
system used by AWIPS to facilitate communication between services.
|
||||
When the LDM receives a data file to be processed, it employs
|
||||
**edexBridge** to send EDEX ingest servers a message via Qpid. When EDEX
|
||||
has finished decoding the file, it sends CAVE a message via Qpid that
|
||||
|
@ -179,7 +173,7 @@ and stopped by ``edex start`` and ``edex stop``, and is controlled by
|
|||
the system script ``/etc/rc.d/init.d/qpidd``
|
||||
|
||||
PostgreSQL
|
||||
-------------------
|
||||
----------
|
||||
|
||||
`http://www.postgresql.org <http://www.postgresql.org>`_
|
||||
|
||||
|
@ -193,12 +187,12 @@ called **psql**. Postgres is started and stopped by ``edex start`` and
|
|||
``/etc/rc.d/init.d/edex_postgres``
|
||||
|
||||
HDF5
|
||||
-------------------
|
||||
----
|
||||
|
||||
`http://www.hdfgroup.org/HDF5/ <http://www.hdfgroup.org/HDF5/>`_
|
||||
|
||||
**Hierarchical Data Format (v.5)** is
|
||||
the primary data storage format used by AWIPS II for processed grids,
|
||||
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
|
||||
|
@ -208,10 +202,10 @@ also contain data from multiple radars. HDF5 is stored in
|
|||
``/awips2/edex/data/hdf5/``
|
||||
|
||||
PyPIES (httpd-pypies)
|
||||
-------------------
|
||||
---------------------
|
||||
|
||||
**PyPIES**, Python Process Isolated Enhanced Storage, was created for
|
||||
AWIPS II to isolate the management of HDF5 Processed Data Storage from
|
||||
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
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
Dev Guide
|
||||
=========
|
||||
Development Guide
|
||||
=================
|
||||
|
||||
The Data Access Framework allows developers to retrieve different types
|
||||
of data without having dependencies on those types of data. It provides
|
||||
|
@ -266,7 +266,7 @@ contributing the necessary code for the framework to support its data.
|
|||
For example, the satellite plugin provides a factory class for
|
||||
interacting with the framework and registers itself as being compatible
|
||||
with the Data Access Framework. This concept is similar to how EDEX in
|
||||
AWIPS II expects a plugin developer to provide a decoder class and
|
||||
AWIPS expects a plugin developer to provide a decoder class and
|
||||
record class and register them, but then automatically manages the rest
|
||||
of the ingest process including routing, storing, and alerting on new
|
||||
data. This style of plugin architecture effectively enables the
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
.. _examples-index:
|
||||
|
||||
################
|
||||
Data Plotting Examples
|
||||
################
|
||||
######################
|
||||
Data Plotting Examples
|
||||
######################
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
|
|
@ -2,9 +2,45 @@
|
|||
Python AWIPS Data Access Framework
|
||||
==================================
|
||||
|
||||
The `python-awips <https://github.com/Unidata/python-awips>`_ package provides a Data Access Framework (DAF) for requesting data from a remote AWIPS II EDEX server.
|
||||
`AWIPS <http://unidata.github.io/awips2>`_ is a weather display and analysis package developed by the National Weather Service for operational forecasting. UCAR's `Unidata Program Center <http://www.unidata.ucar.edu/software/awips2/>`_ supports a non-operational open-source release of the AWIPS software (`EDEX <http://unidata.github.io/awips2/#edex>`_, `CAVE <http://unidata.github.io/awips2/#cave>`_, and `python-awips <https://github.com/Unidata/python-awips>`_).
|
||||
|
||||
The `AWIPS II Python Stack <about.html#awips-ii-python-stack>`_ installed via RPM contains the DAF, matplotlib, numpy, scipy, basemap, pint, shapely, and other packages.
|
||||
The python-awips package provides a data access framework for requesting grid and geometry datasets from an `EDEX <http://unidata.github.io/awips2>`_ server.
|
||||
|
||||
.. _Jupyter Notebook: http://nbviewer.jupyter.org/github/Unidata/python-awips/tree/master/examples/notebooks
|
||||
|
||||
Install
|
||||
-------
|
||||
|
||||
- pip install python-awips
|
||||
|
||||
Requirements
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- Python 2.7+
|
||||
- Shapely 1.4+
|
||||
- MetPy and enum34 to run the `Jupyter Notebook`_ examples
|
||||
|
||||
How to Use
|
||||
~~~~~~~~~~
|
||||
|
||||
::
|
||||
|
||||
from awips.dataaccess import DataAccessLayer
|
||||
DataAccessLayer.changeEDEXHost("edex-cloud.unidata.ucar.edu")
|
||||
request = DataAccessLayer.newDataRequest()
|
||||
dataTypes = DataAccessLayer.getSupportedDatatypes()
|
||||
request.setDatatype("grid")
|
||||
request.addLocationNames("RAP40")
|
||||
request.setParameters("T")
|
||||
request.setLevels("0.0SFC")
|
||||
cycles = DataAccessLayer.getAvailableTimes(request, True)
|
||||
times = DataAccessLayer.getAvailableTimes(request)
|
||||
response = DataAccessLayer.getGridData(request, times[-1])
|
||||
for grid in response:
|
||||
data = grid.getRawData()
|
||||
lons, lats = grid.getLatLonCoords()
|
||||
|
||||
See the `API Documentation <api/DataAccessLayer.html>`_ for more information.
|
||||
|
||||
-------------
|
||||
Documentation
|
||||
|
@ -14,7 +50,8 @@ Documentation
|
|||
:maxdepth: 2
|
||||
|
||||
install
|
||||
api/index
|
||||
examples/index
|
||||
about
|
||||
dev
|
||||
gridparms
|
||||
about
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.. _Jupyter Notebook: http://nbviewer.jupyter.org/github/Unidata/python-awips/tree/master/examples/notebooks
|
||||
|
||||
Install python-awips
|
||||
Installation
|
||||
------------------
|
||||
|
||||
- pip install python-awips
|
||||
|
@ -15,19 +15,23 @@ Requirements
|
|||
Install from Github
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- git clone https://github.com/Unidata/python-awips.git
|
||||
- cd python-awips
|
||||
- git clone https://github.com/Unidata/python-awips.git && cd python-awips
|
||||
- python setup.py install
|
||||
|
||||
|
||||
Install for AWIPS (/awips2/python)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Install for AWIPS
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
AWIPS II >=15.1.3 (March 2016) has `python-awips` bundled with the awips2-server and awips2-cave groups, as well as a full meteorological data stack (metpy, matplotlib, numpy, etc).
|
||||
On standalone AWIPS systems, the full `AWIPS Python Stack <about.html#awips-ii-python-stack>`_ is installed to ``/awips2/python`` as RPM packages.
|
||||
|
||||
Easy install on an AWIPS system
|
||||
|
||||
- wget https://bootstrap.pypa.io/ez_setup.py -O - | /awips2/python/bin/python
|
||||
- /awips2/python/bin/easy_install pip
|
||||
- /awips2/python/bin/pip install python-awips
|
||||
* For Unidata AWIPS release **16.2.2+**:
|
||||
|
||||
/awips2/python/bin/easy_install pip
|
||||
/awips2/python/bin/pip install python-awips
|
||||
|
||||
* For releases before and up to **16.1.5** you may need to run
|
||||
|
||||
yum install awips2-python-setuptools
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue