Skip to content

Commit 1ab0beb

Browse files
committed
minor I/O & testing updates
1 parent 15e9833 commit 1ab0beb

2 files changed

Lines changed: 11 additions & 220 deletions

File tree

doc/source/BuildingRunningTesting/TestingLandDA.rst

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Testing the Land DA Workflow
55
************************************
66

7-
This chapter provides instructions for using the Land DA CTest suite. These steps are designed for use on :ref:`Level 1 <LevelsOfSupport>` systems (e.g., Ursa and Hercules) and may require significant changes on other systems.
7+
This chapter provides instructions for using the Land DA CTest suite. These steps are designed for use on :ref:`Level 1 <LevelsOfSupport>` systems (e.g., Ursa and Hercules) and may require significant changes on other systems. They cannot be run via container at this time.
88

99
.. attention::
1010

@@ -85,25 +85,3 @@ The bottom of the ``out.ctest`` file will include a message with test results. F
8585
Total Test time (real) = 66.90 sec
8686
8787
If one or more tests fail, users can check the logs at ``${BASEDIR}/land-DA_workflow/sorc/build/Testing/Temporary/LastTest.log`` for more information on the failure.
88-
89-
Running Tests Using a Container
90-
=================================
91-
92-
.. COMMENT: Update this container section for the release
93-
94-
.. attention::
95-
96-
The container CTest functionality has been tested in Jenkins. It should be able to run on a sufficiently large cloud instance. However, it is considered unsupported functionality because it has not been thoroughly tested on the cloud for use by the public.
97-
98-
For containers, the CTest functionality is wrapped in a Dockerfile. Therefore, users will need to build the Dockerfile to run the CTests. Since the Land DA container is quite large, this process can take a long time --- potentially hours. In the future, the development team hopes to simplify and shorten this process.
99-
100-
.. code-block:: console
101-
102-
git clone -b release/public-v2.0.0 --recursive https://github.com/ufs-community/land-DA_workflow.git
103-
cd land-DA_workflow/sorc/test/ci
104-
sudo systemctl start docker
105-
sudo docker build -f Dockerfile -t dockerfile-ci-ctest:release .
106-
107-
.. note::
108-
109-
``sudo`` may not be required in front of the last two commands on all systems.

doc/source/CustomizingTheWorkflow/InputOutput.rst

Lines changed: 10 additions & 197 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ The Land DA System requires the following files for each case/configuration:
1919
* NOAH-MP initial conditions (ICs) files
2020
* FV3 fix files (tiled)
2121
* JEDI input fix files
22-
* Observation data files (:term:`IMS`, :term:`GHCN`, or :term:`SMAP`)
22+
* Observation data files (:term:`IMS`, :term:`GHCN`, :term:`SMAP`, :term:`SMOPS`)
2323
* Cartopy Natural Earth files (only if running the plotting task)
2424
* For LND cases:
2525
* Forcing files (ERA5 or GSWP3)
2626
* For ATML cases:
2727
* FV3 fix files (global)
2828
* For coldstart cases:
29-
* Model output from a previous model run (e.g., from GDAS, GFS, SMAP, or SMOPS). _________???
29+
* Model output from a previous model run (e.g., from GDAS, GFS, SMAP, or SMOPS).
3030
* For warmstart cases:
3131
* Restart files from a model run starting the cycle before the user's selected date (e.g., RESTART files from a WM run)
3232

@@ -46,13 +46,6 @@ The `Land DA data bucket <https://registry.opendata.aws/noaa-ufs-land-da/>`_ con
4646
wget https://noaa-ufs-land-da-pds.s3.amazonaws.com/current_land_da_release_data/v3.0.0/LandDAInputDatav3.0.0.tar.gz
4747
tar xvfz LandDAInputDatav3.0.0.tar.gz
4848
49-
For data specific to the latest release (|latestr|), users can run:
50-
51-
.. code-block:: console
52-
53-
wget https://noaa-ufs-land-da-pds.s3.amazonaws.com/current_land_da_release_data/v3.0.0/LandDAInputDatav3.0.0.tar.gz
54-
tar xvfz LandDAInputDatav3.0.0.tar.gz
55-
5649
These files and their parameters are described in the following subsections. Although this download provides all files needed to run the provided sample cases, users wishing to configure their own cases will need to read :numref:`Section %s <InputFiles>` to determine what additional data they may need to download and where to find it.
5750

