5.1.14.4. PCPCombine: Custom String Looping Use Case

met_tool_wrapper/PCPCombine/PCPCombine_loop_custom.conf

Scientific Objective

None. This wrapper’s purpose is to demonstrate the ability to read in a user-defined list of strings, processing each item in the list for the given run time.

Datasets

Forecast: WRF-ARW precipitation 24h accumulation fields
Location: All of the input data required for this use case can be found in the met_test sample data tarball. Click here to the METplus releases page and download sample data for the appropriate release: https://github.com/dtcenter/METplus/releases
This tarball should be unpacked into the directory that you will set the value of INPUT_BASE. See Running METplus section for more information.
Data Source: WRF-AFW

METplus Components

This use case utilizes the METplus PCPCombine wrapper to run across a user-provided list of strings, executing each item in the list for each run time. In this example, the ADD mode of PCPCombine is used, but only a single file is processed for each run time. Because it is executed in this manner, the output will match the input.

METplus Workflow

PCPCombine is the only tool called in this example. It processes the following run times:

Valid: 2009-12-31_12Z
Forecast lead: 24 hour

METplus Configuration

METplus first loads all of the configuration files found in parm/metplus_config, then it loads any configuration files passed to METplus via the command line with the -c option, i.e. -c parm/use_cases/met_tool_wrapper/PCPCombine/PCPCombine_loop_custom.conf

# PCPCombine Add Method Example

[config]
# List of applications to run - only PCPCombine for this case
PROCESS_LIST = PCPCombine

# time looping - options are INIT, VALID, RETRO, and REALTIME
# If set to INIT or RETRO:
#   INIT_TIME_FMT, INIT_BEG, INIT_END, and INIT_INCREMENT must also be set
# If set to VALID or REALTIME:
#   VALID_TIME_FMT, VALID_BEG, VALID_END, and VALID_INCREMENT must also be set
LOOP_BY = INIT

# Format of VALID_BEG and VALID_END using % items
# %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc.
# see www.strftime.org for more information
# %Y%m%d%H expands to YYYYMMDDHH
INIT_TIME_FMT = %Y%m%d%H

# Start time for METplus run - must match VALID_TIME_FMT
INIT_BEG = 2009123112

# Start time for METplus run - must match VALID_TIME_FMT
INIT_END = 2009123112

# Increment between METplus runs in seconds. Must be >= 60
INIT_INCREMENT = 1M

# List of forecast leads to process for each run time (init or valid)
# In hours if units are not specified
# If unset, defaults to 0 (don't loop through forecast leads)
LEAD_SEQ = 24H

# Order of loops to process data - Options are times, processes
# Not relevant if only one item is in the PROCESS_LIST
# times = run all wrappers in the PROCESS_LIST for a single run time, then
#   increment the run time and run all wrappers again until all times have
#   been evaluated.
# processes = run the first wrapper in the PROCESS_LIST for all times
#   specified, then repeat for the next item in the PROCESS_LIST until all
#   wrappers have been run
LOOP_ORDER = times

PCP_COMBINE_CUSTOM_LOOP_LIST = arw-fer-gep1, arw-fer-gep5, arw-sch-gep2, arw-sch-gep6, arw-tom-gep3, arw-tom-gep7

# verbosity of PCPCombine MET output
#LOG_PCP_COMBINE_VERBOSITY = 2

# If True, run PCPCombine on forecast data
# observation equivalent OBS_PCP_COMBINE_RUN also exists
FCST_PCP_COMBINE_RUN = True

# mode of PCPCombine to use (SUM, ADD, SUBTRACT, DERIVE, or CUSTOM)
FCST_PCP_COMBINE_METHOD = ADD

FCST_PCP_COMBINE_CONSTANT_INIT = True

# maximum forecast lead to allow when searching for model data to use in PCPCombine
# Default is a very large time (4000 years) so setting this to a valid maximum value can
# speed up execution time of numerous runs
FCST_PCP_COMBINE_MAX_FORECAST = 2d

# description of data to be processed
# used in output file path
MODEL = WRF

# Forecast data description variables

# set to True if forecast input is probabilistic
FCST_IS_PROB = false

