Skip to content

Commit da55123

Browse files
authored
Documentation update Pt. 1 (#290)
* switch hera to ursa * update Introduction * change LANDDAROOT to BASEDIR * update stack/jedi dependencies in tech overview * general build/run updates * add draft JCB info * add glossary terms * Tech Overview edits * update build/run sections * update background info * testing ch updates * reorganize JCB info * add curly braces around BASEDIR * doc bugfix * Rm JCB from chapter list * Rm comment re: failing WE2Es * fix typo
1 parent 7a1a043 commit da55123

22 files changed

Lines changed: 382 additions & 251 deletions

.readthedocs.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@ version: 2
77

88
# Set the version of Python and other tools you might need
99
build:
10-
os: ubuntu-20.04
10+
os: ubuntu-22.04
1111
tools:
12-
python: "3.9"
12+
python: "3.12"
1313
# You can also specify other tool versions:
1414
# nodejs: "16"
1515
# rust: "1.55"
1616
# golang: "1.17"
17+
jobs:
18+
post_create_environment:
19+
- python -m pip install --upgrade "pip" "setuptools<81"
1720

1821
# Build documentation in the docs/ directory with Sphinx
1922
sphinx:

doc/requirements.in

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
sphinx>=7.4.7
2-
sphinx_rtd_theme
3-
sphinxcontrib-bibtex
1+
sphinx>=8.0.0
2+
sphinx_rtd_theme>=3.0.0
3+
sphinxcontrib-bibtex>=2.6.4
44
urllib3>=1.26.19
55
Jinja2>=3.1.6
6-
requests>=2.32.0
6+
requests>=2.32.2
77
idna>=3.7
88
certifi>=2024.7.4
9+
setuptools<81.0.0

doc/requirements.txt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# This file is autogenerated by pip-compile with Python 3.13
33
# by the following command:
44
#
5-
# pip-compile requirements.in
5+
# pip-compile --allow-unsafe --strip-extras requirements.in
66
#
77
alabaster==0.7.16
88
# via sphinx
@@ -56,17 +56,17 @@ six==1.16.0
5656
# pybtex
5757
snowballstemmer==2.2.0
5858
# via sphinx
59-
sphinx==7.4.7
59+
sphinx==8.0.2
6060
# via
6161
# -r requirements.in
6262
# sphinx-rtd-theme
6363
# sphinxcontrib-bibtex
6464
# sphinxcontrib-jquery
65-
sphinx-rtd-theme==2.0.0
65+
sphinx-rtd-theme==3.1.0
6666
# via -r requirements.in
6767
sphinxcontrib-applehelp==1.0.8
6868
# via sphinx
69-
sphinxcontrib-bibtex==2.6.2
69+
sphinxcontrib-bibtex==2.6.4
7070
# via -r requirements.in
7171
sphinxcontrib-devhelp==1.0.6
7272
# via sphinx
@@ -84,3 +84,9 @@ urllib3==2.4.0
8484
# via
8585
# -r requirements.in
8686
# requests
87+
88+
# The following packages are considered to be unsafe in a requirements file:
89+
setuptools==80.10.2
90+
# via
91+
# -r requirements.in
92+
# sphinxcontrib-bibtex

doc/source/BackgroundInfo/Components.rst

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,20 +66,22 @@ The UFS Weather Model now contains a Noah-MP land component, which is used as th
6666
Data Assimilation
6767
===================
6868

69-
The Joint Effort for Data assimilation Integration (:term:`JEDI`) is a unified and versatile :term:`data assimilation` (DA) system for Earth system prediction that can be run on a variety of platforms. In the Land DA System, JEDI software can be used to perform snow data assimilation using :term:`GHCN`, :term:`IMS`, or :term:`SFCSNO` data with :term:`LETKF-OI` or :term:`3D-Var` algorithms. JEDI is developed by the Joint Center for Satellite Data Assimilation (`JCSDA <https://www.jcsda.org/>`_) and partner agencies, including NOAA.
69+
The Joint Effort for Data assimilation Integration (:term:`JEDI`) is a unified and versatile :term:`data assimilation` (DA) system for Earth system prediction that can be run on a variety of platforms. JEDI is developed by the Joint Center for Satellite Data Assimilation (`JCSDA <https://www.jcsda.org/>`_) and partner agencies, including NOAA. In the Land DA System, JEDI software can be used to perform snow data assimilation using :term:`GHCN`, :term:`IMS`, or :term:`SFCSNO` data with :term:`LETKF-OI` or :term:`3D-Var` algorithms. Recently, the Land DA System added the capability to perform soil moisture data assimilation via JEDI with :term:`SMAP` or :term:`SMOPS` data.
7070

71-
The Land DA System uses three main JEDI components:
71+
The Land DA System uses several JEDI components, including:
7272

7373
* The Object-Oriented Prediction System (:jedi:`OOPS <inside/jedi-components/oops/index.html>`) for the data assimilation algorithm
7474
* The Interface for Observation Data Access (:jedi:`IODA <inside/jedi-components/ioda/index.html>`) for the observation formatting and processing
7575
* The Unified Forward Operator (:jedi:`UFO <inside/jedi-components/ufo/index.html>`) for comparing model forecasts and observations
76+
* The System Agnostic Background Error Representation (:jedi:`SABER <inside/jedi-components/saber/index.html>`) for computing and manipulating the background error covariance matrix
77+
* The VAriable DErivation Repository (:jedi:`VADER <inside/jedi-components/vader/index.html>`) for producing new variables from known variables
7678

7779
These three components (and others) are conveniently packaged and provided via JCSDA's :term:`jedi-bundle`. Users must build/install ``jedi-bundle`` prior to using the Land DA System if they are *not* working on a :ref:`Level 1 <level1>` platform; ``jedi-bundle`` does *not* come packaged in the Land DA System. Users are encouraged to visit the :jedi:`JEDI Documentation <inside/jedi-components/index.html>` for more information.
7880

7981
apply_incr.fd
8082
---------------
8183

82-
The Land DA System's ``apply_incr`` submodule points to NOAA PSL's `land-apply_jedi_incr <https://github.com/NOAA-PSL/land-apply_jedi_incr>`_ repository. This repository contains code to add the DA increment generated by JEDI to the ``sfc_data`` restart file. A `DA increment <https://www.meted.ucar.edu/bom/mdata_assim/navmenu.php?tab=1&page=3-7-0&type=flash>`_, or analysis increment, is the difference between what the model predicted and what the DA objective analysis computes as the best fit between the model state and the observations. Replacing the model state directly with the objective analysis can cause artificial shocks that will propagate through the system, so DA systems require code that slowly nudges the model state towards the analysis by applying part of the increment at a time as the new forecast steps forward in time.
84+
The Land DA System's ``apply_incr`` submodule points to NOAA PSL's `land-apply_jedi_incr <https://github.com/NOAA-PSL/land-apply_jedi_incr>`_ repository. This repository contains code to add the DA increment generated by JEDI to the ``sfc_data`` restart file. A `DA increment <https://www.meted.ucar.edu/bom/mdata_assim/navmenu.php?tab=1&page=3-7-0&type=flash>`_, or analysis increment, is the difference between what the model predicted and what the DA objective analysis computes as the best fit between the model state and the observations. Replacing the model state directly with the objective analysis can cause artificial shocks that will propagate through the system, so DA systems require code that slowly moves the model state towards the analysis by applying part of the increment at a time as the new forecast steps forward in time.
8385

8486
.. _preprocessing:
8587

@@ -107,7 +109,7 @@ The Land DA System includes the ``calcfIMS.fd`` submodule, which points to the l
107109
IODA Converters
108110
-----------------
109111

110-
The Land DA System accepts :term:`GHCN`, :term:`IMS`, or :term:`SFCSNO` data as input. The ``prep_data`` task then converts these data from their original format into the format needed by JEDI's :term:`UFO` and :term:`OOPS` components for data assimilation (see :ref:`Workflow Tasks <wflow-overview>`). The Interface for Observation Data Access (:term:`IODA`) is the component of :term:`JEDI` that handles data processing for the data assimilation system (see :ref:`DA Components <da-components>` for more). The ``land-DA_workfow/ush`` directory contains scripts (e.g., ``ghcn_snod2ioda.py`` and ``imsfv3_scf2ioda.py``) that convert :term:`GHCN` and :term:`IMS` data to a JEDI-formatted NetCDF file using IODA. The :ref:`calcfIMS <calcfims>` executable mentioned above is an intermediate converter that converts the raw ASCII files to NetCDF format before performing additional JEDI formatting.
112+
The Land DA System accepts :term:`GHCN`, :term:`IMS`, or :term:`SFCSNO` data as input for snow DA and :term:`SMAP` or :term:`SMOPS` data as input for soil moisture DA. The ``prep_data`` task then converts these data from their original format into the format needed by JEDI's :term:`UFO` and :term:`OOPS` components for data assimilation (see :ref:`Workflow Tasks <wflow-overview>`). The Interface for Observation Data Access (:term:`IODA`) is the component of :term:`JEDI` that handles data processing for the data assimilation system (see :ref:`DA Components <da-components>` for more). The ``land-DA_workfow/ush`` directory contains scripts (e.g., ``ghcn_snod2ioda.py`` and ``imsfv3_scf2ioda.py``) that convert input data to a JEDI-formatted NetCDF file using IODA. The :ref:`calcfIMS <calcfims>` executable mentioned above is an intermediate converter that converts the raw ASCII files to NetCDF format before performing additional JEDI formatting.
111113

112114
.. _t2tc:
113115

@@ -153,17 +155,17 @@ The Land DA System has a portable, CMake-based build system that packages togeth
153155

154156
Additional libraries necessary for the Land DA System must be installed separately via :term:`spack-stack` and :term:`jedi-bundle` unless users are working on a :ref:`supported platform <prerequisites>` or using a container. Once built, users can generate a Rocoto-based workflow that will run each task in the proper sequence (see :numref:`Chapter %s <RocotoInfo>` or the `Rocoto documentation <https://github.com/christopherwharrop/rocoto/wiki/Documentation>`_ for more information on Rocoto and workflow management). The workflow makes use of several configuration tools:
155157

156-
* JEDI Configuration Builder
158+
* :ref:`JEDI Configuration Builder <JCBInfo>` (JCB)
157159
* Unified Workflow (UW) Tools
158160

159-
The Land DA System allows users to configure various elements of the workflow. For example, users can modify the start and end cycles for the experiment, the cycling frequency, and the duration of each forecast. It also allows for configuration of other elements of the workflow, such as data assimilation algorithm. More information on configurable variables is available in :numref:`Section %s <ConfigWorkflow>`.
161+
The Land DA System allows users to configure various elements of the workflow. For example, users can modify the start and end cycles for the experiment, the cycling frequency, and the duration of each forecast. It also allows for configuration of other elements of the workflow, such as the data assimilation algorithm. More information on configurable variables is available in :numref:`Section %s <ConfigWorkflow>`.
160162

161163
.. _jcb-component:
162164

163-
JEDI Configuration Builder
164-
----------------------------
165+
JEDI Configuration Builder (JCB)
166+
---------------------------------
165167

166-
The JEDI Configuration Builder (JCB) is a python package used to assemble information on :term:`JEDI` algorithms (e.g., letkf-oi, 3dvar) and data assimilation types (e.g., snow, marine, atmosphere) into one convenient YAML file for use in data assimilation applications. The `jcb-algorithms <https://github.com/NOAA-EPIC/jcb-algorithms>`_ repository contains YAML algorithm files (e.g., LETKF-OI, 3DVar) for JCB; these files contain the high-level configuration structure that is prescribed by the JEDI data assimilation system. The `jcb-gdas <https://github.com/NOAA-EPIC/jcb-gdas>`_ repository contains information for different types of analysis (e.g., snow, marine, atmosphere).
168+
The JEDI Configuration Builder (JCB) is a python package used to assemble information on :term:`JEDI` algorithms (e.g., ``letkf-oi``, ``3dvar``) and data assimilation types (e.g., snow, marine, atmosphere) into one convenient YAML file for use in data assimilation applications. The `jcb-algorithms <https://github.com/NOAA-EPIC/jcb-algorithms>`_ repository contains YAML algorithm files (e.g., LETKF-OI, 3DVar) for JCB; these files contain the high-level configuration structure that is prescribed by the JEDI data assimilation system. The `jcb-gdas <https://github.com/NOAA-EPIC/jcb-gdas>`_ repository contains information for different types of analysis (e.g., snow, marine, atmosphere). For more information, see :numref:`Section %s: JCB <JCBInfo>`.
167169

168170

169171
Unified Workflow (UW) Tools (``uwtools``)

0 commit comments

Comments
 (0)