5851

@@ -125,7 +118,7 @@ The files contain the following data:
125118
- "volumetric soil liquid"
126119
- "m3/m3"
127120

128-
The full Land DA data bucket download (see :numref:`Section %s <sample-case-data>`) includes :term:`ICs` for Land DA in the ``inputs/NOAHMP_IC`` directory. These are essentially dummy ICs that can be used with LND and warmstart ATML cases. For :term:`ATML` coldstart cases, the ``fcst_ic`` task will generate the ICs by running the model for one cycle before performing DA, and users need not worry about staging ICs. For :term:`LND` or ATML warmstart cases, ICs must be provided. Users can use the ICs from the ``inputs/NOAHMP_IC`` directory (downloaded from the data bucket) for any case. In theory, users can also choose to use/produce their own ICs, either by running the ATML coldstart case for the cycle before the desired date or by generating them fro the :term:`GDAS` results. However, this is not yet supported functionality for the Land DA System.
121+
The full Land DA data bucket download (see :numref:`Section %s <sample-case-data>`) includes :term:`ICs` for Land DA in the ``inputs/NOAHMP_IC`` directory. These are essentially dummy ICs that can be used with LND and warmstart ATML cases. For :term:`ATML` coldstart cases, the ``fcst_ic`` task will generate the ICs by running the model for one cycle before performing DA, and users need not worry about staging ICs. For :term:`LND` or ATML warmstart cases, ICs must be provided. Users can use the ICs from the ``inputs/NOAHMP_IC`` directory (downloaded from the data bucket) for any case. In theory, users can also choose to use/produce their own ICs, either by running the ATML coldstart case for the cycle before the desired date or by generating them from the :term:`GDAS` results. However, this is not yet supported functionality for the Land DA System.
129122

130123
.. _fv3-fix-tiled:
131124

@@ -188,13 +181,13 @@ Observation Data
188181

189182
* Required for: All Land DA cases
190183

191-
The Land DA System can accepts :term:`GHCN`, :term:`IMS`, and :term:`SFCSNO` snow observation data. It accepts :term:`SMAP` or :term:`SMOPS` soil moisture observation data. Users need only provide one type of observation data depending on whether they plan to perform snow or soil moisture data assimilation.
184+
The Land DA System can accept :term:`GHCN`, :term:`IMS`, and :term:`SFCSNO` snow observation data. It accepts :term:`SMAP` or :term:`SMOPS` soil moisture observation data. Users need only provide one type of observation data depending on whether they plan to perform snow or soil moisture data assimilation.
192185

193186
Currently, snow observation data is primarily drawn from the `Global Historical Climatology Network <https://www.ncei.noaa.gov/products/land-based-station/global-historical-climatology-network-daily>`_ (GHCN) and the U.S. National Ice Center (USNIC) Interactive Multisensor Snow and Ice Mapping System (`IMS <https://usicecenter.gov/Products/ImsHome>`_). GHCN and IMS data for provided sample cases are available in the ``inputs/DA_obs`` directory. These data are converted to :ref:`IODA <IODA>` format in the ``prep_data`` task.
194187

195188
Soil moisture data is primarily drawn from the National Snow and Ice Data Center `Soil Moisture Active Passive <https://nsidc.org/data/smap/data>`_ (SMAP) data set or from the NOAA `Soil Moisture Operational Products System <https://www.ospo.noaa.gov/products/land/smops/>`_ (SMOPS) data set. SMAP and SMOPS data for provided sample cases are available in the ``inputs/DATA_[smap|smops]`` directories. These data are converted to :ref:`IODA <IODA>` format in the ``prep_data`` task.
196189

