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] Split EnsembleStat vx tasks into GenEnsProd and EnsembleStat #809

Merged
merged 45 commits into from
Jun 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
a46a5af
Cleanup of EnsembleStat configuration files.
gsketefian Mar 23, 2023
f77a8a6
Clean up comments in METplus config files.
gsketefian Mar 23, 2023
4298da0
Standardize METplus conf files as much as possible.
gsketefian Mar 23, 2023
627c94f
Fix up comments in METplus conf files.
gsketefian Mar 23, 2023
6b2e934
Simplificatons to EnsembleStat conf files.
gsketefian Mar 24, 2023
203020a
Add GenEnsProd tasks to verification workflow.
gsketefian Mar 24, 2023
8926622
Remove lines in EnsembleStat conf files that are for actions that are…
gsketefian Mar 24, 2023
9d9c2c0
Change input to ensemble mean and probabilistic tasks to come from th…
gsketefian Mar 24, 2023
822b633
Rename metatasks/tasks for clarity; create new metatasks/tasks to mak…
gsketefian May 17, 2023
8fb28e7
Add config variable VX_APCP_ACCUMS_HH to make the accumulation hours …
gsketefian May 17, 2023
54db250
Add the experiment configuration parameter VX_FIELDS that specifies w…
gsketefian May 18, 2023
d31dac6
Rename and add vx metatasks for clarity.
gsketefian May 18, 2023
d6dfb44
Bug fix in metatask name.
gsketefian May 18, 2023
255a2fc
Move CCPA/APCP metatask to before MRMS and NDAS once since the former…
gsketefian May 18, 2023
b17871b
Remove rocoto verification metatasks from workflow when there are no …
gsketefian May 18, 2023
a4db400
Clean up vx [meta]task dependencies.
gsketefian May 18, 2023
a095d42
Add new experiment flags RUN_VX_DET and RUN_VX_ENS that specify wheth…
gsketefian May 18, 2023
d4941be
Bug fix for GEPES_MRMS metatask.
gsketefian May 18, 2023
27f1fa2
Bug fixes to ensemble verification task dependencies.
gsketefian May 19, 2023
f314366
Bug fixes to ensemble task dependencies.
gsketefian May 19, 2023
7da364d
Modifications to vx WE2E tests that don't use staged forecasts to get…
gsketefian May 19, 2023
e99d3ba
Rename vx workflow yaml configuration file names for clarity and accu…
gsketefian May 19, 2023
a920213
For consistency with the way other variables are passed into the METp…
gsketefian May 19, 2023
abdd609
Merge branch 'develop' into feature/split_gepes
gsketefian May 19, 2023
3c2af8d
Changes to make vx tests work in NCO mode:
gsketefian May 23, 2023
b534d73
Change variable name for clarity.
gsketefian May 23, 2023
e6bbad3
Add code to allow each element of a list variable to be checked for v…
gsketefian May 23, 2023
017bc5c
Change argument list to function set_vx_fhr_list() for clarity and to…
gsketefian May 25, 2023
1e908c7
Minor spacing edits.
gsketefian May 25, 2023
cf7bff0
Split out vx preprocessing tasks that are needed by both deterministi…
gsketefian May 25, 2023
72440f5
Remove experiment variables RUN_VX_DET and RUN_VX_ENS since their fun…
gsketefian May 25, 2023
74975f0
If no vx fields are specified, remove the metatask "check_post_output…
gsketefian May 25, 2023
71db846
Clean up check of consistency between DO_ENSEMBLE flag and inclusion …
gsketefian May 25, 2023
e0b46a8
Fix the way the time-lag array ENS_TIME_LAG_HRS is set (for both ense…
gsketefian May 25, 2023
c02dfe4
Add missing files.
gsketefian May 26, 2023
a304f50
Modifications to get verification to work on time-lagged staged forec…
gsketefian May 26, 2023
b8dd481
Add WE2E test for time-lagging.
gsketefian May 26, 2023
77056d2
Change the test configuration for the WE2E test "MET_ensemble_verific…
gsketefian May 31, 2023
76420d6
Add missing vx WE2E tests to the list of comprehensive tests.
gsketefian May 31, 2023
38d7102
Merge branch 'develop' into feature/split_gepes
gsketefian May 31, 2023
1a6bb6d
Add forecast lead time (based on nominal cycle start time disregardin…
gsketefian May 31, 2023
3824437
Bug fix: Change dependence of ensmean and ensprob tasks to be on the …
gsketefian May 31, 2023
7d86881
For MRMS and NDAS fields, include hour 0 in the verification.
gsketefian Jun 1, 2023
141f9e7
Bug fix requested by Michelle in get_obs_... ex-scripts.
gsketefian Jun 1, 2023
6b163fc
Second bug fix requested by Michelle: add FHR back into get_obs_... t…
gsketefian Jun 1, 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
99 changes: 99 additions & 0 deletions jobs/JREGIONAL_CHECK_POST_OUTPUT
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
#!/bin/bash

#
#-----------------------------------------------------------------------
#
#
#
#-----------------------------------------------------------------------
#

#
#-----------------------------------------------------------------------
#
# Source the variable definitions file and the bash utility functions.
#
#-----------------------------------------------------------------------
#
. $USHdir/source_util_funcs.sh
source_config_for_task "" ${GLOBAL_VAR_DEFNS_FP}
. $USHdir/job_preamble.sh
#
#-----------------------------------------------------------------------
#
# Save current shell options (in a global array). Then set new options
# for this script/function.
#
#-----------------------------------------------------------------------
#
{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1
#
#-----------------------------------------------------------------------
#
# Get the full path to the file in which this script/function is located
# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in
# which the file is located (scrfunc_dir).
#
#-----------------------------------------------------------------------
#
scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" )
scrfunc_fn=$( basename "${scrfunc_fp}" )
scrfunc_dir=$( dirname "${scrfunc_fp}" )
#
#-----------------------------------------------------------------------
#
# Print message indicating entry into script.
#
#-----------------------------------------------------------------------
#
print_info_msg "
========================================================================
Entering script: \"${scrfunc_fn}\"
In directory: \"${scrfunc_dir}\"

This is the J-job script for the task that checks that all the post-
processed output files in fact exist and are at least a certain age.
These files may have been generated by UPP as part of the current SRW
App workflow, or they may be user-staged.
========================================================================"
#
#-----------------------------------------------------------------------
#
# Call the ex-script for this J-job and pass to it the necessary varia-
# bles.
#
#-----------------------------------------------------------------------
#
$SCRIPTSdir/exregional_check_post_output.sh || \
print_err_msg_exit "\
Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed."
#
#-----------------------------------------------------------------------
#
# Create a flag file to make rocoto aware that the make_grid task has
# successfully completed (so that other tasks that depend on it can be
# launched).
#
#-----------------------------------------------------------------------
#
ensmem_name="mem${ENSMEM_INDX}"
cycle_dir="$EXPTDIR/$CDATE"
mkdir_vrfy -p "${cycle_dir}"
touch "${cycle_dir}/post_files_exist_${ensmem_name}.txt"
#
#-----------------------------------------------------------------------
#
# Run job postamble.
#
#-----------------------------------------------------------------------
#
job_postamble
#
#-----------------------------------------------------------------------
#
# Restore the shell options saved at the beginning of this script/func-
# tion.
#
#-----------------------------------------------------------------------
#
{ restore_shell_opts; } > /dev/null 2>&1
85 changes: 39 additions & 46 deletions parm/metplus/EnsembleStat_APCP01h.conf
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[config]

# List of applications to run - only GridStat for this case
# List of applications (tools) to run.
PROCESS_LIST = EnsembleStat

# time looping - options are INIT, VALID, RETRO, and REALTIME
Expand Down Expand Up @@ -54,19 +54,23 @@ METPLUS_CONF = {ENSEMBLE_STAT_OUTPUT_DIR}/metplus_final.{{metplus_config_fn}}
#
# Location of MET configuration file to pass to EnsembleStat.
#
# References PARM_BASE, which is the location of the parm directory
# corresponding to the ush directory of the run_metplus.py script that
# is called or the value of the environment variable METPLUS_PARM_BASE
# if set.
#
ENSEMBLE_STAT_CONFIG_FILE = {PARM_BASE}/met_config/EnsembleStatConfig_wrapped
#
# Used in the MET config file for: model, output_prefix
# Name to identify model (forecast) data in output.
#
MODEL = {{vx_fcst_model_name}}

ENSEMBLE_STAT_DESC = NA

# Name to identify observation data in output
#
# Name to identify observation data in output.
#
OBTYPE = {{obtype}}

#ENSEMBLE_STAT_DESC =

# The METplus EnsembleStat logging level
# 0 quiet to 5 loud, Verbosity setting for METplus EnsembleStat output, 2 is default.
# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf
Expand All @@ -89,8 +93,6 @@ ENSEMBLE_STAT_ENS_THRESH = 0.05
# ens.vld_thresh value in the MET config file
ENSEMBLE_STAT_ENS_VLD_THRESH = 1.0

ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{FIELDNAME_IN_MET_FILEDIR_NAMES}_{OBTYPE}

FIELDNAME_IN_MET_FILEDIR_NAMES = {{fieldname_in_met_filedir_names}}

# ENSEMBLE_STAT_MET_OBS_ERR_TABLE is not required.
Expand Down Expand Up @@ -144,7 +146,7 @@ ENSEMBLE_STAT_ENS_PHIST_BIN_SIZE = 0.05

ENSEMBLE_STAT_CLIMO_CDF_BINS = 1
ENSEMBLE_STAT_CLIMO_CDF_CENTER_BINS = False
ENSEMBLE_STAT_CLIMO_CDF_WRITE_BINS = True
ENSEMBLE_STAT_CLIMO_CDF_WRITE_BINS = False

ENSEMBLE_STAT_MASK_GRID =

Expand All @@ -164,36 +166,22 @@ ENSEMBLE_STAT_OUTPUT_FLAG_ORANK = STAT
ENSEMBLE_STAT_OUTPUT_FLAG_SSVAR = STAT
ENSEMBLE_STAT_OUTPUT_FLAG_RELP = STAT

ENSEMBLE_STAT_ENSEMBLE_FLAG_LATLON = TRUE
ENSEMBLE_STAT_ENSEMBLE_FLAG_MEAN = TRUE
ENSEMBLE_STAT_ENSEMBLE_FLAG_STDEV = TRUE
ENSEMBLE_STAT_ENSEMBLE_FLAG_LATLON = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_MEAN = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_STDEV = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_MINUS = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_PLUS = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_MIN = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_MAX = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_RANGE = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_VLD_COUNT = TRUE
ENSEMBLE_STAT_ENSEMBLE_FLAG_FREQUENCY = TRUE
ENSEMBLE_STAT_ENSEMBLE_FLAG_VLD_COUNT = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_FREQUENCY = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_NEP = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_NMEP = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_RANK = TRUE
ENSEMBLE_STAT_ENSEMBLE_FLAG_RANK = FALSE
ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE
#
# Ensemble variables and levels as specified in the ens field dictionary
# of the MET configuration file. Specify as ENS_VARn_NAME, ENS_VARn_LEVELS,
# (optional) ENS_VARn_OPTION.
#
# ENS_VARn_THRESH must be included here in order for the netCDF file
# generated by EnsembleStat to include the ensemble probability (aka
# ensembe frequency) fields corresponding to the specified thresholds.
# These must be included because the corresonding GridStat task for
# ensemble probabilities expects to read them in as input.
#
ENS_VAR1_NAME = {{fieldname_in_fcst_input}}
ENS_VAR1_LEVELS = A{ACCUM_HH}
ENS_VAR1_THRESH = {{field_thresholds}}
#
# Get the variable ACCUM_HH from the environment.
# Precipitation accumulation interval in 2-digit hours.
#
ACCUM_HH = {{accum_hh}}
#
Expand All @@ -216,7 +204,6 @@ OBS_VAR1_OPTIONS = {FCST_VAR1_OPTIONS}
# configuration file.
#
OUTPUT_BASE = {{output_base}}
OUTPUT_DIR = {{output_dir}}
#
# Point observation input directory for EnsembleStat.
#
Expand All @@ -242,31 +229,37 @@ ENSEMBLE_STAT_CLIMO_STDEV_INPUT_DIR =
#
# Output directory for EnsembleStat.
#
ENSEMBLE_STAT_OUTPUT_DIR = {OUTPUT_DIR}
ENSEMBLE_STAT_OUTPUT_DIR = {{output_dir}}
#
# Directory for staging data.
#
STAGING_DIR = {{staging_dir}}

# End of [dir] section and start of [filename_templates] section.
[filename_templates]
#
# FCST_ENSEMBLE_STAT_INPUT_TEMPLATE - comma separated list of ensemble members
# or a single line, - filename wildcard characters may be used, ? or *.
# Template for point observation input to EnsembleStat relative to
# OBS_ENSEMBLE_STAT_POINT_INPUT_DIR.
#
# The template FCST_ENSEMBLE_STAT_INPUT_TEMPLATE is relative to
# FCST_ENSEMBLE_STAT_INPUT_DIR.
OBS_ENSEMBLE_STAT_POINT_INPUT_TEMPLATE =
#
FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}}
# Template for gridded observation input to EnsembleStat relative to
# OBS_ENSEMBLE_STAT_GRID_INPUT_DIR.
#
# Template for point observations relative to OBS_ENSEMBLE_STAT_POINT_INPUT_DIR.
OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = {{obs_input_fn_template}}
#
OBS_ENSEMBLE_STAT_POINT_INPUT_TEMPLATE =
# Template for forecast input to EnsembleStat relative to
# FCST_ENSEMBLE_STAT_INPUT_DIR.
#
# Template for gridded observations relative to OBS_ENSEMBLE_STAT_GRID_INPUT_DIR.
# Note that this can be a comma separated list of ensemble members
# or a single line, - filename wildcard characters may be used, ? or *.
#
OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = {{obs_input_fn_template}}

ENSEMBLE_STAT_VERIFICATION_MASK_TEMPLATE = {MET_INSTALL_DIR}/share/met/poly/CONUS.poly
FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}}
#
# Template for output from EnsembleStat relative to ENSEMBLE_STAT_OUTPUT_DIR.
#
ENSEMBLE_STAT_OUTPUT_TEMPLATE =
ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{FIELDNAME_IN_MET_FILEDIR_NAMES}_{OBTYPE}_{lead?fmt=%H%M%S}L
#
# Template for climatology input to EnsembleStat relative to
# ENSEMBLE_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example.
Expand All @@ -278,7 +271,7 @@ ENSEMBLE_STAT_CLIMO_MEAN_INPUT_TEMPLATE =
#
ENSEMBLE_STAT_CLIMO_STDEV_INPUT_TEMPLATE =
#
# The template ENSEMBLE_STAT_OUTPUT_TEMPLATE is relative to
# ENSEMBLE_STAT_OUTPUT_DIR.
# Variable used to specify one or more verification mask files for
# EnsembleStat. Not used for this example.
#
ENSEMBLE_STAT_OUTPUT_TEMPLATE =
ENSEMBLE_STAT_VERIFICATION_MASK_TEMPLATE = {MET_INSTALL_DIR}/share/met/poly/CONUS.poly
Loading