# Input data type of forecast input, only used if data is probabilistic to determine
# how to extract data from file
FCST_PCP_COMBINE_INPUT_DATATYPE = GRIB

# List of input accumulations for forecast data. Units are hours if not specified
# Items should be in order of preference of what accumulations to use if available and relevant
# Each item in the list corresponds to the equivalent in *_INPUT_NAMES and *_INPUT_LEVELS if specified
FCST_PCP_COMBINE_INPUT_ACCUMS = 24H

# desired output accumulation to build with forecast input
# Units are in hours if not specified
# Corresponds to *_OUTPUT_NAME
FCST_PCP_COMBINE_OUTPUT_ACCUM = 24H

# Name of output field name to write
FCST_PCP_COMBINE_OUTPUT_NAME = APCP

# If running a MET tool comparison tool after PCPCombine, one can instead set FCST_VAR1_[NAME/LEVELS] to
# a value starting with A that corresponds to the desired accumulation to use in the comparison
# this value will be used to determine the accumulation to build with PCPCombine as well
# If FCST_PCP_COMBINE_OUTPUT_[NAME/ACCUM] are set, these variables take priority over
# FCST_VAR<n>_[NAME/LEVELS]
#FCST_VAR1_NAME = A001500
#FCST_VAR1_LEVELS = 15M

# End of [config] section and start of [dir] section
[dir]
# input and output data directories
FCST_PCP_COMBINE_INPUT_DIR = {INPUT_BASE}/met_test/data/sample_fcst
FCST_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/met_tool_wrapper/PCPCombine/PCPCombine_loop_custom


# End of [dir] section and start of [filename_templates] section
[filename_templates]
# format of filenames
FCST_PCP_COMBINE_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/{custom?fmt=%s}/d01_{init?fmt=%Y%m%d%H}_0{lead?fmt=%HH}00.grib
FCST_PCP_COMBINE_OUTPUT_TEMPLATE = {custom?fmt=%s}/d01_{init?fmt=%Y%m%d%H}_0{lead?fmt=%HH}00.nc

MET Configuration

None. PCPCombine does not use configuration files.

Running METplus

This use case can be run two ways:

  1. Passing in PCPCombine_loop_custom.conf then a user-specific system configuration file:

    run_metplus.py -c /path/to/METplus/parm/use_cases/met_tool_wrapper/PCPCombine/PCPCombine_loop_custom.conf -c /path/to/user_system.conf
    
  2. Modifying the configurations in parm/metplus_config, then passing in PCPCombine_loop_custom.conf:

    run_metplus.py -c /path/to/METplus/parm/use_cases/met_tool_wrapper/PCPCombine/PCPCombine_loop_custom.conf
    

The former method is recommended. Whether you add them to a user-specific configuration file or modify the metplus_config files, the following variables must be set correctly:

  • INPUT_BASE - Path to directory where sample data tarballs are unpacked (See Datasets section to obtain tarballs). This is not required to run METplus, but it is required to run the examples in parm/use_cases

  • OUTPUT_BASE - Path where METplus output will be written. This must be in a location where you have write permissions

  • MET_INSTALL_DIR - Path to location where MET is installed locally

Example User Configuration File:

[dir]
INPUT_BASE = /path/to/sample/input/data
OUTPUT_BASE = /path/to/output/dir
MET_INSTALL_DIR = /path/to/met-X.Y

NOTE: All of these items must be found under the [dir] section.

Expected Output

A successful run will output the following both to the screen and to the logfile:

INFO: METplus has successfully finished running.

Refer to the value set for OUTPUT_BASE to find where the output data was generated. Output for this use case will be found in met_tool_wrapper/PCPCombine/PCPCombine_loop_custom (relative to OUTPUT_BASE) and will contain the following folders:

  • arw-fer-gep1

  • arw-fer-gep5

  • arw-sch-gep2

  • arw-sch-gep6

  • arw-tom-gep3

  • arw-tom-gep7

and each of the folders will contain a single file titled:

  • d01_2009123112_02400.nc

Keywords

sphinx_gallery_thumbnail_path = ‘_static/met_tool_wrapper-PCPCombine.png’

Total running time of the script: ( 0 minutes 0.000 seconds)

Gallery generated by Sphinx-Gallery