197-
In each experiment, the ``land_analysis.yaml`` file sets the type(s) of observation files to be used in the experiment via the ``OBS_*_SNOW`` variables (based on selections in ``config.yaml``). Before assimilation, the files for the specified observation type are copied to the run directory (usually ``$BASEDIR/ptmp/<envir>/com/landda/${model_ver}/landda.${PDY}${cyc}/obs`` by default --- see :numref:`Section %s <nco-dir-entities>` for more on these variables), sometimes with a naming-convention change (e.g., ``ghcn_snwd_ioda_${YYYY}${MM}${DD}.nc`` to ``ghcn_snow_${YYYY}${MM}${DD}${HH}.nc``).
190+
In each experiment, the ``land_analysis.yaml`` file sets the type(s) of observation files to be used in the experiment via the ``OBS_*_SNOW`` variables (based on selections in ``config.yaml``). Before assimilation, the files for the specified observation type are copied to the run directory (usually ``${BASEDIR}/ptmp/<envir>/com/landda/${model_ver}/landda.${PDY}${cyc}/obs`` by default --- see :numref:`Section %s <nco-dir-entities>` for more on these variables), sometimes with a naming-convention change (e.g., ``ghcn_snwd_ioda_${YYYY}${MM}${DD}.nc`` to ``ghcn_snow_${YYYY}${MM}${DD}${HH}.nc``).
198191

199192
.. _ghcn-io:
200193

@@ -272,7 +265,7 @@ For additional download options, visit the `NSIDC NASA Earthdata Cloud Data Acce
272265
SMOPS Soil Moisture Files
273266
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
274267

275-
The `Soil Moisture Operational Products System <https://www.ospo.noaa.gov/products/land/smops/>` (SMOPS) "combines soil moisture retrievals from multi-satellites/sensors to provide a global soil moisture map with more spatial and temporal coverage." Observations for Land DA sample cases are available in the ``inputs/DATA_smops`` directory (downloaded in :numref:`Section %s <sample-case-data>`). However, users can download additional observation data for specific dates of choice from the National Environmental Satellite, Data, and Information Service (NESDIS) by navigating to the `NESDIS STAR file share <https://www.star.nesdis.noaa.gov/pub/smcd/emb/SMOPS/SMOPScdr/V2.0/>` and selecting/downloading data for those dates.
268+
The `Soil Moisture Operational Products System <https://www.ospo.noaa.gov/products/land/smops/>`_ (SMOPS) "combines soil moisture retrievals from multi-satellites/sensors to provide a global soil moisture map with more spatial and temporal coverage." Observations for Land DA sample cases are available in the ``inputs/DATA_smops`` directory (downloaded in :numref:`Section %s <sample-case-data>`). However, users can download additional observation data for specific dates of choice from the National Environmental Satellite, Data, and Information Service (NESDIS) by navigating to the `NESDIS STAR file share <https://www.star.nesdis.noaa.gov/pub/smcd/emb/SMOPS/SMOPScdr/V2.0/>`_ and selecting/downloading data for those dates.
276269

277270
Cartopy Natural Earth Files
278271
----------------------------
@@ -475,6 +468,8 @@ The FV3 component requires global fix files and FV3 initial conditions files. On
475468
Global Fix Files
476469
-------------------
477470

471+
* Required for: :term:`ATML` configurations
472+
478473
Global fix file data for the :term:`FV3` component are required to run the :term:`ATML` configurations. They are located in the ``inputs/FV3_fix_global`` directory (downloaded in :numref:`Section %s <sample-case-data>`).
479474

480475
.. code-block:: console
@@ -507,6 +502,8 @@ Note that options in brackets indicate multiple files with similar naming conven
507502
``ATML`` Input Data for Initial Conditions Generation
508503
-------------------------------------------------------
509504

