Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[develop] Updates to Users Guide and Tables #722

Merged
merged 47 commits into from
Jul 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
3bf09ee
add terms of use notice
gspetro-NOAA May 22, 2023
59bb4ed
add schematic, dir structure, reformat docs
gspetro-NOAA May 22, 2023
137f25f
update code overview; silence warnings
gspetro-NOAA May 23, 2023
0d21c69
update UPP GRIB2 Fields Table; sort by ID
gspetro-NOAA May 24, 2023
19ba4ae
minor edits to Intro
gspetro-NOAA May 25, 2023
f64ed53
add Glossary, minor edits to other chapters
gspetro-NOAA May 30, 2023
0588859
edit comment
gspetro-NOAA May 30, 2023
a4ddb60
minor edits/formatting
gspetro-NOAA May 30, 2023
14cecae
minor edits to New Var ch
gspetro-NOAA May 30, 2023
c680762
minor edits
gspetro-NOAA May 31, 2023
5089a6e
updated table draft
gspetro-NOAA May 31, 2023
30d0b3c
Add/rm unified vars from PRs 534, 561, 582, 591, 593
gspetro-NOAA Jun 5, 2023
5a02e28
Add/rm unified vars from PRs 600,620,640,643,675,695
gspetro-NOAA Jun 6, 2023
c5f5218
Add/rm unified vars from PRs 601, 693
gspetro-NOAA Jun 6, 2023
5850bdf
Merge branch 'NOAA-EMC:develop' into text/ug-updates
gspetro-NOAA Jun 7, 2023
5f1d00d
updates to table of Grib2 fields produced by UPP
gspetro-NOAA Jun 7, 2023
b582ffc
Merge branch 'text/ug-updates' of https://github.com/gspetro-NOAA/UPP…
gspetro-NOAA Jun 7, 2023
ddf402c
updates to table of Grib2 fields produced by UPP
gspetro-NOAA Jun 7, 2023
dcc7d19
updates to table of Grib2 fields produced by UPP
gspetro-NOAA Jun 8, 2023
84691ef
fix table formatting; update table by ID
gspetro-NOAA Jun 8, 2023
332e3d5
minor updates/formatting
gspetro-NOAA Jun 8, 2023
0dd55e3
minor updates/formatting to tables
gspetro-NOAA Jun 8, 2023
e665920
move dir structure to Tech Overview; remove comments; correct version…
gspetro-NOAA Jun 8, 2023
cdeaf16
rm dir structure from build chapter
gspetro-NOAA Jun 8, 2023
9d3af05
code overview edits
gspetro-NOAA Jun 8, 2023
2e0251d
fix spacing
gspetro-NOAA Jun 8, 2023
d8dfec8
fix formatting
gspetro-NOAA Jun 8, 2023
07675f9
fix ext550, add smoke, fv3dust, coarsecm
gspetro-NOAA Jun 12, 2023
7fad63d
add UPP Product Table link to New Var ch
gspetro-NOAA Jun 12, 2023
1cd72a8
combine bceman/bcembb and oceman/ocembb
gspetro-NOAA Jun 12, 2023
df70042
combine dust 1-5 in table
gspetro-NOAA Jun 12, 2023
404d608
fix seas#wct var
gspetro-NOAA Jun 14, 2023
f5c49e9
add software prerequisites
gspetro-NOAA Jun 14, 2023
4dbd525
update README.md
gspetro-NOAA Jun 14, 2023
e88be1d
minor update to README.md
gspetro-NOAA Jun 14, 2023
ff3eb08
minor update to README.md
gspetro-NOAA Jun 15, 2023
a16d808
lowercase Post for XML
gspetro-NOAA Jun 20, 2023
5b4da33
lowercase Post for XML
gspetro-NOAA Jun 20, 2023
aa4fc82
1st part of Tracy's grib2 table updates
gspetro-NOAA Jun 26, 2023
bf380b3
2nd part of Tracy's grib2 table updates
gspetro-NOAA Jun 26, 2023
8fc2d5f
3rd part of Tracy's grib2 table updates; remove old table
gspetro-NOAA Jun 26, 2023
3cc1284
rm ** from checked table entries
gspetro-NOAA Jun 26, 2023
5372ba7
add MASS flux
gspetro-NOAA Jun 30, 2023
ccf0ee9
minor grib2 table edits
gspetro-NOAA Jul 3, 2023
bafaebe
update defs for 909-911; remove ssmis fields
gspetro-NOAA Jul 3, 2023
b7c19c9
add 909, 910, and 911 to post_avbflds
gspetro-NOAA Jul 3, 2023
b5686b1
Merge branch 'NOAA-EMC:develop' into text/ug-updates
gspetro-NOAA Jul 7, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 16 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,16 +63,22 @@ Code Managers: Wen Meng, Huiya Chuang, Kate Fossell