505+
* Required for: :term:`ATML` coldstart cases
506+
510507
Input data from GDAS or GFS is required to run the :term:`ATML` configurations. The data are located in the ``inputs/DATA_[gdas|gfs]`` directories (downloaded :ref:`above <InputFiles>`) and are used as initial conditions for the ``fcst_ic`` task. The :github:`exlandda_fcst_ic.sh <blob/develop/scripts/exlandda_fcst_ic.sh>` script sets the default path to this data using the ``COMINgdas`` and ``COMINgfs`` variables. The operational :nco:`WCOSS Implementation Standards <>` designate ``COMIN*`` directories as directories containing input data for the model indicated in the directory name (e.g., ``COMINgfs`` contains input data for the GFS model). In addition, these directories (``DATA_[gdas|gfs]``) contain the IMS raw data files. Within each ``COMIN*`` directory, data is organized by cycle date. For example, for ``20250119``, the following data is present in the ``DATA_gdas/20250119`` directory:
511508

512509
.. code-block:: console
@@ -699,190 +696,6 @@ To restart the Land DA System successfully after land model execution, all param
699696

700697
Restart files are located in the ``inputs/DATA_RESTART`` directory (downloaded :ref:`above <InputFiles>` from the data bucket). Each forecast cycle also outputs restart files that can be used as input for the next cycle date(s). These restart files will appear in the ``/ptmp/<envir>/com/landda/v<X.Y.Z>/landda.${PDY}/RESTART`` directory. However, users can generate their own RESTART files by running a coldstart GDAS or WM experiment and using the RESTART files produced.
701698

702-
.. _data-flow:
703-
704-
Data Flow Through the Land DA System
705-
=======================================
706-
707-
Each step in the Land DA workflow requires particular ``sfc_data`` and restart files; tasks then produce output that may be used as input for the next step in a given cycle. :numref:`Table %s <LND-io>` and :numref:`Table %s <ATML-io>` illustrate the flow of data through the system. These tables demonstrate the important role that surface data files (``sfc_data.tile#.nc``) and restart files (``ufs.cpld.lnd.out.tile#.nc`` or ``ufs_land_restart.tile#.nc``) play as input for Land DA workflow tasks.
708-
709-
.. _LND-io:
710-
711-
.. list-table:: Input & Output Files by Workflow Task -- LND Configuration
712-
:header-rows: 1
713-
714-
* - Task
715-
- Input
716-
- Output
717-
* - prep_data
718-
- {YYYY}.csv (for GHCN)
719-
720-
ghcnd-stations.txt (for GHCN)
721-
722-
ims{jdate}_4km_v1.3.asc (for IMS)
723-
724-
sfc_data.tile#.nc (for IMS)
725-
726-
SMAP_L2_SM_P_E (for SMAP)
727-
728-
era5_{PDY}{cyc}_avg.nc
729-
730-
era5_{PDY}{cyc}_instant.nc
731-
- ghcn_snwd_ioda_{DATE}.nc (ghcn_snow_{PDY}{cyc}.nc)
732-
733-
obs.{PDY}.{cyc}.{obs_type}.nc
734-
735-
ERA5_forcing_{YYYY}-{MM}-{DD}_fix.nc
736-
* - jcb
737-
- jcb-base_snow.yaml
738-
- jedi_jcb_snow_nml.yaml
739-
* - pre_anal
740-
- ufs_land_restart.tile#.nc (ufs.cpld.lnd.out.tile#.nc)
741-
- sfc_data.tile#.nc
742-
* - analysis
743-
- ghcn_snow_{PDY}{cyc}.nc
744-
745-
sfc_data.tile#.nc
746-
747-
jedi_jcb_snow_nml.yaml
748-
- snowinc.sfc_data.tile#.nc
749-
750-
sfc_data.tile#.nc
751-
752-
letkf_hofx_ghcn_{PDY}{cyc}
753-
* - post_anal
754-
755-
- sfc_data.tile#.nc
756-
757-
ufs_land_restart.tile#.nc
758-
- ufs_land_restart.tile#.nc
759-
* - forecast
760-
- ufs.cpld.lnd.out.tile#.nc (ufs_land_restart.tile#.nc)
761-
762-
ufs.cpld.datm.r.nc
763-
764-
ufs.cpld.cpl.r.nc
765-
- ufs.cpld.lnd.out.tile#.nc (ufs_land_restart.tile#.nc)
766-
767-
ufs.cpld.datm.r.nc
768-
769-
ufs.cpld.cpl.r.nc
770-
* - plot_stat
771-
- diag_{obs_type}_{PDY}{cyc}
772-
773-
analysis_{PDY}.log
774-
775-
forecast_{PDY}.log
776-
777-
ufs_land_restart.{DATE}.tile#.nc
778-
- hofx_omb_{PDY}_histogram.png
779-
780-
hofx_omb_{PDY}_scatter.png
781-
782-
landda_timehistory_omb_totalSnowDepth.png
783-
784-
landda_out_restart_{DATE}_snwdph_*.png
785-
786-
landda_out_combined_{DATE}_snwdph.png
787-
788-
789-
.. _ATML-io:
790-
791-
.. list-table:: Input & Output Files by Workflow Task -- ATML
792-
:header-rows: 1
793-
794-
* - Task
795-
- Input
796-
- Output
797-
* - prep_data
798-
- {YYYY}.csv (for GHCN)
799-
800-
ghcnd-stations.txt (for GHCN)
801-
802-
ims{jdate}_4km_v1.3.asc (for IMS)
803-
804-
sfc_data.tile#.nc (for IMS)
805-
806-
SMAP_L2_SM_P_E (for SMAP)
807-
808-
era5_{PDY}{cyc}_avg.nc
809-
810-
era5_{PDY}{cyc}_instant.nc ???????????
811-
- ghcn_snwd_ioda_{DATE}.nc (ghcn_snow_{PDY}{cyc}.nc)
812-
813-
obs.{PDY}.{cyc}.{obs_type}.nc
814-
815-
ERA5_forcing_{YYYY}-{MM}-{DD}_fix.nc
816-
* - jcb
817-
- jcb-base_snow.yaml
818-
- jedi_jcb_snow_nml.yaml
819-
* - analysis
820-
- ghcn_snow_{PDY}{cyc}.nc
821-
822-
sfc_data.tile#.nc
823-
824-
jedi_jcb_snow_nml.yaml
825-
- snowinc.sfc_data.tile#.nc
826-
827-
sfc_data.tile#.nc
828-
829-
letkf_hofx_ghcn_{PDY}{cyc}
830-
* - post_anal
831-
- sfc_data.tile#.nc
832-
833-
ufs_land_restart.tile#.nc
834-
835-
- ufs_land_restart.tile#.nc
836-
* - fcst_ic
837-
838-
- gfs.atmanl.nc
839-
840-
gfs.sfcanl.nc
841-
- gfs_data.tile#.nc
842-
843-
sfc_data.tile#.nc
844-
* - forecast
845-
- ufs.cpld.lnd.out.tile#.nc (ufs_land_restart.tile#.nc)
846-
ufs.cpld.cpl.r.nc
847-
848-
fv_core.res.nc
849-
850-
sfc_data.tile#.nc
851-
852-
phy_data.tile#.nc
853-
- ufs.cpld.lnd.out.tile#.nc (ufs_land_restart.tile#.nc)
854-
855-
ufs.cpld.cpl.r.nc
856-
857-
fv_core.res.nc
858-
859-
sfc_data.tile#.nc
860-
861-
phy_data.tile#.nc
862-
863-
atmfHHH.tile#.nc
864-
865-
sfcfHHH.tile#.nc
866-
* - plot_stat
867-
- diag_{obs_type}_{PDY}{cyc}
868-
869-
analysis_{PDY}.log
870-
871-
forecast_{PDY}.log
872-
873-
ufs_land_restart.{DATE}.tile#.nc
874-
- hofx_omb_{PDY}_histogram.png
875-
876-
hofx_omb_{PDY}_scatter.png
877-
878-
landda_timehistory_omb_totalSnowDepth.png
879-
880-
landda_out_restart_{DATE}_snwdph_*.png
881-
882-
landda_out_combined_{DATE}_snwdph.png
883-
.. COMMENT: Files for snow depth DA only?!
884-
885-
886699
.. _output-files:
887700

888701
Output Files

0 commit comments

Comments
 (0)