## Prerequisites

The UPP requires certain NCEPLIB packages to be installed via
the HPC-Stack project.
The UPP requires certain NCEPLIBS packages to be installed via the
HPC-Stack project. For instructions on installing these packages as a
bundle via HPC-Stack, see: https://hpc-stack.readthedocs.io/en/latest/.
Users may instead install packages via spack-stack. For instructions,
see: https://spack-stack.readthedocs.io/en/latest/.
The `UPP/modulefiles` directory indicates which package versions are
used and supported on Level 1 systems.

Required NCEPLIBS packages:

- [NCEPLIBS-g2](https://github.com/NOAA-EMC/NCEPLIBS-g2)
- [NCEPLIBS-g2tmpl](https://github.com/NOAA-EMC/NCEPLIBS-g2tmpl)
- [NCEPLIBS-sp](https://github.com/NOAA-EMC/NCEPLIBS-sp)
- [NCEPLIBS-ip](https://github.com/NOAA-EMC/NCEPLIBS-ip)
- [NCEPLIBS-bacio](https://github.com/NOAA-EMC/NCEPLIBS-bacio)
- [NCEPLIBS-w3emc](https://github.com/NOAA-EMC/NCEPLIBS-w3emc)
- [NCEPLIBS-w3nco](https://github.com/NOAA-EMC/NCEPLIBS-w3nco)
- [CRTM](https://github.com/noaa-emc/emc_crtm)

Also required to build NCEPpost executable (cmake option
Expand All @@ -89,11 +95,13 @@ option BUILD_WITH_WRFIO).

The following third-party libraries are required:

- [netcdf](https://github.com/Unidata/netcdf)
- [netcdf-c](https://github.com/Unidata/netcdf-c)
- [netcdf-fortran](https://github.com/Unidata/netcdf-fortran)
- [Jasper](https://github.com/jasper-software/jasper)
- [libpng](http://www.libpng.org/pub/png/libpng.html)
- [libz](https://zlib.net/)
- [zlib](https://zlib.net/)
- [hdf5](https://github.com/HDFGroup/hdf5)

## Building

Expand Down Expand Up @@ -128,3 +136,7 @@ Commerce. The Department of Commerce seal and logo, or the seal and
logo of a DOC bureau, shall not be used in any manner to imply
endorsement of any commercial product or activity by DOC or the United
States Government.

## UPP Terms of Use Notice

The UPP Terms of Use Notice is available at: https://github.com/NOAA-EMC/UPP/wiki/UPP-Terms-of-Use-Notice
10 changes: 5 additions & 5 deletions docs/Acknowledgments.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@ The adaptation of the original WRF Post Processor package and Users Guide (by Mi
NSSL/CIMMS and Hui-Ya Chuang of NCEP/EMC) was done by Lígia Bernardet (NOAA/ESRL/DTC) in collaboration
with Dusan Jovic (NCEP/EMC), Robert Rozumalski (COMET), Wesley Ebisuzaki (NWS/HQTR), and Louisa Nance
(NCAR/RAL/DTC). Upgrades to WRF Post Processor versions 2.2 and higher were performed by Hui-Ya Chuang,
Dusan Jovic and Mathew Pyle (NCEP/EMC). Transitioning of the documentation from the WRF Post Processor
to the Unified Post Processor was performed by Nicole McKee (NCEP/EMC), Hui-ya Chuang (NCEP/EMC), and
Dusan Jovic, and Mathew Pyle (NCEP/EMC). Transitioning of the documentation from the WRF Post Processor
to the Unified Post Processor was performed by Nicole McKee (NCEP/EMC), Hui-Ya Chuang (NCEP/EMC), and
Jamie Wolff (NCAR/RAL/DTC). Implementation of the Community Unified Post Processor was performed by
Tricia Slovacek, Kate Fossell, and Tracy Hertneky (NCAR/RAL/DTC).

Acknowledgement
**Acknowledging the UPP Team:**

If significant help was provided via the UPP helpdesk for work resulting in a publication, please
acknowledge the Developmental Testbed Center UPP Team.
acknowledge the Earth Prediction Innovation Center UPP Team.

For referencing this document please use:

UPP Users Guide V10.1.0, 24 pp.
UPP Users Guide V11.0.0, 24 pp.
287 changes: 150 additions & 137 deletions docs/AddNewVariable.rst

Large diffs are not rendered by default.

163 changes: 129 additions & 34 deletions docs/CodeOverview.rst
Original file line number Diff line number Diff line change
@@ -1,37 +1,132 @@
*************
Code Overview
*************

The UPP is used to post-process model forecasts and provides the capability to compute a variety of
diagnostic fields and interpolate to pressure levels or other vertical coordinates.

The UPP also incorporates the Joint Center for Satellite Data Assimilation (JCSDA) Community Radiative
Transfer Model (CRTM) to compute model derived brightness temperature (TB) for various instruments and
channels. This additional feature enables the generation of a number of simulated satellite products
including GOES products.

Output from the UPP is in National Weather Service (NWS) and World Meteorological Organization (WMO)
`GRIB2 <https://www.nco.ncep.noaa.gov/pmb/docs/grib2/>`_ format and can be used directly by
visualization, plotting, or verification packages, or for further downstream post-processing, e.g.
statistical post-processing techniques.

Examples of UPP products include:

- T, Z, humidity, wind, cloud water, cloud ice, rain, and snow on pressure levels
- SLP, shelter level T, humidity, and wind fields
- Precipitation-related fields
- PBL-related fields
- Severe weather products (e.g. CAPE, Vorticity, Wind shear)
- Radiative/Surface fluxes
- Cloud related fields
- Aviation products
- Radar reflectivity products
- Satellite look-alike products

A full list of fields that can be generated by the UPP is provided in :doc:`UPP_GRIB2_Table`.

The UPP has 2D decomposition capabilities (V11.0.0) and is also backwards compatible for 1D decomposition.
.. role:: underline
:class: underline
.. role:: bolditalic
:class: bolditalic

*******************
Technical Overview
*******************

The Unified Post Processor (UPP) is used to post-process model forecasts.
It can compute a variety of diagnostic fields and interpolate output from the model's
native grids to National Weather Service (:term:`NWS`) standard levels (e.g., pressure, height)
and standard output grids (e.g., AWIPS, Lambert Conformal, polar-stereographic) in NWS
and World Meteorological Organization (WMO) `GRIB2 <https://www.nco.ncep.noaa.gov/pmb/docs/grib2/>`__ format.
There is also an option to output fields on the model's native vertical levels.
Output from the UPP can be used directly by visualization, plotting, or verification packages
or used in further downstream post-processing (e.g., statistical post-processing techniques).

**HIGHLIGHTS**

The UPP reads and processes :term:`GFS` and :term:`LAM` (Limited Area Model) data from the :term:`FV3` :term:`dynamical core`
and generates output in :term:`GRIB2` format. It uses :term:`MPI` parallel code and produces hundreds of
products like those used operationally on the same operational grids. Examples of UPP products include:

- T, Z, humidity, wind, cloud water, cloud ice, rain, and snow on pressure levels
- SLP, shelter level T, humidity, and wind fields
- Precipitation-related fields
- PBL-related fields
- Severe weather products (e.g. CAPE, Vorticity, Wind shear)
- Radiative/Surface fluxes
- Cloud related fields
- Aviation products
- Radar reflectivity products
- Satellite look-alike products

A full list of fields that can be generated by the UPP is provided in :doc:`UPP_GRIB2_Table_byID`.

As of v11.0.0, the UPP has 2D decomposition capabilities and is also backwards compatible for 1D decomposition.
The functionality demonstrates run-time improvements, especially for larger domains. Support for this
feature is available for standalone UPP applications.

Support for the community UPP is provided through `GitHub Discussions <https://github.com/NOAA-EMC/UPP/discussions>`_.
Support for the community UPP is provided through `GitHub Discussions <https://github.com/NOAA-EMC/UPP/discussions>`__.

**SYNTHETIC SATELLITE PRODUCTS**

The UPP also incorporates the Joint Center for Satellite Data Assimilation (:term:`JCSDA`) Community Radiative
Transfer Model (:term:`CRTM`) to compute model-derived brightness temperature (TB) for various instruments and
channels.
This additional feature enables the generation of simulated satellite products such as:

* Geostationary Operational Environmental Satellite (GOES)
* Advanced Microwave Scanning Radiometer (AMSRE)
* Special Sensor Microwave Imager/Sounder (SSMIS)

For CRTM documentation, refer to the `CRTM User Guide <https://github.com/JCSDA/crtm/wiki/files/CRTM_User_Guide.pdf>`__.

==============================
System Architecture Overview
==============================

The basic components of the :term:`offline UPP` are shown in the schematic below.

.. figure:: https://raw.githubusercontent.com/wiki/NOAA-EMC/UPP/UPP_schematic.png
:width: 75%
:alt: The model output files are used as input to the UPP executable. The UPP executable uses the parameter files to determine the list of output fields. The executable generates post-processed output files in grib2 format, which can be used in downstream applications for regridding, visualization, verification, etc.

The ``upp.x`` component performs the bulk of the post-processing. Its functions include:

* Vertical interpolation from model levels/surfaces to isobaric, height, and other levels/surfaces
* Computing diagnostics from model data such as CAPE, relative humidity, radar reflectivities, etc.

========================
UPP Directory Structure
========================

The main UPP repository is named ``UPP``; it is available on GitHub at https://github.com/NOAA-EMC/UPP.
Under the main **UPP** directory reside the following relevant subdirectories
(the * indicates a directory that exists only after the build is complete):

| **exec***: Contains the :bolditalic:`upp.x` executable after successful compilation

| **modulefiles**: Contains modulefiles for specific platforms and compilers for building on
pre-configured machines.

| **parm**: Contains parameter files, which can be modified by the user to control how the post
processing is performed.

| **scripts**: Contains a sample run script to process fv3 history files.
| - **run_upp**: Script that runs the stand-alone UPP package (:bolditalic:`upp.x`)

| **sorc**: Contains source code for:
| - **ncep_post.fd**: Source code for the UPP

| **tests**: Contains the scripts used to install UPP
| - **compile_upp.sh**: UPP build script
| - **build***: Contains the UPP build
| - **install***: Contains the installed executable (bin/upp.x), modules, and libraries

When the ``develop`` branch of the UPP repository is cloned, the basic directory structure follows the example below. Some files and directories have been removed for brevity.

.. code-block:: console

UPP
├── ci -------- Automated testing files
├── cmake -------- CMake build files
├── docs -------- User's Guide files
│ └── Doxyfile.in -------- Doxygen configuration file
├── exec*
├── fix
├── jobs -------- Scripts that set up the environment and call ex-scripts from the scripts directory
├── modulefiles
├── parm
│ ├── post_avblflds.xml -------- List of all fields available in UPP
│ ├── postcntrl*.xml -------- User-editable control files that list the variables to be output
│ └── postxconfig-NT-*.txt -------- Text file of requested output that UPP reads (processed from postcntrl)
├── scripts
│ └── run_upp -------- Script that runs the stand-alone UPP package (upp.x)
├── sorc
│ ├── libIFI.fd -------- Private repository (submodule) for in-flight icing
│ └── ncep_post.fd -------- Main post-processing routines
├── tests
│ ├── build*
│ ├── install*
│ └── compile_upp.sh -------- UPP build script
├── ush -------- Utility scripts (referenced & run in /scripts)
├── CMakeLists.txt
├── LICENSE.md
├── README.md
└── VERSION



Loading