diff --git a/docs/Users_Guide/glossary.rst b/docs/Users_Guide/glossary.rst index cdfead0a9e..cf8ff44469 100644 --- a/docs/Users_Guide/glossary.rst +++ b/docs/Users_Guide/glossary.rst @@ -9648,3 +9648,8 @@ METplus Configuration Glossary Set the resolution for CyclonePlotter output. | *Used by:* CyclonePlotter + + TC_PAIRS_MATCH_POINTS + Specify the value for 'match_points' in the MET configuration file for TCPairs. + + | *Used by:* TCPairs diff --git a/docs/Users_Guide/wrappers.rst b/docs/Users_Guide/wrappers.rst index faacd539eb..ad359da405 100644 --- a/docs/Users_Guide/wrappers.rst +++ b/docs/Users_Guide/wrappers.rst @@ -7829,6 +7829,7 @@ METplus Configuration | :term:`TC_PAIRS_RUN_ONCE` | :term:`TC_PAIRS_CHECK_DUP` | :term:`TC_PAIRS_INTERP12` +| :term:`TC_PAIRS_MATCH_POINTS` | .. warning:: **DEPRECATED:** @@ -8039,6 +8040,17 @@ see :ref:`How METplus controls MET config file settings`. * - :term:`TC_PAIRS_VALID_END` - valid_end +**${METPLUS_MATCH_POINTS}** + +.. list-table:: + :widths: 5 5 + :header-rows: 0 + + * - METplus Config(s) + - MET Config File + * - :term:`TC_PAIRS_MATCH_POINTS` + - match_points + **${METPLUS_DLAND_FILE}** .. list-table:: diff --git a/docs/use_cases/model_applications/marine_and_cryosphere/GridStat_MODE_fcstIMS_obsNCEP_sea_ice.py b/docs/use_cases/model_applications/marine_and_cryosphere/GridStat_MODE_fcstIMS_obsNCEP_sea_ice.py index e6f2b6ab2d..b01f741b64 100644 --- a/docs/use_cases/model_applications/marine_and_cryosphere/GridStat_MODE_fcstIMS_obsNCEP_sea_ice.py +++ b/docs/use_cases/model_applications/marine_and_cryosphere/GridStat_MODE_fcstIMS_obsNCEP_sea_ice.py @@ -14,6 +14,7 @@ # and Ice Mapping System (IMS) and the National Centers for Environmental Prediction (NCEP) # sea ice analysis. This is a validation and diagnostics use case because it is limited to a # comparison between IMS analysis to NCEP analysis. +# Written by Lindsay Blank, NCAR. January 2020 #################################################################################################### # Datasets diff --git a/internal_tests/pytests/wrappers/tc_pairs/test_tc_pairs_wrapper.py b/internal_tests/pytests/wrappers/tc_pairs/test_tc_pairs_wrapper.py index 265564a29b..bea68e7492 100644 --- a/internal_tests/pytests/wrappers/tc_pairs/test_tc_pairs_wrapper.py +++ b/internal_tests/pytests/wrappers/tc_pairs/test_tc_pairs_wrapper.py @@ -378,6 +378,9 @@ def test_tc_pairs_storm_id_lists(metplus_config, config_overrides, # 19: interp12 ({'TC_PAIRS_INTERP12': 'replace', }, {'METPLUS_INTERP12': 'interp12 = REPLACE;'}), + # 20 match_points + ({'TC_PAIRS_MATCH_POINTS': 'False', }, + {'METPLUS_MATCH_POINTS': 'match_points = FALSE;'}), ] ) @@ -386,7 +389,7 @@ def test_tc_pairs_loop_order_processes(metplus_config, config_overrides, env_var_values): # run using init and valid time variables for loop_by in ['INIT', 'VALID']: - remove_beg = remove_end = False + remove_beg = remove_end = remove_match_points = False config = metplus_config() set_minimum_config_settings(config, loop_by) @@ -420,6 +423,12 @@ def test_tc_pairs_loop_order_processes(metplus_config, config_overrides, ) remove_end = True + if f'METPLUS_MATCH_POINTS' not in env_var_values: + env_var_values[f'METPLUS_MATCH_POINTS'] = ( + 'match_points = TRUE;' + ) + remove_match_points = True + wrapper = TCPairsWrapper(config) assert wrapper.isOK @@ -456,6 +465,8 @@ def test_tc_pairs_loop_order_processes(metplus_config, config_overrides, del env_var_values[f'METPLUS_{loop_by}_BEG'] if remove_end: del env_var_values[f'METPLUS_{loop_by}_END'] + if remove_match_points: + del env_var_values['METPLUS_MATCH_POINTS'] @pytest.mark.parametrize( @@ -510,6 +521,10 @@ def test_tc_pairs_read_all_files(metplus_config, config_overrides, f'{loop_by.lower()}_end = "{run_times[-1]}";' ) + env_var_values['METPLUS_MATCH_POINTS'] = ( + 'match_points = TRUE;' + ) + wrapper = TCPairsWrapper(config) assert wrapper.isOK diff --git a/metplus/util/config_metplus.py b/metplus/util/config_metplus.py index 3ce629bdc2..e407774400 100644 --- a/metplus/util/config_metplus.py +++ b/metplus/util/config_metplus.py @@ -656,7 +656,7 @@ def check_default(self, sec, name, default): raise # print debug message saying default value was used - if not default: + if default == '': default_text = 'empty string' else: default_text = default @@ -1766,7 +1766,8 @@ def skip_field_info_validation(config): process_list = [item[0] for item in get_process_list(config)] # if running MTD in single mode, you don't need matching FCST/OBS - if 'MTD' in process_list and config.getbool('config', 'MTD_SINGLE_RUN'): + if ('MTD' in process_list and + config.getbool('config', 'MTD_SINGLE_RUN', False)): return True # if running any app other than the reformatters, you need matching FCST/OBS, so don't skip diff --git a/metplus/util/diff_util.py b/metplus/util/diff_util.py index 1de442caac..009939333b 100644 --- a/metplus/util/diff_util.py +++ b/metplus/util/diff_util.py @@ -108,6 +108,11 @@ def compare_dir(dir_a, dir_b, debug=False, save_diff=False): for filename in files: filepath_b = os.path.join(root, filename) + + # skip metplus_final.conf + if filepath_b.endswith('metplus_final.conf'): + continue + filepath_a = filepath_b.replace(dir_b, dir_a) if not os.path.exists(filepath_a): # check if missing file is actually diff file that was generated diff --git a/metplus/wrappers/cyclone_plotter_wrapper.py b/metplus/wrappers/cyclone_plotter_wrapper.py index b3db2c8ed1..740141ff43 100644 --- a/metplus/wrappers/cyclone_plotter_wrapper.py +++ b/metplus/wrappers/cyclone_plotter_wrapper.py @@ -134,37 +134,33 @@ def __init__(self, config, instance=None): else: self.logger.debug("Getting lons and lats that define the plot's extent") west_lon = (self.config.getstr('config', - 'CYCLONE_PLOTTER_WEST_LON') + 'CYCLONE_PLOTTER_WEST_LON', '') ) east_lon = (self.config.getstr('config', - 'CYCLONE_PLOTTER_EAST_LON') + 'CYCLONE_PLOTTER_EAST_LON', '') ) north_lat = (self.config.getstr('config', - 'CYCLONE_PLOTTER_NORTH_LAT') + 'CYCLONE_PLOTTER_NORTH_LAT', '') ) south_lat = (self.config.getstr('config', - 'CYCLONE_PLOTTER_SOUTH_LAT') + 'CYCLONE_PLOTTER_SOUTH_LAT', '') ) # Check for unconfigured lons and lats needed for defining the extent if not west_lon: - self.logger.error("Missing CYCLONE_PLOTTER_WEST_LON in config file. ") - sys.exit("Missing the CYCLONE_PLOTTER_WEST_LON please check config file") + self.log_error("Missing CYCLONE_PLOTTER_WEST_LON in config file. ") else: self.west_lon = (float(west_lon)) if not east_lon: - self.logger.error("Missing CYCLONE_PLOTTER_EAST_LON in config file. ") - sys.exit("Missing the CYCLONE_PLOTTER_EAST_LON please check config file") + self.log_error("Missing CYCLONE_PLOTTER_EAST_LON in config file. ") else: self.east_lon = (float(east_lon)) if not south_lat: - self.logger.error("Missing CYCLONE_PLOTTER_SOUTH_LAT in config file. ") - sys.exit("Missing the CYCLONE_PLOTTER_SOUTH_LAT please check config file") + self.log_error("Missing CYCLONE_PLOTTER_SOUTH_LAT in config file. ") else: self.south_lat = float(south_lat) if not north_lat: - self.logger.error("Missing CYCLONE_PLOTTER_NORTH_LAT in config file. ") - sys.exit("Missing the CYCLONE_PLOTTER_NORTH_LAT please check config file") + self.log_error("Missing CYCLONE_PLOTTER_NORTH_LAT in config file. ") else: self.north_lat = float(north_lat) diff --git a/metplus/wrappers/tc_pairs_wrapper.py b/metplus/wrappers/tc_pairs_wrapper.py index 424b25a4af..0c6b42d828 100755 --- a/metplus/wrappers/tc_pairs_wrapper.py +++ b/metplus/wrappers/tc_pairs_wrapper.py @@ -63,6 +63,7 @@ class TCPairsWrapper(CommandBuilder): 'METPLUS_VALID_EXC', 'METPLUS_CHECK_DUP', 'METPLUS_INTERP12', + 'METPLUS_MATCH_POINTS', ] WILDCARDS = { @@ -177,6 +178,12 @@ def create_c_dict(self): extra_args={'remove_quotes': True, 'uppercase': True}) + self.add_met_config(name='match_points', data_type='bool') + + # if unset, set match_points to TRUE to match old default in wrapped + if not self.env_var_dict.get('METPLUS_MATCH_POINTS'): + self.env_var_dict['METPLUS_MATCH_POINTS'] = 'match_points = TRUE;' + c_dict['INIT_INCLUDE'] = getlist( self.get_wrapper_or_generic_config('INIT_INCLUDE') ) diff --git a/parm/met_config/TCPairsConfig_wrapped b/parm/met_config/TCPairsConfig_wrapped index 67246863de..34f85e1a2f 100644 --- a/parm/met_config/TCPairsConfig_wrapped +++ b/parm/met_config/TCPairsConfig_wrapped @@ -124,7 +124,8 @@ anly_track = BDECK; // Specify if only those track points common to both the ADECK and BDECK // tracks be written out. // -match_points = TRUE; +//match_points = +${METPLUS_MATCH_POINTS} // // Specify the NetCDF output of the gen_dland tool containing a gridded diff --git a/parm/use_cases/met_tool_wrapper/TCPairs/TCPairs_extra_tropical.conf b/parm/use_cases/met_tool_wrapper/TCPairs/TCPairs_extra_tropical.conf index 593970cced..092a7f985c 100644 --- a/parm/use_cases/met_tool_wrapper/TCPairs/TCPairs_extra_tropical.conf +++ b/parm/use_cases/met_tool_wrapper/TCPairs/TCPairs_extra_tropical.conf @@ -104,3 +104,5 @@ TC_PAIRS_MISSING_VAL = -9999 #TC_PAIRS_CHECK_DUP = #TC_PAIRS_INTERP12 = + +#TC_PAIRS_MATCH_POINTS = \ No newline at end of file diff --git a/parm/use_cases/met_tool_wrapper/TCPairs/TCPairs_tropical.conf b/parm/use_cases/met_tool_wrapper/TCPairs/TCPairs_tropical.conf index 044712728f..680a1515a6 100644 --- a/parm/use_cases/met_tool_wrapper/TCPairs/TCPairs_tropical.conf +++ b/parm/use_cases/met_tool_wrapper/TCPairs/TCPairs_tropical.conf @@ -100,3 +100,5 @@ TC_PAIRS_DLAND_FILE = MET_BASE/tc_data/dland_global_tenth_degree.nc #TC_PAIRS_CHECK_DUP = #TC_PAIRS_INTERP12 = + +#TC_PAIRS_MATCH_POINTS = diff --git a/parm/use_cases/model_applications/air_quality_and_comp/EnsembleStat_fcstICAP_obsMODIS_aod.conf b/parm/use_cases/model_applications/air_quality_and_comp/EnsembleStat_fcstICAP_obsMODIS_aod.conf index 1cb953744a..ade1512714 100644 --- a/parm/use_cases/model_applications/air_quality_and_comp/EnsembleStat_fcstICAP_obsMODIS_aod.conf +++ b/parm/use_cases/model_applications/air_quality_and_comp/EnsembleStat_fcstICAP_obsMODIS_aod.conf @@ -1,135 +1,88 @@ -# Ensemble Stat using Python Embedding Input - [config] -## Configuration-related settings such as the process list, begin and end times, etc. +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/air_quality_and_comp/EnsembleStat_fcstICAP_obsMODIS_aod.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = EnsembleStat -# Looping by times: steps through each 'task' in the PROCESS_LIST for each -# defined time, and repeats until all times have been evaluated. -LOOP_ORDER = times -# LOOP_BY: Set to INIT to loop over initialization times -LOOP_BY = INIT +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Format of INIT_BEG and INT_END +LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H%M - -# Start time for METplus run INIT_BEG=201608150000 - -# End time for METplus run INIT_END=201608150000 - -# Increment between METplus runs in seconds. Must be >= 60 INIT_INCREMENT=06H -# List of forecast leads to process LEAD_SEQ = 12H -# Used in the MET config file for: model, output_prefix -MODEL = ICAP - -# Name to identify observation data in output -OBTYPE = NRL_AOD - -# The MET ensemble_stat logging level -# 0 quiet to 5 loud, Verbosity setting for MET ensemble_stat output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_ENSEMBLE_STAT_VERBOSITY = 2 - -OBS_ENSEMBLE_STAT_WINDOW_BEGIN = -5400 -OBS_ENSEMBLE_STAT_WINDOW_END = 5400 - -OBS_FILE_WINDOW_BEGIN = 0 -OBS_FILE_WINDOW_END = 0 - -# number of expected members for ensemble. Should correspond with the -# number of items in the list for FCST_ENSEMBLE_STAT_INPUT_TEMPLATE -ENSEMBLE_STAT_N_MEMBERS = 7 - -# ens.ens_thresh value in the MET config file -# threshold for ratio of valid files to expected files to allow app to run -ENSEMBLE_STAT_ENS_THRESH = 0.1 - -# Used in the MET config file for: regrid to_grid field -ENSEMBLE_STAT_REGRID_TO_GRID = NONE - -ENSEMBLE_STAT_OUTPUT_PREFIX = - -ENSEMBLE_STAT_CONFIG_FILE = {PARM_BASE}/met_config/EnsembleStatConfig_wrapped - -# ENSEMBLE_STAT_MET_OBS_ERR_TABLE is not required. -# If the variable is not defined, or the value is not set -# than the MET default is used. -#ENSEMBLE_STAT_MET_OBS_ERR_TABLE = - -# 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_VAR1_NAME = {CONFIG_DIR}/forecast_embedded.py {OBS_ENSEMBLE_STAT_GRID_INPUT_DIR}/icap_{init?fmt=%Y%m%d%H}_aod.nc:total_aod:{valid?fmt=%Y%m%d%H%M}:MET_PYTHON_INPUT_ARG +LOOP_ORDER = times -# Forecast Variables and levels as specified in the fcst field dictionary -# of the MET configuration file. Specify as FCST_VARn_NAME, FCST_VARn_LEVELS, -# (optional) FCST_VARn_OPTION -FCST_VAR1_NAME = {CONFIG_DIR}/forecast_embedded.py {OBS_ENSEMBLE_STAT_GRID_INPUT_DIR}/icap_{init?fmt=%Y%m%d%H}_aod.nc:total_aod:{valid?fmt=%Y%m%d%H%M}:MET_PYTHON_INPUT_ARG -# Observation Variables and levels as specified in the obs field dictionary -# of the MET configuration file. Specify as OBS_VARn_NAME, OBS_VARn_LEVELS, -# (optional) OBS_VARn_OPTION -OBS_VAR1_NAME = {CONFIG_DIR}/analysis_embedded.py {OBS_ENSEMBLE_STAT_GRID_INPUT_DIR}/AGGR_HOURLY_{valid?fmt=%Y%m%d}T{valid?fmt=%H%M}_1deg_global_archive.nc:aod_nrl_total:Mean +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### ENS_ENSEMBLE_STAT_INPUT_DATATYPE = PYTHON_NUMPY FCST_ENSEMBLE_STAT_INPUT_DATATYPE = PYTHON_NUMPY - -OBS_ENSEMBLE_STAT_INPUT_GRID_DATATYPE = PYTHON_NUMPY - -[dir] -# Use case configuration file directory -CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/air_quality_and_comp/EnsembleStat_fcstICAP_obsMODIS_aod - -# Forecast model input directory for ensemble_stat FCST_ENSEMBLE_STAT_INPUT_DIR = +FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = 0, 1, 2, 3, 4, 5, 6 -# Point observation input dir for ensemble_stat -OBS_ENSEMBLE_STAT_POINT_INPUT_DIR = - -# Grid observation input dir for ensemble_stat +OBS_ENSEMBLE_STAT_INPUT_GRID_DATATYPE = PYTHON_NUMPY OBS_ENSEMBLE_STAT_GRID_INPUT_DIR = {INPUT_BASE}/model_applications/air_quality_and_comp/aod +OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = PYTHON_NUMPY -# directory containing climatology mean input to EnsembleStat -# Not used in this example -ENSEMBLE_STAT_CLIMO_MEAN_INPUT_DIR = +ENSEMBLE_STAT_OUTPUT_DIR = {OUTPUT_BASE} -# directory containing climatology mean input to EnsembleStat -# Not used in this example -ENSEMBLE_STAT_CLIMO_STDEV_INPUT_DIR = -# output directory for ensemble_stat -ENSEMBLE_STAT_OUTPUT_DIR = {OUTPUT_BASE} +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### +CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/air_quality_and_comp/EnsembleStat_fcstICAP_obsMODIS_aod -[filename_templates] +ENS_VAR1_NAME = {CONFIG_DIR}/forecast_embedded.py {OBS_ENSEMBLE_STAT_GRID_INPUT_DIR}/icap_{init?fmt=%Y%m%d%H}_aod.nc:total_aod:{valid?fmt=%Y%m%d%H%M}:MET_PYTHON_INPUT_ARG -# FCST_ENSEMBLE_STAT_INPUT_TEMPLATE - comma separated list of ensemble members -# or a single line, - wildcard characters may be used. +FCST_VAR1_NAME = {CONFIG_DIR}/forecast_embedded.py {OBS_ENSEMBLE_STAT_GRID_INPUT_DIR}/icap_{init?fmt=%Y%m%d%H}_aod.nc:total_aod:{valid?fmt=%Y%m%d%H%M}:MET_PYTHON_INPUT_ARG -# FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = ????????gep?/d01_{init?fmt=%Y%m%d%H}_02400.grib -FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = 0, 1, 2, 3, 4, 5, 6 +OBS_VAR1_NAME = {CONFIG_DIR}/analysis_embedded.py {OBS_ENSEMBLE_STAT_GRID_INPUT_DIR}/AGGR_HOURLY_{valid?fmt=%Y%m%d}T{valid?fmt=%H%M}_1deg_global_archive.nc:aod_nrl_total:Mean -OBS_ENSEMBLE_STAT_POINT_INPUT_TEMPLATE = -OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = PYTHON_NUMPY +### +# EnsembleStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#ensemblestat +### + +MODEL = ICAP +OBTYPE = NRL_AOD -# Template to look for climatology input to EnsembleStat relative to ENSEMBLE_STAT_CLIMO_MEAN_INPUT_DIR -# Not used in this example -ENSEMBLE_STAT_CLIMO_MEAN_INPUT_TEMPLATE = +OBS_ENSEMBLE_STAT_WINDOW_BEGIN = -5400 +OBS_ENSEMBLE_STAT_WINDOW_END = 5400 -# Template to look for climatology input to EnsembleStat relative to ENSEMBLE_STAT_CLIMO_STDEV_INPUT_DIR -# Not used in this example -ENSEMBLE_STAT_CLIMO_STDEV_INPUT_TEMPLATE = +ENSEMBLE_STAT_N_MEMBERS = 7 +ENSEMBLE_STAT_ENS_THRESH = 0.1 -ENSEMBLE_STAT_OUTPUT_TEMPLATE = +ENSEMBLE_STAT_REGRID_TO_GRID = NONE +ENSEMBLE_STAT_OUTPUT_PREFIX = diff --git a/parm/use_cases/model_applications/climate/GridStat_fcstCESM_obsGFS_ConusTemp.conf b/parm/use_cases/model_applications/climate/GridStat_fcstCESM_obsGFS_ConusTemp.conf index 189b46420a..bc6b3cc261 100644 --- a/parm/use_cases/model_applications/climate/GridStat_fcstCESM_obsGFS_ConusTemp.conf +++ b/parm/use_cases/model_applications/climate/GridStat_fcstCESM_obsGFS_ConusTemp.conf @@ -1,83 +1,86 @@ -# GridStat METplus Configuration for the CESM_vs_GFS climate model use case: [config] -# List of applications to run - only GridStat for this case +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/climate/GridStat_fcstCESM_obsGFS_ConusTemp.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = GridStat -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 +LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT INIT_BEG = 2014080100 - -# End time for METplus run - must match INIT_TIME_FMT -INIT_END = 2014080200 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds +INIT_END = 2014080200 INIT_INCREMENT = 86400 -# List of forecast leads to process for each run time (init or valid) LEAD_SEQ = 6, 12 -# Order of loops to process data - Options are times, processes -# times = run all items in the PROCESS_LIST for a single initialization -# time, then repeat until all times have been evaluated. -# processes = run each item in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST. LOOP_ORDER = times -# Location of MET config file to pass to the GridStat -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped -# Name to identify model (forecast) data in output -MODEL = CESM +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# Name to identify observation data in output (used in output file path) -OBTYPE = GFS_ANALYS +FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/climate/CESM +FCST_GRID_STAT_INPUT_TEMPLATE = MetPlus.globe.{init?fmt=%Y-%m-%d}-00000.cam.h0.{init?fmt=%Y-%m-%d}-10800.nc + +OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/climate/gfs_analysis +OBS_GRID_STAT_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/gfsanl_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M}_000.grb2 + +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/climate/CESM_GridStat +GRID_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H} + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + +GRID_STAT_ONCE_PER_FIELD = False -# Name of forecast variable 1, List of levels to evaluate for forecast variable 1, and -# List of thresholds to evaluate for each name/level combination for forecast variable 1 FCST_VAR1_NAME = TS -FCST_VAR1_LEVELS = "({valid?fmt=%Y%m%d_%H%M%S},*,*)" +FCST_VAR1_LEVELS = "({valid?fmt=%Y%m%d_%H%M%S},*,*)" FCST_VAR1_THRESH = ge32.0, ge65.0, ge75.0 FCST_VAR1_OPTIONS = convert(x) = K_to_F(x); -# Name of observation variable, levels, and thresholds -# levels and thresh must be the same length as FCST_VAR1_LEVELS and FCST_VAR1_THRESH OBS_VAR1_NAME = TMP OBS_VAR1_LEVELS = Z2 OBS_VAR1_THRESH = ge32.0, ge65.0, ge75.0 OBS_VAR1_OPTIONS = convert(x) = K_to_F(x); -# Set to true to run GridStat separately for each field specified -# Set to false to create one run of GridStat per run time that -# includes all fields specified. -# Not used for this example -GRID_STAT_ONCE_PER_FIELD = False -GRID_STAT_REGRID_TO_GRID = FCST +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### -GRID_STAT_VERIFICATION_MASK = {FCST_GRID_STAT_INPUT_DIR}/conus_cesm_mask.nc +MODEL = CESM +OBTYPE = GFS_ANALYS -# Set to true if forecast data is probabilistic -FCST_IS_PROB = false +GRID_STAT_REGRID_TO_GRID = FCST -# Set to true if observation data is probabilistic -# Only used if configuring forecast data as the 'OBS' input -OBS_IS_PROB = false +GRID_STAT_VERIFICATION_MASK = {FCST_GRID_STAT_INPUT_DIR}/conus_cesm_mask.nc -# Output prefix set in grid_stat config file GRID_STAT_OUTPUT_PREFIX={MODEL}_{CURRENT_OBS_NAME}_vs_{OBTYPE} GRID_STAT_OUTPUT_FLAG_CTC = STAT @@ -85,7 +88,6 @@ GRID_STAT_OUTPUT_FLAG_CTS = STAT GRID_STAT_OUTPUT_FLAG_CNT = STAT GRID_STAT_OUTPUT_FLAG_SL1L2 = STAT - GRID_STAT_NC_PAIRS_FLAG_LATLON = FALSE GRID_STAT_NC_PAIRS_FLAG_RAW = FALSE GRID_STAT_NC_PAIRS_FLAG_DIFF = FALSE @@ -93,35 +95,3 @@ GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE GRID_STAT_INTERP_FIELD = NONE - -# End of [config] section and start of [dir] section -[dir] - -# directory containing forecast input to GridStat -FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/climate/CESM - -# directory containing observation input to GridStat -OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/climate/gfs_analysis - -# directory containing climatology input to GridStat -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_DIR = - -# directory to write output from GridStat -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/climate/CESM_GridStat - -# End of [dir] section and start of [filename_templates] section -[filename_templates] - -# Template to look for forecast input to GridStat relative to FCST_GRID_STAT_INPUT_DIR -FCST_GRID_STAT_INPUT_TEMPLATE = MetPlus.globe.{init?fmt=%Y-%m-%d}-00000.cam.h0.{init?fmt=%Y-%m-%d}-10800.nc - -# Template to look for observation input to GridStat relative to OBS_GRID_STAT_INPUT_DIR -OBS_GRID_STAT_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/gfsanl_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M}_000.grb2 - -# Optional subdirectories relative to GRID_STAT_OUTPUT_DIR to write output from GridStat -GRID_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H} - -# Template to look for climatology input to GridStat relative to GRID_STAT_CLIMO_MEAN_INPUT_DIR -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = diff --git a/parm/use_cases/model_applications/climate/MODE_fcstCESM_obsGPCP_AsianMonsoonPrecip.conf b/parm/use_cases/model_applications/climate/MODE_fcstCESM_obsGPCP_AsianMonsoonPrecip.conf index cdf0c56d85..4f304f865d 100644 --- a/parm/use_cases/model_applications/climate/MODE_fcstCESM_obsGPCP_AsianMonsoonPrecip.conf +++ b/parm/use_cases/model_applications/climate/MODE_fcstCESM_obsGPCP_AsianMonsoonPrecip.conf @@ -1,38 +1,63 @@ -# GridStat METplus Configuration for the CESM_vs_GPCP climate model use case: [config] -# List of applications to run - only GridStat for this case + +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/climate/MODE_fcstCESM_obsGPCP_AsianMonsoonPrecip.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = Mode -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 +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Start time for METplus run - must match INIT_TIME_FMT +LOOP_BY = INIT +INIT_TIME_FMT = %Y%m%d%H INIT_BEG = 2014060100 - -# End time for METplus run - must match INIT_TIME_FMT INIT_END = 2014060200 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds INIT_INCREMENT = 86400 -# List of forecast leads to process for each run time (init or valid) LEAD_SEQ = 24, 48 -# Order of loops to process data - Options are times, processes -# times = run all items in the PROCESS_LIST for a single initialization -# time, then repeat until all times have been evaluated. -# processes = run each item in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST. LOOP_ORDER = times -# Forecast Reflectivity Variable Information +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +FCST_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/climate/CESM +FCST_MODE_INPUT_TEMPLATE = MetPlus.globe.{init?fmt=%Y-%m-%d}-00000.cam.h1.{init?fmt=%Y-%m-%d?shift=86400}-00000.nc + +OBS_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/climate/GPCP +OBS_MODE_INPUT_TEMPLATE = gpcp_v01r03_daily_d{valid?fmt=%Y%m%d?shift=-86400}_c20170530.nc + +MODE_OUTPUT_DIR = {OUTPUT_BASE}/climate/CESM_MODE +MODE_OUTPUT_TEMPLATE = {init?fmt=%Y_%m_%d_%H%M%S} + +MODE_VERIFICATION_MASK_TEMPLATE = {FCST_MODE_INPUT_DIR}/asia_monsoon_cesm_mask.nc + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + MODEL = CESM FCST_VAR1_NAME = PRECT FCST_VAR1_LEVELS = "({valid?fmt=%Y%m%d_%H%M%S},*,*)" @@ -45,12 +70,15 @@ MODE_OBS_FILTER_ATTR_NAME = AREA MODE_OBS_FILTER_ATTR_THRESH = >=7 -# MRMS Reflecivitiy Variable Information OBTYPE = GPCP OBS_VAR1_NAME = precip OBS_VAR1_LEVELS = "(0,*,*)" -MODE_CONFIG_FILE = {PARM_BASE}/met_config/MODEConfig_wrapped + +### +# MODE Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#mode +### MODE_GRID_RES = 1 @@ -75,20 +103,3 @@ MODE_WEIGHT_ASPECT_DIFF = 1.0 MODE_REGRID_TO_GRID = FCST MODE_MASK_MISSING_FLAG = BOTH - -[dir] -# Directory for CESM data -FCST_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/climate/CESM - -# Directory of the MRMS obs -OBS_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/climate/GPCP - -# Output Data -MODE_OUTPUT_DIR = {OUTPUT_BASE}/climate/CESM_MODE - -[filename_templates] -# Forecast Filename Templates: -FCST_MODE_INPUT_TEMPLATE = MetPlus.globe.{init?fmt=%Y-%m-%d}-00000.cam.h1.{init?fmt=%Y-%m-%d?shift=86400}-00000.nc -OBS_MODE_INPUT_TEMPLATE = gpcp_v01r03_daily_d{valid?fmt=%Y%m%d?shift=-86400}_c20170530.nc -MODE_OUTPUT_TEMPLATE = {init?fmt=%Y_%m_%d_%H%M%S} -MODE_VERIFICATION_MASK_TEMPLATE = {FCST_MODE_INPUT_DIR}/asia_monsoon_cesm_mask.nc diff --git a/parm/use_cases/model_applications/data_assimilation/StatAnalysis_fcstHAFS_obsPrepBufr_JEDI_IODA_interface.conf b/parm/use_cases/model_applications/data_assimilation/StatAnalysis_fcstHAFS_obsPrepBufr_JEDI_IODA_interface.conf index 523a598cde..2cb82bf767 100644 --- a/parm/use_cases/model_applications/data_assimilation/StatAnalysis_fcstHAFS_obsPrepBufr_JEDI_IODA_interface.conf +++ b/parm/use_cases/model_applications/data_assimilation/StatAnalysis_fcstHAFS_obsPrepBufr_JEDI_IODA_interface.conf @@ -1,88 +1,65 @@ -# StatAnalysis METplus Configuration - -# section heading for [config] variables - all items below this line and -# before the next section heading correspond to the [config] section [config] -# List of applications to run - only StatAnalysis for this case +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/data_assimilation/StatAnalysis_fcstHAFS_obsPrepBufr_JEDI_IODA_interface.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = StatAnalysis -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = VALID -# Format of INIT_BEG and INT_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 VALID_TIME_FMT = %Y%m%d%H - - -# Start time for METplus run - must match INIT_TIME_FMT VALID_BEG=2005080700 - -# End time for METplus run - must match INIT_TIME_FMT VALID_END=2005080700 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds VALID_INCREMENT = 12H -# 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 = 0 -# 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 -# Verbosity of MET output - overrides LOG_VERBOSITY for StatAnalysis only -LOG_STAT_ANALYSIS_VERBOSITY = 2 - -# Models to process -# MODELn is the model name to filter for in -# stat files [required] -# MODELn_OBTYPE is the observation name -# to filter for the .stat files -# [required] -# MODELn_STAT_ANALYSIS_LOOKIN_DIR is the directory to search for -# the .stat files in, wildcards (*) -# are okay to search for multiple -# directories and templates like -# {valid?fmt=%Y%m%d%H%M%S} [required] -# MODELn_REFERENCE_NAME is a reference name for MODELn, defaults to -# MODELn, it can be used in the file template names -# [optional] + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +MODEL1_STAT_ANALYSIS_LOOKIN_DIR = python {PARM_BASE}/use_cases/model_applications/data_assimilation/StatAnalysis_fcstHAFS_obsPrepBufr_JEDI_IODA_interface/read_ioda_mpr.py {INPUT_BASE}/model_applications/data_assimilation/hofx_dir + +STAT_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/data_assimilation/StatAnalysis_HofX + +MODEL1_STAT_ANALYSIS_DUMP_ROW_TEMPLATE = dump.out + + +### +# StatAnalysis Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#statanalysis +### + MODEL1 = NA MODEL1_OBTYPE = NA -# Location of MET config file to pass to StatAnalysis -# References CONFIG_DIR from the [dir] section -#STAT_ANALYSIS_CONFIG_FILE = {CONFIG_DIR}/STATAnalysisConfig_wrapped - -# stat_analysis job info STAT_ANALYSIS_JOB_NAME = filter -# if using -dump_row, put in JOBS_ARGS "-dump_row [dump_row_file]" -# if using -out_stat, put in JOBS_ARGS "-out_stat [out_stat_file]" -# METplus will fill in filename STAT_ANALYSIS_JOB_ARGS = -out_line_type CNT -dump_row [dump_row_file] -line_type MPR -# Optional variables for further filtering -# can be blank, single, or multiple values -# if more than one use comma separated list -# -# (FCST)(OBS)_(VALID)(INIT)_HOUR_LIST: HH format (ex. 00, 06, 12) -# (FCST)(OBS)_LEAD_LIST: HH[H][MMSS] format (ex. 00, 06, 120) MODEL_LIST = DESC_LIST = FCST_LEAD_LIST = @@ -105,40 +82,6 @@ OBS_THRESH_LIST = COV_THRESH_LIST = ALPHA_LIST = LINE_TYPE_LIST = -# how to treat items listed in above _LIST variables -# GROUP_LIST_ITEMS: items listed in a given _LIST variable -# will be grouped together -# LOOP_LIST_ITEMS: items listed in a give _LIST variable -# will be looped over -# if not listed METplus will treat the list as a group + GROUP_LIST_ITEMS = LOOP_LIST_ITEMS = MODEL_LIST - - -# End of [config] section and start of [dir] section -[dir] - -MODEL1_STAT_ANALYSIS_LOOKIN_DIR = python {PARM_BASE}/use_cases/model_applications/data_assimilation/StatAnalysis_fcstHAFS_obsPrepBufr_JEDI_IODA_interface/read_ioda_mpr.py {INPUT_BASE}/model_applications/data_assimilation/hofx_dir - -# Output data directory -STAT_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/data_assimilation/StatAnalysis_HofX - -# location of configuration files used by MET applications -CONFIG_DIR = {PARM_BASE}/met_config - - -# End of [dir] section and start of [filename_templates] section -[filename_templates] -# Optional settings to create templated directory and file name information -# to save files as stat_analysis output as, this is appended to STAT_ANALYSIS_OUTPUT_DIR -# if no template is provided a default filename set in the code will be used -# Use: -# string templates can be set for all the lists being looped over, just -# use and a lower case version of the list, ex. {fcst_valid_hour?fmt=%H} -# or {fcst_var?fmt=%s} -# For looping over models: -# can set MODELn_STAT_ANALYSIS_[DUMP_ROW/OUT_STAT]_TEMPLATE for individual models -# or STAT_ANALYSIS_[DUMP_ROW/OUT_STAT] with {model?fmt=%s} -MODEL1_STAT_ANALYSIS_DUMP_ROW_TEMPLATE = dump.out - -#MODEL1_STAT_ANALYSIS_OUT_STAT_TEMPLATE = {model?fmt=%s}_{obtype?fmt=%s}_valid{valid?fmt=%Y%m%d}_fcstvalidhour{valid_hour?fmt=%H}0000Z_out_stat.stat diff --git a/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_MODE_fcstIMS_obsNCEP_sea_ice.conf b/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_MODE_fcstIMS_obsNCEP_sea_ice.conf index 5c107dd419..6a0df6836a 100644 --- a/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_MODE_fcstIMS_obsNCEP_sea_ice.conf +++ b/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_MODE_fcstIMS_obsNCEP_sea_ice.conf @@ -1,73 +1,107 @@ -# IMS Ice Concentration (fcst) vs. NCEP Ice Concentration (obs) -# IMS and NCEP are both observation analyses. For the purpose of running MET, IMS is referred to as -# the forecast and NCEP as the obs. -# Written by Lindsay Blank, NCAR. January 2020 -#################################################################################################### [config] -# Loop by analysis time -LOOP_BY = VALID -# Format of VALID_BEG and VALID_END -VALID_TIME_FMT = %Y%m%d +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/marine_and_cryosphere/GridStat_MODE_fcstIMS_obsNCEP_sea_ice.html -# L: Available dates are 20190201 - 20190228 -# Start time for METplus run -VALID_BEG=20190201 +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -# End time for METplus run -VALID_END=20190201 +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + +PROCESS_LIST = GridStat, Mode -# Increment between METplus runs in seconds. Must be >= 60 + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + + +LOOP_BY = VALID +VALID_TIME_FMT = %Y%m%d +VALID_BEG=20190201 +VALID_END=20190201 VALID_INCREMENT=86400 -# Options are times, processes -# times = run all items in the PROCESS_LIST for a single initialization -# time, then repeat until all times have been evaluated. -# processes = run each item in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST. LOOP_ORDER = times -# List of applications to run -PROCESS_LIST = GridStat, Mode -# Description of data to be processed -# used in output file path -MODEL = IMS -OBTYPE = NCEP +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# Set to true if forecast data is probabilistic -FCST_IS_PROB = false +FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/IMS_data +FCST_GRID_STAT_INPUT_TEMPLATE = imssnow96.{valid?fmt=%Y%m%d}.grb.grib2 +OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/NCEP_data +OBS_GRID_STAT_INPUT_TEMPLATE = seaice.t00z.north12psg.grib2.{valid?fmt=%Y%m%d} + +GRID_STAT_VERIFICATION_MASK_TEMPLATE = {INPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/seaice_nland127.nc + +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/GridStat +GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/grid_stat + + +FCST_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/IMS_data +FCST_MODE_INPUT_TEMPLATE = imssnow96.{valid?fmt=%Y%m%d}.grb.grib2 + +OBS_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/NCEP_data +OBS_MODE_INPUT_TEMPLATE = seaice.t00z.north12psg.grib2.{valid?fmt=%Y%m%d} + +MODE_VERIFICATION_MASK_TEMPLATE = {INPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/seaice_nland127.nc + +MODE_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/MODE +MODE_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/mode + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + +MODEL = IMS +OBTYPE = NCEP -################################################################################################### -# GridStat Configurations -################################################################################################### -# List of variables to compare -# "THRESH" refers to "cat_thresh" FCST_VAR1_NAME = ICEC FCST_VAR1_LEVELS = Z0 -FCST_VAR1_THRESH = ==1.0 +FCST_VAR1_THRESH = ==1.0 + +FCST_MODE_CONV_THRESH = ==1.00 +OBS_MODE_CONV_THRESH = >=0.40 + OBS_VAR1_NAME = ICEC OBS_VAR1_LEVELS = Z0 OBS_VAR1_THRESH = >=0.40 OBS_VAR1_OPTIONS = censor_thresh = [ >1.00 && <=1.28, >1.28 ]; censor_val = [ 1.00 , -9999 ]; +MODE_OBS_CENSOR_THRESH = >1.00 && <=1.28, >1.28 +MODE_OBS_CENSOR_VAL = 1.00 , -9999 + + +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### + GRID_STAT_NEIGHBORHOOD_WIDTH = 3, 5, 7, 9 -# regridding domain for GridStat GRID_STAT_REGRID_TO_GRID = OBS -# Location of grid_stat MET config file -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - -# prefix to add to GridStat output filenames GRID_STAT_OUTPUT_PREFIX = {MODEL}_{CURRENT_FCST_NAME}_vs_{OBTYPE}_{CURRENT_OBS_NAME}_{CURRENT_FCST_LEVEL} GRID_STAT_MASK_GRID = -#GRID_STAT_MASK_POLY = - GRID_STAT_OUTPUT_FLAG_CTC = STAT GRID_STAT_OUTPUT_FLAG_CTS = STAT GRID_STAT_OUTPUT_FLAG_FHO = STAT @@ -79,37 +113,23 @@ GRID_STAT_OUTPUT_FLAG_NBRCNT = STAT GRID_STAT_NC_PAIRS_FLAG_NBRHD = TRUE -#################################################################################################### -# MODE Configurations -#################################################################################################### -# regridding domain for MODE + +### +# MODE Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#mode +### + MODE_REGRID_TO_GRID = OBS -# Turn on quilting MODE_QUILT = False -# Convolution radius list MODE_CONV_RADIUS = 50 -# Convolution threshold list -# L: IMS is a binary field where a value of "1" is equivalent to >=0.40 sea ice concentration. -FCST_MODE_CONV_THRESH = ==1.00 -OBS_MODE_CONV_THRESH = >=0.40 - -# Location of mode MET config file -MODE_CONFIG_FILE = {PARM_BASE}/met_config/MODEConfig_wrapped - -# Merge flag: options are NONE, THRESH, ENGINE, or BOTH MODE_MERGE_FLAG = NONE - -# Merge threshold list MODE_MERGE_THRESH = >=1.25 MODE_GRID_RES = 12.7 -MODE_OBS_CENSOR_THRESH = >1.00 && <=1.28, >1.28 -MODE_OBS_CENSOR_VAL = 1.00 , -9999 - MODE_MASK_MISSING_FLAG = BOTH MODE_MATCH_FLAG = NO_MERGE @@ -118,34 +138,4 @@ MODE_MASK_POLY_FLAG = BOTH MODE_TOTAL_INTEREST_THRESH = 0.8 -# prefix to add to MODE output filenames MODE_OUTPUT_PREFIX = {MODEL}_{CURRENT_FCST_NAME}_vs_{OBTYPE}_{CURRENT_OBS_NAME} - -[dir] -# input and output data directories for each application in PROCESS_LIST -OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/NCEP_data -FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/IMS_data - -OBS_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/NCEP_data -FCST_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/IMS_data - -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/GridStat -MODE_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/MODE - -[filename_templates] -# format of filenames - -# IMS -FCST_GRID_STAT_INPUT_TEMPLATE = imssnow96.{valid?fmt=%Y%m%d}.grb.grib2 -FCST_MODE_INPUT_TEMPLATE = imssnow96.{valid?fmt=%Y%m%d}.grb.grib2 - -# NCEP -OBS_GRID_STAT_INPUT_TEMPLATE = seaice.t00z.north12psg.grib2.{valid?fmt=%Y%m%d} -OBS_MODE_INPUT_TEMPLATE = seaice.t00z.north12psg.grib2.{valid?fmt=%Y%m%d} - -GRID_STAT_VERIFICATION_MASK_TEMPLATE = {INPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/seaice_nland127.nc - -MODE_VERIFICATION_MASK_TEMPLATE = {INPUT_BASE}/model_applications/marine_and_cryosphere/sea_ice/seaice_nland127.nc - -GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/grid_stat -MODE_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/mode diff --git a/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh.conf b/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh.conf index 277c3b6cfe..5679242bd3 100644 --- a/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh.conf +++ b/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh.conf @@ -1,196 +1,90 @@ -# GridStat METplus Configuration - -# section heading for [config] variables - all items below this line and -# before the next section heading correspond to the [config] section [config] -# List of applications to run - only GridStat for this case +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = GridStat -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Format of INIT_BEG and INT_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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d - -# Start time for METplus run - must match INIT_TIME_FMT VALID_BEG=20210811 - -# End time for METplus run - must match INIT_TIME_FMT VALID_END=20210811 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds VALID_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 = 24 +LEAD_SEQ = 24 - -# 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 -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -LOG_GRID_STAT_VERBOSITY = 2 -# Location of MET config file to pass to GridStat -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary -# See MET User's Guide for more information -GRID_STAT_REGRID_TO_GRID = NONE +FCST_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY -# Name to identify model (forecast) data in output -MODEL = RTOFS +OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY -# Name to identify observation data in output -OBTYPE = AVISO +GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = PYTHON_NUMPY +GRID_STAT_CLIMO_MEAN_FIELD = {name="{CONFIG_DIR}/read_rtofs_aviso_hycom.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/{init?fmt=%Y%m%d}_rtofs_glo_2ds_f024_diag.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/nrt_global_allsat_phy_l4_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh {valid?fmt=%Y%m%d} climo"; level="(*,*)";} -# set the desc value in the GridStat MET config file -GRID_STAT_DESC = NA +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE} +GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d} -# List of variables to compare in GridStat - FCST_VAR1 variables correspond -# to OBS_VAR1 variables -# Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations -# are needed for different tools -# Name of forecast variable 1 -FCST_VAR1_NAME = {CONFIG_DIR}/read_rtofs_aviso_hycom.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/{init?fmt=%Y%m%d}_rtofs_glo_2ds_f024_diag.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/nrt_global_allsat_phy_l4_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh {valid?fmt=%Y%m%d} fcst +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### -# List of levels to evaluate for forecast variable 1 -# A03 = 3 hour accumulation in GRIB file -FCST_VAR1_LEVELS = +GRID_STAT_ONCE_PER_FIELD = False -# List of thresholds to evaluate for each name/level combination for -# forecast variable 1 -FCST_VAR1_THRESH = +CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh -#FCST_GRID_STAT_FILE_TYPE = +FCST_VAR1_NAME = {CONFIG_DIR}/read_rtofs_aviso_hycom.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/{init?fmt=%Y%m%d}_rtofs_glo_2ds_f024_diag.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/nrt_global_allsat_phy_l4_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh {valid?fmt=%Y%m%d} fcst -# Name of observation variable 1 OBS_VAR1_NAME = {CONFIG_DIR}/read_rtofs_aviso_hycom.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/{init?fmt=%Y%m%d}_rtofs_glo_2ds_f024_diag.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/nrt_global_allsat_phy_l4_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh {valid?fmt=%Y%m%d} obs -# List of levels to evaluate for observation variable 1 -# (*,*) is NetCDF notation - must include quotes around these values! -# must be the same length as FCST_VAR1_LEVELS -OBS_VAR1_LEVELS = - -# List of thresholds to evaluate for each name/level combination for -# observation variable 1 -OBS_VAR1_THRESH = - -#GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [>=0.15]; -#BOTH_VAR1_THRESH = >=0.15 +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### -#OBS_GRID_STAT_FILE_TYPE = - - -# Name of climatology variable 1 -GRID_STAT_CLIMO_MEAN_FIELD = {name="{CONFIG_DIR}/read_rtofs_aviso_hycom.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/{init?fmt=%Y%m%d}_rtofs_glo_2ds_f024_diag.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/nrt_global_allsat_phy_l4_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh {valid?fmt=%Y%m%d} climo"; level="(*,*)";} +GRID_STAT_REGRID_TO_GRID = NONE +MODEL = RTOFS -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the filename -# Not used in this example. -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 -OBS_GRID_STAT_FILE_WINDOW_END = 0 +OBTYPE = AVISO -# MET GridStat neighborhood values -# See the MET User's Guide GridStat section for more information +GRID_STAT_DESC = NA -# width value passed to nbrhd dictionary in the MET config file GRID_STAT_NEIGHBORHOOD_WIDTH = 1 - -# shape value passed to nbrhd dictionary in the MET config file GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE -# cov thresh list passed to nbrhd dictionary in the MET config file GRID_STAT_NEIGHBORHOOD_COV_THRESH = >=0.5 -# Set to true to run GridStat separately for each field specified -# Set to false to create one run of GridStat per run time that -# includes all fields specified. -GRID_STAT_ONCE_PER_FIELD = False - -# Set to true if forecast data is probabilistic -FCST_IS_PROB = false - -# Only used if FCST_IS_PROB is true - sets probabilistic threshold -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -# Set to true if observation data is probabilistic -# Only used if configuring forecast data as the 'OBS' input -OBS_IS_PROB = false - -# Only used if OBS_IS_PROB is true - sets probabilistic threshold -OBS_GRID_STAT_PROB_THRESH = ==0.1 - GRID_STAT_OUTPUT_PREFIX = SSH GRID_STAT_OUTPUT_FLAG_CNT = BOTH GRID_STAT_OUTPUT_FLAG_SAL1L2 = BOTH - - -# End of [config] section and start of [dir] section -[dir] -#use case configuration file directory -CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh -# directory containing forecast input to GridStat -FCST_GRID_STAT_INPUT_DIR = - -# directory containing observation input to GridStat -OBS_GRID_STAT_INPUT_DIR = - -# directory containing climatology mean input to GridStat -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_DIR = - -# directory containing climatology mean input to GridStat -# Not used in this example -GRID_STAT_CLIMO_STDEV_INPUT_DIR = - -# directory to write output from GridStat -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE} - -# End of [dir] section and start of [filename_templates] section -[filename_templates] - -# Template to look for forecast input to GridStat relative to FCST_GRID_STAT_INPUT_DIR -FCST_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY - -# Template to look for observation input to GridStat relative to OBS_GRID_STAT_INPUT_DIR -OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY - -# Optional subdirectories relative to GRID_STAT_OUTPUT_DIR to write output from GridStat -GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d} - -# Template to look for climatology input to GridStat relative to GRID_STAT_CLIMO_MEAN_INPUT_DIR -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = PYTHON_NUMPY - -# Template to look for climatology input to GridStat relative to GRID_STAT_CLIMO_STDEV_INPUT_DIR -# Not used in this exampls -GRID_STAT_CLIMO_STDEV_INPUT_TEMPLATE = - -# Used to specify one or more verification mask files for GridStat -# Not used for this example -GRID_STAT_VERIFICATION_MASK_TEMPLATE = diff --git a/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst.conf b/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst.conf index 457f1c9b51..2fbb89a9d0 100644 --- a/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst.conf +++ b/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst.conf @@ -1,9 +1,28 @@ [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = GridStat + ### # Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control ### LOOP_BY = VALID @@ -17,73 +36,53 @@ LEAD_SEQ = 0 LOOP_ORDER = times ### -# Field Info +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info ### -MODEL = RTOFS -OBTYPE = GHRSST - -CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst +FCST_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY -FCST_IS_PROB = false +OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY -FCST_VAR1_NAME = {CONFIG_DIR}/read_rtofs_ghrsst_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/{valid?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/GHRSST-OSPO-L4-GLOB_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst {valid?fmt=%Y%m%d} fcst -FCST_VAR1_LEVELS = -FCST_VAR1_THRESH = +GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = PYTHON_NUMPY -OBS_IS_PROB = false +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE} +GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d} -OBS_VAR1_NAME = {CONFIG_DIR}/read_rtofs_ghrsst_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/{valid?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/GHRSST-OSPO-L4-GLOB_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst {valid?fmt=%Y%m%d} obs -OBS_VAR1_LEVELS = -OBS_VAR1_THRESH = ### -# File I/O +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info ### -FCST_GRID_STAT_INPUT_DIR = -FCST_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY +GRID_STAT_ONCE_PER_FIELD = False -OBS_GRID_STAT_INPUT_DIR = -OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY +MODEL = RTOFS +OBTYPE = GHRSST -GRID_STAT_CLIMO_MEAN_INPUT_DIR = -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = PYTHON_NUMPY +CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst -GRID_STAT_CLIMO_STDEV_INPUT_DIR = -GRID_STAT_CLIMO_STDEV_INPUT_TEMPLATE = +FCST_VAR1_NAME = {CONFIG_DIR}/read_rtofs_ghrsst_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/{valid?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/GHRSST-OSPO-L4-GLOB_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst {valid?fmt=%Y%m%d} fcst + +OBS_VAR1_NAME = {CONFIG_DIR}/read_rtofs_ghrsst_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/{valid?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/GHRSST-OSPO-L4-GLOB_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst {valid?fmt=%Y%m%d} obs + +GRID_STAT_CLIMO_MEAN_FIELD = {name="{CONFIG_DIR}/read_rtofs_ghrsst_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/{valid?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/GHRSST-OSPO-L4-GLOB_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst {valid?fmt=%Y%m%d} climo"; level="(*,*)";} -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE} -GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d} ### -# GridStat +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat ### -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - GRID_STAT_REGRID_TO_GRID = NONE GRID_STAT_DESC = NA -GRID_STAT_CLIMO_MEAN_FIELD = {name="{CONFIG_DIR}/read_rtofs_ghrsst_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/{valid?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/GHRSST-OSPO-L4-GLOB_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst {valid?fmt=%Y%m%d} climo"; level="(*,*)";} - -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 -OBS_GRID_STAT_FILE_WINDOW_END = 0 - GRID_STAT_NEIGHBORHOOD_WIDTH = 1 GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE GRID_STAT_NEIGHBORHOOD_COV_THRESH = >=0.5 -GRID_STAT_ONCE_PER_FIELD = False - -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -OBS_GRID_STAT_PROB_THRESH = ==0.1 - GRID_STAT_OUTPUT_PREFIX = SST GRID_STAT_OUTPUT_FLAG_CNT = BOTH diff --git a/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover.conf b/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover.conf index 2b3f8c2492..1f80253a32 100644 --- a/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover.conf +++ b/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover.conf @@ -1,263 +1,89 @@ -# GridStat METplus Configuration - -# section heading for [config] variables - all items below this line and -# before the next section heading correspond to the [config] section [config] -# List of applications to run - only GridStat for this case +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = GridStat -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Format of INIT_BEG and INT_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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d - -# Start time for METplus run - must match INIT_TIME_FMT VALID_BEG=20210305 - -# End time for METplus run - must match INIT_TIME_FMT VALID_END=20210305 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds VALID_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 = 0 GRID_STAT_CUSTOM_LOOP_LIST = north, south -# 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 -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 -# Location of MET config file to pass to GridStat -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary -# See MET User's Guide for more information -GRID_STAT_REGRID_TO_GRID = NONE +FCST_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY -#GRID_STAT_INTERP_FIELD = -#GRID_STAT_INTERP_VLD_THRESH = -#GRID_STAT_INTERP_SHAPE = -#GRID_STAT_INTERP_TYPE_METHOD = -#GRID_STAT_INTERP_TYPE_WIDTH = +OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY + +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE} +GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d} -#GRID_STAT_NC_PAIRS_VAR_NAME = -#GRID_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_STDEV_TIME_INTERP_METHOD = +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### -GRID_STAT_GRID_WEIGHT_FLAG = AREA +GRID_STAT_ONCE_PER_FIELD = False -# Name to identify model (forecast) data in output MODEL = RTOFS -# Name to identify observation data in output OBTYPE = UKMO -# set the desc value in the GridStat MET config file -GRID_STAT_DESC = NA - -# List of variables to compare in GridStat - FCST_VAR1 variables correspond -# to OBS_VAR1 variables -# Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations -# are needed for different tools +CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover -# Name of forecast variable 1 FCST_VAR1_NAME = {CONFIG_DIR}/read_ice_data.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover/{valid?fmt=%Y%m%d}_rtofs_glo_2ds_n024_ice.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover/{valid?fmt=%Y%m%d}12_UKMO_L4.nc {custom} fcst -# List of levels to evaluate for forecast variable 1 -# A03 = 3 hour accumulation in GRIB file -FCST_VAR1_LEVELS = - -# List of thresholds to evaluate for each name/level combination for -# forecast variable 1 -FCST_VAR1_THRESH = - -#FCST_GRID_STAT_FILE_TYPE = - -# Name of observation variable 1 OBS_VAR1_NAME = {CONFIG_DIR}/read_ice_data.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover/{valid?fmt=%Y%m%d}_rtofs_glo_2ds_n024_ice.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover/{valid?fmt=%Y%m%d}12_UKMO_L4.nc {custom} obs -# List of levels to evaluate for observation variable 1 -# (*,*) is NetCDF notation - must include quotes around these values! -# must be the same length as FCST_VAR1_LEVELS -OBS_VAR1_LEVELS = - -# List of thresholds to evaluate for each name/level combination for -# observation variable 1 -OBS_VAR1_THRESH = +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### -#GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [>=0.15]; -#BOTH_VAR1_THRESH = >=0.15 - -#OBS_GRID_STAT_FILE_TYPE = +GRID_STAT_REGRID_TO_GRID = NONE -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the filename -# Not used in this example. -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 -OBS_GRID_STAT_FILE_WINDOW_END = 0 +GRID_STAT_GRID_WEIGHT_FLAG = AREA -# MET GridStat neighborhood values -# See the MET User's Guide GridStat section for more information +GRID_STAT_DESC = NA -# width value passed to nbrhd dictionary in the MET config file GRID_STAT_NEIGHBORHOOD_WIDTH = 1 - -# shape value passed to nbrhd dictionary in the MET config file GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE - -# cov thresh list passed to nbrhd dictionary in the MET config file GRID_STAT_NEIGHBORHOOD_COV_THRESH = >=0.5 -# Set to true to run GridStat separately for each field specified -# Set to false to create one run of GridStat per run time that -# includes all fields specified. -GRID_STAT_ONCE_PER_FIELD = False - -# Set to true if forecast data is probabilistic -FCST_IS_PROB = false - -# Only used if FCST_IS_PROB is true - sets probabilistic threshold -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -# Set to true if observation data is probabilistic -# Only used if configuring forecast data as the 'OBS' input -OBS_IS_PROB = false - -# Only used if OBS_IS_PROB is true - sets probabilistic threshold -OBS_GRID_STAT_PROB_THRESH = ==0.1 - GRID_STAT_OUTPUT_PREFIX = {custom} -#GRID_STAT_CLIMO_MEAN_FILE_NAME = -#GRID_STAT_CLIMO_MEAN_FIELD = -#GRID_STAT_CLIMO_MEAN_REGRID_METHOD = -#GRID_STAT_CLIMO_MEAN_REGRID_WIDTH = -#GRID_STAT_CLIMO_MEAN_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_MEAN_REGRID_SHAPE = -#GRID_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_MEAN_MATCH_MONTH = -#GRID_STAT_CLIMO_MEAN_DAY_INTERVAL = -#GRID_STAT_CLIMO_MEAN_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_STDEV_FILE_NAME = -#GRID_STAT_CLIMO_STDEV_FIELD = -#GRID_STAT_CLIMO_STDEV_REGRID_METHOD = -#GRID_STAT_CLIMO_STDEV_REGRID_WIDTH = -#GRID_STAT_CLIMO_STDEV_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_STDEV_REGRID_SHAPE = -#GRID_STAT_CLIMO_STDEV_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_STDEV_MATCH_MONTH = -#GRID_STAT_CLIMO_STDEV_DAY_INTERVAL = -#GRID_STAT_CLIMO_STDEV_HOUR_INTERVAL = - - -#GRID_STAT_CLIMO_CDF_BINS = 1 -#GRID_STAT_CLIMO_CDF_CENTER_BINS = False -#GRID_STAT_CLIMO_CDF_WRITE_BINS = True - -#GRID_STAT_OUTPUT_FLAG_FHO = NONE -#GRID_STAT_OUTPUT_FLAG_CTC = NONE -#GRID_STAT_OUTPUT_FLAG_CTS = NONE -#GRID_STAT_OUTPUT_FLAG_MCTC = NONE -#GRID_STAT_OUTPUT_FLAG_MCTS = NONE GRID_STAT_OUTPUT_FLAG_CNT = BOTH -#GRID_STAT_OUTPUT_FLAG_SL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_SAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VCNT = NONE -#GRID_STAT_OUTPUT_FLAG_PCT = NONE -#GRID_STAT_OUTPUT_FLAG_PSTD = NONE -#GRID_STAT_OUTPUT_FLAG_PJC = NONE -#GRID_STAT_OUTPUT_FLAG_PRC = NONE -#GRID_STAT_OUTPUT_FLAG_ECLV = BOTH -#GRID_STAT_OUTPUT_FLAG_NBRCTC = NONE -#GRID_STAT_OUTPUT_FLAG_NBRCTS = NONE -#GRID_STAT_OUTPUT_FLAG_NBRCNT = NONE -#GRID_STAT_OUTPUT_FLAG_GRAD = BOTH -#GRID_STAT_OUTPUT_FLAG_DMAP = NONE - -#GRID_STAT_NC_PAIRS_FLAG_LATLON = FALSE -#GRID_STAT_NC_PAIRS_FLAG_RAW = FALSE -#GRID_STAT_NC_PAIRS_FLAG_DIFF = FALSE -#GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE -#GRID_STAT_NC_PAIRS_FLAG_CLIMO_CDP = FALSE -#GRID_STAT_NC_PAIRS_FLAG_WEIGHT = FALSE -#GRID_STAT_NC_PAIRS_FLAG_NBRHD = FALSE -#GRID_STAT_NC_PAIRS_FLAG_FOURIER = FALSE -#GRID_STAT_NC_PAIRS_FLAG_GRADIENT = FALSE -#GRID_STAT_NC_PAIRS_FLAG_DISTANCE_MAP = FALSE -#GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE - - -# End of [config] section and start of [dir] section -[dir] -#use case configuration file directory -CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsOSTIA_iceCover -# directory containing forecast input to GridStat -FCST_GRID_STAT_INPUT_DIR = - -# directory containing observation input to GridStat -OBS_GRID_STAT_INPUT_DIR = - -# directory containing climatology mean input to GridStat -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_DIR = - -# directory containing climatology mean input to GridStat -# Not used in this example -GRID_STAT_CLIMO_STDEV_INPUT_DIR = - -# directory to write output from GridStat -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE} - -# End of [dir] section and start of [filename_templates] section -[filename_templates] - -# Template to look for forecast input to GridStat relative to FCST_GRID_STAT_INPUT_DIR -FCST_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY - -# Template to look for observation input to GridStat relative to OBS_GRID_STAT_INPUT_DIR -OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY - -# Optional subdirectories relative to GRID_STAT_OUTPUT_DIR to write output from GridStat -GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d} - -# Template to look for climatology input to GridStat relative to GRID_STAT_CLIMO_MEAN_INPUT_DIR -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = - -# Template to look for climatology input to GridStat relative to GRID_STAT_CLIMO_STDEV_INPUT_DIR -# Not used in this example -GRID_STAT_CLIMO_STDEV_INPUT_TEMPLATE = - -# Used to specify one or more verification mask files for GridStat -# Not used for this example -GRID_STAT_VERIFICATION_MASK_TEMPLATE = diff --git a/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss.conf b/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss.conf index e47cae7aaf..11804aeb48 100644 --- a/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss.conf +++ b/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss.conf @@ -1,267 +1,88 @@ -# GridStat METplus Configuration - -# section heading for [config] variables - all items below this line and -# before the next section heading correspond to the [config] section [config] -# List of applications to run - only GridStat for this case +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = GridStat -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Format of INIT_BEG and INT_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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d - -# Start time for METplus run - must match INIT_TIME_FMT VALID_BEG=20210502 - -# End time for METplus run - must match INIT_TIME_FMT VALID_END=20210502 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds VALID_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 = 24 - -# 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 -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -LOG_GRID_STAT_VERBOSITY = 2 -# Location of MET config file to pass to GridStat -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - -# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary -# See MET User's Guide for more information -GRID_STAT_REGRID_TO_GRID = NONE +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -#GRID_STAT_INTERP_FIELD = -#GRID_STAT_INTERP_VLD_THRESH = -#GRID_STAT_INTERP_SHAPE = -#GRID_STAT_INTERP_TYPE_METHOD = -#GRID_STAT_INTERP_TYPE_WIDTH = +FCST_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY -#GRID_STAT_NC_PAIRS_VAR_NAME = +OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY -#GRID_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_STDEV_TIME_INTERP_METHOD = +GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = PYTHON_NUMPY -#GRID_STAT_GRID_WEIGHT_FLAG = AREA +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE} +GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d} -# Name to identify model (forecast) data in output -MODEL = RTOFS -# Name to identify observation data in output -OBTYPE = SMAP +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### -# set the desc value in the GridStat MET config file -GRID_STAT_DESC = NA +GRID_STAT_ONCE_PER_FIELD = False -# List of variables to compare in GridStat - FCST_VAR1 variables correspond -# to OBS_VAR1 variables -# Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations -# are needed for different tools +CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss -# Name of forecast variable 1 FCST_VAR1_NAME = {CONFIG_DIR}/read_rtofs_smap_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss/{init?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss/SMAP-L3-GLOB_{valid?fmt=%Y%m%d?shift=86400}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss {valid?fmt=%Y%m%d} fcst -# List of levels to evaluate for forecast variable 1 -# A03 = 3 hour accumulation in GRIB file -FCST_VAR1_LEVELS = - -# List of thresholds to evaluate for each name/level combination for -# forecast variable 1 -FCST_VAR1_THRESH = - -#FCST_GRID_STAT_FILE_TYPE = - -# Name of observation variable 1 OBS_VAR1_NAME = {CONFIG_DIR}/read_rtofs_smap_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss/{init?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss/SMAP-L3-GLOB_{valid?fmt=%Y%m%d?shift=86400}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss {valid?fmt=%Y%m%d} obs - -# List of levels to evaluate for observation variable 1 -# (*,*) is NetCDF notation - must include quotes around these values! -# must be the same length as FCST_VAR1_LEVELS -OBS_VAR1_LEVELS = - -# List of thresholds to evaluate for each name/level combination for -# observation variable 1 -OBS_VAR1_THRESH = - -#GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [>=0.15]; -#BOTH_VAR1_THRESH = >=0.15 - -#OBS_GRID_STAT_FILE_TYPE = +GRID_STAT_CLIMO_MEAN_FIELD = {name="{CONFIG_DIR}/read_rtofs_smap_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss/{init?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss/SMAP-L3-GLOB_{valid?fmt=%Y%m%d?shift=86400}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss {valid?fmt=%Y%m%d} climo"; level="(*,*)";} -# Name of climatology variable 1 -GRID_STAT_CLIMO_MEAN_FIELD = {name="{CONFIG_DIR}/read_rtofs_smap_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss/{init?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss/SMAP-L3-GLOB_{valid?fmt=%Y%m%d?shift=86400}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss {valid?fmt=%Y%m%d} climo"; level="(*,*)";} +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### +GRID_STAT_REGRID_TO_GRID = NONE -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the filename -# Not used in this example. -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 -OBS_GRID_STAT_FILE_WINDOW_END = 0 +MODEL = RTOFS +OBTYPE = SMAP -# MET GridStat neighborhood values -# See the MET User's Guide GridStat section for more information +GRID_STAT_DESC = NA -# width value passed to nbrhd dictionary in the MET config file GRID_STAT_NEIGHBORHOOD_WIDTH = 1 - -# shape value passed to nbrhd dictionary in the MET config file GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE - -# cov thresh list passed to nbrhd dictionary in the MET config file GRID_STAT_NEIGHBORHOOD_COV_THRESH = >=0.5 -# Set to true to run GridStat separately for each field specified -# Set to false to create one run of GridStat per run time that -# includes all fields specified. -GRID_STAT_ONCE_PER_FIELD = False - -# Set to true if forecast data is probabilistic -FCST_IS_PROB = false - -# Only used if FCST_IS_PROB is true - sets probabilistic threshold -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -# Set to true if observation data is probabilistic -# Only used if configuring forecast data as the 'OBS' input -OBS_IS_PROB = false - -# Only used if OBS_IS_PROB is true - sets probabilistic threshold -OBS_GRID_STAT_PROB_THRESH = ==0.1 - GRID_STAT_OUTPUT_PREFIX = SSS -#GRID_STAT_CLIMO_MEAN_FILE_NAME = -#GRID_STAT_CLIMO_MEAN_FIELD = -#GRID_STAT_CLIMO_MEAN_REGRID_METHOD = -#GRID_STAT_CLIMO_MEAN_REGRID_WIDTH = -#GRID_STAT_CLIMO_MEAN_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_MEAN_REGRID_SHAPE = -#GRID_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_MEAN_MATCH_MONTH = -#GRID_STAT_CLIMO_MEAN_DAY_INTERVAL = -#GRID_STAT_CLIMO_MEAN_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_STDEV_FILE_NAME = -#GRID_STAT_CLIMO_STDEV_FIELD = -#GRID_STAT_CLIMO_STDEV_REGRID_METHOD = -#GRID_STAT_CLIMO_STDEV_REGRID_WIDTH = -#GRID_STAT_CLIMO_STDEV_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_STDEV_REGRID_SHAPE = -#GRID_STAT_CLIMO_STDEV_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_STDEV_MATCH_MONTH = -#GRID_STAT_CLIMO_STDEV_DAY_INTERVAL = -#GRID_STAT_CLIMO_STDEV_HOUR_INTERVAL = - - -#GRID_STAT_CLIMO_CDF_BINS = 1 -#GRID_STAT_CLIMO_CDF_CENTER_BINS = False -#GRID_STAT_CLIMO_CDF_WRITE_BINS = True - -#GRID_STAT_OUTPUT_FLAG_FHO = NONE -#GRID_STAT_OUTPUT_FLAG_CTC = NONE -#GRID_STAT_OUTPUT_FLAG_CTS = NONE -#GRID_STAT_OUTPUT_FLAG_MCTC = NONE -#GRID_STAT_OUTPUT_FLAG_MCTS = NONE GRID_STAT_OUTPUT_FLAG_CNT = BOTH -#GRID_STAT_OUTPUT_FLAG_SL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_SAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VCNT = NONE -#GRID_STAT_OUTPUT_FLAG_PCT = NONE -#GRID_STAT_OUTPUT_FLAG_PSTD = NONE -#GRID_STAT_OUTPUT_FLAG_PJC = NONE -#GRID_STAT_OUTPUT_FLAG_PRC = NONE -#GRID_STAT_OUTPUT_FLAG_ECLV = BOTH -#GRID_STAT_OUTPUT_FLAG_NBRCTC = NONE -#GRID_STAT_OUTPUT_FLAG_NBRCTS = NONE -#GRID_STAT_OUTPUT_FLAG_NBRCNT = NONE -#GRID_STAT_OUTPUT_FLAG_GRAD = BOTH -#GRID_STAT_OUTPUT_FLAG_DMAP = NONE - -#GRID_STAT_NC_PAIRS_FLAG_LATLON = FALSE -#GRID_STAT_NC_PAIRS_FLAG_RAW = FALSE -#GRID_STAT_NC_PAIRS_FLAG_DIFF = FALSE -#GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE -#GRID_STAT_NC_PAIRS_FLAG_CLIMO_CDP = FALSE -#GRID_STAT_NC_PAIRS_FLAG_WEIGHT = FALSE -#GRID_STAT_NC_PAIRS_FLAG_NBRHD = FALSE -#GRID_STAT_NC_PAIRS_FLAG_FOURIER = FALSE -#GRID_STAT_NC_PAIRS_FLAG_GRADIENT = FALSE -#GRID_STAT_NC_PAIRS_FLAG_DISTANCE_MAP = FALSE -#GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE - - -# End of [config] section and start of [dir] section -[dir] -#use case configuration file directory -CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss -# directory containing forecast input to GridStat -FCST_GRID_STAT_INPUT_DIR = - -# directory containing observation input to GridStat -OBS_GRID_STAT_INPUT_DIR = - -# directory containing climatology mean input to GridStat -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_DIR = - -# directory containing climatology mean input to GridStat -# Not used in this example -GRID_STAT_CLIMO_STDEV_INPUT_DIR = - -# directory to write output from GridStat -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE} - -# End of [dir] section and start of [filename_templates] section -[filename_templates] - -# Template to look for forecast input to GridStat relative to FCST_GRID_STAT_INPUT_DIR -FCST_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY - -# Template to look for observation input to GridStat relative to OBS_GRID_STAT_INPUT_DIR -OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY - -# Optional subdirectories relative to GRID_STAT_OUTPUT_DIR to write output from GridStat -GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d} - -# Template to look for climatology input to GridStat relative to GRID_STAT_CLIMO_MEAN_INPUT_DIR -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = PYTHON_NUMPY - -# Template to look for climatology input to GridStat relative to GRID_STAT_CLIMO_STDEV_INPUT_DIR -# Not used in this exampls -GRID_STAT_CLIMO_STDEV_INPUT_TEMPLATE = - -# Used to specify one or more verification mask files for GridStat -# Not used for this example -GRID_STAT_VERIFICATION_MASK_TEMPLATE = diff --git a/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss.conf b/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss.conf index 72e97f663e..8d26d9caed 100644 --- a/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss.conf +++ b/parm/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss.conf @@ -1,267 +1,85 @@ -# GridStat METplus Configuration - -# section heading for [config] variables - all items below this line and -# before the next section heading correspond to the [config] section [config] -# List of applications to run - only GridStat for this case +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = GridStat -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Format of INIT_BEG and INT_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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d - -# Start time for METplus run - must match INIT_TIME_FMT VALID_BEG=20210503 - -# End time for METplus run - must match INIT_TIME_FMT VALID_END=20210503 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds VALID_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 = 0 - -# 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 -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -LOG_GRID_STAT_VERBOSITY = 2 - -# Location of MET config file to pass to GridStat -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - -# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary -# See MET User's Guide for more information -GRID_STAT_REGRID_TO_GRID = NONE +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -#GRID_STAT_INTERP_FIELD = -#GRID_STAT_INTERP_VLD_THRESH = -#GRID_STAT_INTERP_SHAPE = -#GRID_STAT_INTERP_TYPE_METHOD = -#GRID_STAT_INTERP_TYPE_WIDTH = +FCST_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY -#GRID_STAT_NC_PAIRS_VAR_NAME = +OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY -#GRID_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_STDEV_TIME_INTERP_METHOD = +GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = PYTHON_NUMPY -#GRID_STAT_GRID_WEIGHT_FLAG = AREA +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE} +GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d} -# Name to identify model (forecast) data in output -MODEL = RTOFS -# Name to identify observation data in output -OBTYPE = SMOS +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### -# set the desc value in the GridStat MET config file -GRID_STAT_DESC = NA +GRID_STAT_ONCE_PER_FIELD = False -# List of variables to compare in GridStat - FCST_VAR1 variables correspond -# to OBS_VAR1 variables -# Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations -# are needed for different tools +CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss -# Name of forecast variable 1 FCST_VAR1_NAME = {CONFIG_DIR}/read_rtofs_smos_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss/{valid?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss/SMOS-L3-GLOB_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss {valid?fmt=%Y%m%d} fcst -# List of levels to evaluate for forecast variable 1 -# A03 = 3 hour accumulation in GRIB file -FCST_VAR1_LEVELS = - -# List of thresholds to evaluate for each name/level combination for -# forecast variable 1 -FCST_VAR1_THRESH = - -#FCST_GRID_STAT_FILE_TYPE = - -# Name of observation variable 1 OBS_VAR1_NAME = {CONFIG_DIR}/read_rtofs_smos_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss/{valid?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss/SMOS-L3-GLOB_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss {valid?fmt=%Y%m%d} obs - -# List of levels to evaluate for observation variable 1 -# (*,*) is NetCDF notation - must include quotes around these values! -# must be the same length as FCST_VAR1_LEVELS -OBS_VAR1_LEVELS = - -# List of thresholds to evaluate for each name/level combination for -# observation variable 1 -OBS_VAR1_THRESH = - -#GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [>=0.15]; -#BOTH_VAR1_THRESH = >=0.15 - -#OBS_GRID_STAT_FILE_TYPE = - - -# Name of climatology variable 1 GRID_STAT_CLIMO_MEAN_FIELD = {name="{CONFIG_DIR}/read_rtofs_smos_woa.py {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss/{valid?fmt=%Y%m%d}_rtofs_glo_2ds_f024_prog.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss/SMOS-L3-GLOB_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss/OSTIA-UKMO-L4-GLOB-v2.0_{valid?fmt=%Y%m%d}.nc {INPUT_BASE}/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss {valid?fmt=%Y%m%d} climo"; level="(*,*)";} -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the filename -# Not used in this example. -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 -OBS_GRID_STAT_FILE_WINDOW_END = 0 +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### -# MET GridStat neighborhood values -# See the MET User's Guide GridStat section for more information +GRID_STAT_REGRID_TO_GRID = NONE -# width value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_WIDTH = 1 +MODEL = RTOFS +OBTYPE = SMOS -# shape value passed to nbrhd dictionary in the MET config file +GRID_STAT_NEIGHBORHOOD_WIDTH = 1 GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE - -# cov thresh list passed to nbrhd dictionary in the MET config file GRID_STAT_NEIGHBORHOOD_COV_THRESH = >=0.5 -# Set to true to run GridStat separately for each field specified -# Set to false to create one run of GridStat per run time that -# includes all fields specified. -GRID_STAT_ONCE_PER_FIELD = False - -# Set to true if forecast data is probabilistic -FCST_IS_PROB = false - -# Only used if FCST_IS_PROB is true - sets probabilistic threshold -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -# Set to true if observation data is probabilistic -# Only used if configuring forecast data as the 'OBS' input -OBS_IS_PROB = false - -# Only used if OBS_IS_PROB is true - sets probabilistic threshold -OBS_GRID_STAT_PROB_THRESH = ==0.1 - GRID_STAT_OUTPUT_PREFIX = SSS -#GRID_STAT_CLIMO_MEAN_FILE_NAME = -#GRID_STAT_CLIMO_MEAN_FIELD = -#GRID_STAT_CLIMO_MEAN_REGRID_METHOD = -#GRID_STAT_CLIMO_MEAN_REGRID_WIDTH = -#GRID_STAT_CLIMO_MEAN_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_MEAN_REGRID_SHAPE = -#GRID_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_MEAN_MATCH_MONTH = -#GRID_STAT_CLIMO_MEAN_DAY_INTERVAL = -#GRID_STAT_CLIMO_MEAN_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_STDEV_FILE_NAME = -#GRID_STAT_CLIMO_STDEV_FIELD = -#GRID_STAT_CLIMO_STDEV_REGRID_METHOD = -#GRID_STAT_CLIMO_STDEV_REGRID_WIDTH = -#GRID_STAT_CLIMO_STDEV_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_STDEV_REGRID_SHAPE = -#GRID_STAT_CLIMO_STDEV_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_STDEV_MATCH_MONTH = -#GRID_STAT_CLIMO_STDEV_DAY_INTERVAL = -#GRID_STAT_CLIMO_STDEV_HOUR_INTERVAL = - - -#GRID_STAT_CLIMO_CDF_BINS = 1 -#GRID_STAT_CLIMO_CDF_CENTER_BINS = False -#GRID_STAT_CLIMO_CDF_WRITE_BINS = True - -#GRID_STAT_OUTPUT_FLAG_FHO = NONE -#GRID_STAT_OUTPUT_FLAG_CTC = NONE -#GRID_STAT_OUTPUT_FLAG_CTS = NONE -#GRID_STAT_OUTPUT_FLAG_MCTC = NONE -#GRID_STAT_OUTPUT_FLAG_MCTS = NONE GRID_STAT_OUTPUT_FLAG_CNT = BOTH -#GRID_STAT_OUTPUT_FLAG_SL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_SAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VCNT = NONE -#GRID_STAT_OUTPUT_FLAG_PCT = NONE -#GRID_STAT_OUTPUT_FLAG_PSTD = NONE -#GRID_STAT_OUTPUT_FLAG_PJC = NONE -#GRID_STAT_OUTPUT_FLAG_PRC = NONE -#GRID_STAT_OUTPUT_FLAG_ECLV = BOTH -#GRID_STAT_OUTPUT_FLAG_NBRCTC = NONE -#GRID_STAT_OUTPUT_FLAG_NBRCTS = NONE -#GRID_STAT_OUTPUT_FLAG_NBRCNT = NONE -#GRID_STAT_OUTPUT_FLAG_GRAD = BOTH -#GRID_STAT_OUTPUT_FLAG_DMAP = NONE - -#GRID_STAT_NC_PAIRS_FLAG_LATLON = FALSE -#GRID_STAT_NC_PAIRS_FLAG_RAW = FALSE -#GRID_STAT_NC_PAIRS_FLAG_DIFF = FALSE -#GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE -#GRID_STAT_NC_PAIRS_FLAG_CLIMO_CDP = FALSE -#GRID_STAT_NC_PAIRS_FLAG_WEIGHT = FALSE -#GRID_STAT_NC_PAIRS_FLAG_NBRHD = FALSE -#GRID_STAT_NC_PAIRS_FLAG_FOURIER = FALSE -#GRID_STAT_NC_PAIRS_FLAG_GRADIENT = FALSE -#GRID_STAT_NC_PAIRS_FLAG_DISTANCE_MAP = FALSE -#GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE - - -# End of [config] section and start of [dir] section -[dir] -#use case configuration file directory -CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMOS_climWOA_sss -# directory containing forecast input to GridStat -FCST_GRID_STAT_INPUT_DIR = - -# directory containing observation input to GridStat -OBS_GRID_STAT_INPUT_DIR = - -# directory containing climatology mean input to GridStat -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_DIR = - -# directory containing climatology mean input to GridStat -# Not used in this example -GRID_STAT_CLIMO_STDEV_INPUT_DIR = - -# directory to write output from GridStat -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE} - -# End of [dir] section and start of [filename_templates] section -[filename_templates] - -# Template to look for forecast input to GridStat relative to FCST_GRID_STAT_INPUT_DIR -FCST_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY - -# Template to look for observation input to GridStat relative to OBS_GRID_STAT_INPUT_DIR -OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY - -# Optional subdirectories relative to GRID_STAT_OUTPUT_DIR to write output from GridStat -GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d} - -# Template to look for climatology input to GridStat relative to GRID_STAT_CLIMO_MEAN_INPUT_DIR -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = PYTHON_NUMPY - -# Template to look for climatology input to GridStat relative to GRID_STAT_CLIMO_STDEV_INPUT_DIR -# Not used in this exampls -GRID_STAT_CLIMO_STDEV_INPUT_TEMPLATE = - -# Used to specify one or more verification mask files for GridStat -# Not used for this example -GRID_STAT_VERIFICATION_MASK_TEMPLATE = diff --git a/parm/use_cases/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar.conf b/parm/use_cases/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar.conf index 1363dc980d..a7f6c51d26 100644 --- a/parm/use_cases/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar.conf +++ b/parm/use_cases/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar.conf @@ -1,64 +1,64 @@ [config] -## Configuration-related settings such as the process list, begin and end times, etc. -# List of applications to run - only PlotDataPlane for this case +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = PlotDataPlane -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d - -# Start time for METplus run - must match VALID_TIME_FMT VALID_BEG = 20200127 - -# End time for METplus run - must match VALID_TIME_FMT VALID_END = 20200127 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds VALID_INCREMENT = 1M -# List of forecast leads to process for each run time (init or valid) -# If unset, defaults to 0 (don't loop through forecast leads LEAD_SEQ = 0 PLOT_DATA_PLANE_CUSTOM_LOOP_LIST = north, south LOOP_ORDER = times -# Verbosity of MET output - overrides LOG_VERBOSITY for PlotDataPlane only -LOG_PLOT_DATA_PLANE_VERBOSITY = 1 -PLOT_DATA_PLANE_FIELD_NAME = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar/read_tripolar_grid.py {INPUT_BASE}/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar/rtofs_glo_2ds_n048_daily_diag.nc ice_coverage {custom} {INPUT_BASE}/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar/weight_{custom}.nc +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -PLOT_DATA_PLANE_TITLE = Tripolar via Python +PLOT_DATA_PLANE_INPUT_TEMPLATE = PYTHON_NUMPY -PLOT_DATA_PLANE_COLOR_TABLE = +PLOT_DATA_PLANE_OUTPUT_TEMPLATE = {OUTPUT_BASE}/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar/HYCOM_iceCoverage_{custom}.ps -PLOT_DATA_PLANE_RANGE_MIN_MAX = +### +# PlotDataPlane Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#plotdataplane +### -# End of [config] section and start of [dir] section -[dir] +LOG_PLOT_DATA_PLANE_VERBOSITY = 1 -# Input/Output directories can be left empty if the corresponding template contains the full path to the files -PLOT_DATA_PLANE_INPUT_DIR = -PLOT_DATA_PLANE_OUTPUT_DIR = +PLOT_DATA_PLANE_FIELD_NAME = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar/read_tripolar_grid.py {INPUT_BASE}/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar/rtofs_glo_2ds_n048_daily_diag.nc ice_coverage {custom} {INPUT_BASE}/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar/weight_{custom}.nc -# End of [dir] section and start of [filename_templates] section -[filename_templates] +PLOT_DATA_PLANE_TITLE = Tripolar via Python -# Template to look for input to PlotDataPlane relative to PLOT_DATA_PLANE_INPUT_DIR -PLOT_DATA_PLANE_INPUT_TEMPLATE = PYTHON_NUMPY +PLOT_DATA_PLANE_COLOR_TABLE = -# Template to use to write output from PlotDataPlane -PLOT_DATA_PLANE_OUTPUT_TEMPLATE = {OUTPUT_BASE}/model_applications/marine_and_cryosphere/PlotDataPlane_obsHYCOM_coordTripolar/HYCOM_iceCoverage_{custom}.ps +PLOT_DATA_PLANE_RANGE_MIN_MAX = diff --git a/parm/use_cases/model_applications/marine_and_cryosphere/UserScript_fcstRTOFS_obsAOML_calcTransport.conf b/parm/use_cases/model_applications/marine_and_cryosphere/UserScript_fcstRTOFS_obsAOML_calcTransport.conf index cd7bfe6489..fea9f36ee9 100644 --- a/parm/use_cases/model_applications/marine_and_cryosphere/UserScript_fcstRTOFS_obsAOML_calcTransport.conf +++ b/parm/use_cases/model_applications/marine_and_cryosphere/UserScript_fcstRTOFS_obsAOML_calcTransport.conf @@ -1,51 +1,50 @@ [config] -# List of applications to run +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/marine_and_cryosphere/UserScript_fcstRTOFS_obsAOML_calcTransport.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = UserScript -# time looping - options are INIT, VALID, RETRO, and REALTIME +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Format of INIT_BEG and INIT_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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d - -# Start time for METplus run - must match VALID_TIME_FMT VALID_BEG = 20211028 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds VALID_INCREMENT = 24H -# 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 = - -# 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 +LEAD_SEQ = LOOP_ORDER = processes USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE -USER_SCRIPT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/marine_and_cryosphere/calc_transport + +### +# UserScript Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### USER_SCRIPT_INPUT_TEMPLATE = {VALID_BEG} -# The valid date increments backwards +USER_SCRIPT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/marine_and_cryosphere/calc_transport + USER_SCRIPT_COMMAND = {PARM_BASE}/use_cases/model_applications/marine_and_cryosphere/UserScript_fcstRTOFS_obsAOML_calcTransport/read_aomlcable_rtofs_transport.py {USER_SCRIPT_INPUT_TEMPLATE} @@ -70,4 +69,4 @@ CALC_TRANSPORT_STATS_DAY = 3 CALC_TRANSPORT_LOG_FILE = calc_transport.log -OUTPUT_DIR = {OUTPUT_BASE}/model_applications/marine_and_cryosphere/calc_transport +OUTPUT_DIR = {USER_SCRIPT_OUTPUT_DIR} diff --git a/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsGFS_Sfc_MultiField.conf b/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsGFS_Sfc_MultiField.conf index 72e79c7f04..20ad10659b 100644 --- a/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsGFS_Sfc_MultiField.conf +++ b/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsGFS_Sfc_MultiField.conf @@ -1,32 +1,61 @@ -# Grid to Grid Anomoly Example - [config] -# time looping - options are INIT, VALID, RETRO, and REALTIME -LOOP_BY = VALID -# Format of VALID_BEG and VALID_END -VALID_TIME_FMT = %Y%m%d%H +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/medium_range/GridStat_fcstGFS_obsGFS_Sfc_MultiField.html -# Start time for METplus run -VALID_BEG = 2017061300 +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -# End time for METplus run -VALID_END = 2017061306 +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### -# Increment between METplus runs in seconds. Must be >= 60 +PROCESS_LIST = GridStat + + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + +LOOP_BY = VALID +VALID_TIME_FMT = %Y%m%d%H +VALID_BEG = 2017061300 +VALID_END = 2017061306 VALID_INCREMENT = 21600 -# Options are times, processes -# times = run all items in the PROCESS_LIST for a single initialization -# time, then repeat until all times have been evaluated. -# processes = run each item in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST. +LEAD_SEQ = 24 + LOOP_ORDER = times -# List of applications to run -PROCESS_LIST = GridStat -# list of variables to compare +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_grid/gfs/fcst +FCST_GRID_STAT_INPUT_TEMPLATE = pgbf{lead?fmt=%HHH}.gfs.{init?fmt=%Y%m%d%H} + +OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_grid/gfs/fcst +OBS_GRID_STAT_INPUT_TEMPLATE = pgbf000.gfs.{valid?fmt=%Y%m%d%H} + +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/met_out/{MODEL}/sfc +GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d%H%M}/grid_stat + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + BOTH_VAR1_NAME = TMP FCST_VAR1_OPTIONS = GRIB_lvl_typ = 105; BOTH_VAR1_LEVELS = Z2 @@ -99,17 +128,15 @@ BOTH_VAR18_NAME = TOZNE FCST_VAR18_OPTIONS = GRIB_lvl_typ = 200; BOTH_VAR18_LEVELS = L0 -# list of forecast leads to process -LEAD_SEQ = 24 -# description of data to be processed -# used in output file path +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### + MODEL = GFS OBTYPE = ANLYS -# location of grid_stat MET config file -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - GRID_STAT_OUTPUT_PREFIX = {MODEL}_{CURRENT_FCST_NAME}_vs_{OBTYPE}_{CURRENT_OBS_NAME}_{CURRENT_FCST_LEVEL} GRID_STAT_REGRID_TO_GRID = G002 @@ -146,26 +173,3 @@ GRID_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = NEAREST GRID_STAT_CLIMO_MEAN_REGRID_METHOD = BILIN GRID_STAT_CLIMO_MEAN_REGRID_WIDTH = 2 GRID_STAT_CLIMO_MEAN_DAY_INTERVAL = 1 - -# variables to describe format of forecast data -FCST_IS_PROB = false - -# variables to describe format of observation data -# none needed - -[dir] - -# input and output data directories -FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_grid/gfs/fcst -OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_grid/gfs/fcst -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/met_out/{MODEL}/sfc - -[filename_templates] -# format of filenames -# FCST -FCST_GRID_STAT_INPUT_TEMPLATE = pgbf{lead?fmt=%HHH}.gfs.{init?fmt=%Y%m%d%H} - -# ANLYS -OBS_GRID_STAT_INPUT_TEMPLATE = pgbf000.gfs.{valid?fmt=%Y%m%d%H} - -GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d%H%M}/grid_stat diff --git a/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsGFS_climoNCEP_MultiField.conf b/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsGFS_climoNCEP_MultiField.conf index 0dc8673e88..28c513fdd1 100644 --- a/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsGFS_climoNCEP_MultiField.conf +++ b/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsGFS_climoNCEP_MultiField.conf @@ -1,35 +1,69 @@ -# Grid to Grid Anomoly Example - [config] -# List of applications to run + +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/medium_range/GridStat_fcstGFS_obsGFS_climoNCEP_MultiField.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = GridStat, StatAnalysis -# time looping - options are INIT, VALID, RETRO, and REALTIME -LOOP_BY = VALID -# Format of VALID_BEG and VALID_END -VALID_TIME_FMT = %Y%m%d%H +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Start time for METplus run +LOOP_BY = VALID +VALID_TIME_FMT = %Y%m%d%H VALID_BEG = 2017061300 - -# End time for METplus run VALID_END = 2017061306 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 21600 -# list of forecast leads to process LEAD_SEQ = 24, 48 -# Options are times, processes -# times = run all items in the PROCESS_LIST for a single initialization -# time, then repeat until all times have been evaluated. -# processes = run each item in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST. LOOP_ORDER = times -# list of variables to compare + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +GRID_STAT_CLIMO_MEAN_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_grid/nwprod/fix +GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = cmean_1d.1959{valid?fmt=%m%d} + +FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_grid/gfs/fcst +FCST_GRID_STAT_INPUT_TEMPLATE = pgbf{lead?fmt=%.3H}.gfs.{init?fmt=%Y%m%d%H} + +OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_grid/gfs/obs +OBS_GRID_STAT_INPUT_TEMPLATE = pgbanl.gfs.{valid?fmt=%Y%m%d%H} + +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/met_out/{MODEL}/anom +GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d%H%M}/grid_stat + +MODEL1_STAT_ANALYSIS_LOOKIN_DIR = {OUTPUT_BASE}/met_out/{MODEL1}/anom/*/grid_stat + +STAT_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/gather_by_date/stat_analysis/grid2grid/anom +MODEL1_STAT_ANALYSIS_DUMP_ROW_TEMPLATE = {fcst_valid_hour?fmt=%H}Z/{MODEL1}/{MODEL1}_{valid?fmt=%Y%m%d}.stat + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + BOTH_VAR1_NAME = TMP BOTH_VAR1_LEVELS = P850, P500, P250 @@ -42,14 +76,15 @@ BOTH_VAR3_LEVELS = P850, P500, P250 BOTH_VAR4_NAME = PRMSL BOTH_VAR4_LEVELS = Z0 -# description of data to be processed -# used in output file path + +### +# GridStat Settings (optional) +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### + MODEL = GFS OBTYPE = ANLYS -# location of grid_stat MET config file -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - GRID_STAT_GRID_WEIGHT_FLAG = COS_LAT GRID_STAT_OUTPUT_PREFIX = {MODEL}_vs_{OBTYPE} @@ -80,33 +115,20 @@ GRID_STAT_CLIMO_MEAN_DAY_INTERVAL = 1 GRID_STAT_MET_CONFIG_OVERRIDES = climo_mean = fcst; -# variables to describe format of forecast data -FCST_IS_PROB = false -# variables to describe format of observation data -# none needed +### +# StatAnalysis Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#statanalysis +### + +STAT_ANALYSIS_CONFIG_FILE = {PARM_BASE}/met_config/STATAnalysisConfig_wrapped -# StatAnalysis configuration MODEL1 = GFS MODEL1_OBTYPE = ANLYS -# configuration file to use with StatAnalysis -STAT_ANALYSIS_CONFIG_FILE = {PARM_BASE}/met_config/STATAnalysisConfig_wrapped - -# stat_analysis job info STAT_ANALYSIS_JOB_NAME = filter - -# if using -dump_row, put in JOBS_ARGS "-dump_row [dump_row_file]" -# if using -out_stat, put in JOBS_ARGS "-out_stat [out_stat_file]" -# METplus will fill in filename STAT_ANALYSIS_JOB_ARGS = -dump_row [dump_row_file] -# Optional variables for further filtering -# can be blank, single, or multiple values -# if more than one use comma separated list -# -# (FCST)(OBS)_(VALID)(INIT)_HOUR_LIST: HH format (ex. 00, 06, 12) -# (FCST)(OBS)_LEAD_LIST: HH[H][MMSS] format (ex. 00, 06, 120) MODEL_LIST = {MODEL1} DESC_LIST = FCST_LEAD_LIST = @@ -129,54 +151,6 @@ OBS_THRESH_LIST = COV_THRESH_LIST = ALPHA_LIST = LINE_TYPE_LIST = -# how to treat items listed in above _LIST variables -# GROUP_LIST_ITEMS: items listed in a given _LIST variable -# will be grouped together -# LOOP_LIST_ITEMS: items listed in a give _LIST variable -# will be looped over -# if not listed METplus will treat the list as a group + GROUP_LIST_ITEMS = FCST_INIT_HOUR_LIST LOOP_LIST_ITEMS = FCST_VALID_HOUR_LIST, MODEL_LIST - - -[dir] - -# directory containing climatology data -GRID_STAT_CLIMO_MEAN_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_grid/nwprod/fix - -# input and output data directories -FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_grid/gfs/fcst -OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_grid/gfs/obs -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/met_out/{MODEL}/anom - -# directory to look for input for StatAnalysis -MODEL1_STAT_ANALYSIS_LOOKIN_DIR = {OUTPUT_BASE}/met_out/{MODEL1}/anom/*/grid_stat - -# Output data directory -STAT_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/gather_by_date/stat_analysis/grid2grid/anom - -[filename_templates] -# format of filenames - -# Climatology mean -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = cmean_1d.1959{valid?fmt=%m%d} - -# GFS -FCST_GRID_STAT_INPUT_TEMPLATE = pgbf{lead?fmt=%.3H}.gfs.{init?fmt=%Y%m%d%H} - -# ANLYS -OBS_GRID_STAT_INPUT_TEMPLATE = pgbanl.gfs.{valid?fmt=%Y%m%d%H} - -GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d%H%M}/grid_stat - -# Optional settings to create templated directory and file name information -# to save files as stat_analysis output as, this is appended to STAT_ANALYSIS_OUTPUT_DIR -# if no template is provided a default filename set in the code will be used -# Use: -# string templates can be set for all the lists being looped over, just -# use and a lower case version of the list, ex. {fcst_valid_hour?fmt=%H} -# or {fcst_var?fmt=%s} -# For looping over models: -# can set MODELn_STAT_ANALYSIS_[DUMP_ROW/OUT_STAT]_TEMPLATE for individual models -# or STAT_ANALYSIS_[DUMP_ROW/OUT_STAT] with {model?fmt=%s} -MODEL1_STAT_ANALYSIS_DUMP_ROW_TEMPLATE = {fcst_valid_hour?fmt=%H}Z/{MODEL1}/{MODEL1}_{valid?fmt=%Y%m%d}.stat diff --git a/parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf b/parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf index 3f5b9617fc..77110adf82 100644 --- a/parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf +++ b/parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf @@ -1,9 +1,28 @@ [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = MTD, ExtractTiles, SeriesAnalysis + ### # Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control ### LOOP_BY = INIT @@ -16,23 +35,10 @@ LEAD_SEQ = begin_end_incr(0,30,6) LOOP_ORDER = processes -### -# Field Info -### - -MODEL = GFS -OBTYPE = GFS_ANLY - -FCST_IS_PROB = False - -FCST_VAR1_NAME = PWAT -FCST_VAR1_LEVELS = L0 - -OBS_VAR1_NAME = PWAT -OBS_VAR1_LEVELS = L0 ### # File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info ### FCST_MTD_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead @@ -73,9 +79,26 @@ SERIES_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/series_analysis_lead SERIES_ANALYSIS_OUTPUT_TEMPLATE = {label}/series_F{fcst_beg}_to_F{fcst_end}_{fcst_name}_{fcst_level}.nc -####### -# MTD Configurations -####### +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + +MODEL = GFS +OBTYPE = GFS_ANLY + +FCST_VAR1_NAME = PWAT +FCST_VAR1_LEVELS = L0 + +OBS_VAR1_NAME = PWAT +OBS_VAR1_LEVELS = L0 + + +### +# MTD Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#mtd +### + MTD_DESC = NA MTD_SINGLE_RUN = False @@ -92,9 +115,11 @@ MTD_MIN_VOLUME = 2000 MTD_OUTPUT_PREFIX = {MODEL}_{CURRENT_FCST_NAME}_vs_{OBTYPE}_{CURRENT_OBS_NAME}_{CURRENT_FCST_LEVEL} -####### -# ExtractTiles Configurations -####### + +### +# ExtractTiles Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#extracttiles +### EXTRACT_TILES_NLAT = 60 EXTRACT_TILES_NLON = 60 @@ -105,9 +130,11 @@ EXTRACT_TILES_DLON = 0.5 EXTRACT_TILES_LON_ADJ = 15 EXTRACT_TILES_LAT_ADJ = 15 -####### -# SeriesAnalysis Configurations -####### + +### +# SeriesAnalysis Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#seriesanalysis +### SERIES_ANALYSIS_BACKGROUND_MAP = no diff --git a/parm/use_cases/model_applications/medium_range/PointStat_fcstGFS_obsGDAS_UpperAir_MultiField_PrepBufr.conf b/parm/use_cases/model_applications/medium_range/PointStat_fcstGFS_obsGDAS_UpperAir_MultiField_PrepBufr.conf index ca2f810ca5..ea774a66e7 100644 --- a/parm/use_cases/model_applications/medium_range/PointStat_fcstGFS_obsGDAS_UpperAir_MultiField_PrepBufr.conf +++ b/parm/use_cases/model_applications/medium_range/PointStat_fcstGFS_obsGDAS_UpperAir_MultiField_PrepBufr.conf @@ -1,15 +1,29 @@ [config] -## Configuration-related settings such as the process list, begin and end times, etc. + +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/medium_range/PointStat_fcstGFS_obsGDAS_UpperAir_MultiField_PrepBufr.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = PB2NC, PointStat -## LOOP_ORDER -## Options are: processes, times -## Looping by time- runs all items in the PROCESS_LIST for each -## initialization time and repeats until all times have been evaluated. -## Looping by processes- run each item in the PROCESS_LIST for all -## specified initialization times then repeat for the next item in the -## PROCESS_LIST. -LOOP_ORDER = times + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d @@ -19,85 +33,37 @@ VALID_INCREMENT = 86400 LEAD_SEQ = 0 -# For both pb2nc and point_stat, the obs_window dictionary: -OBS_WINDOW_BEGIN = -2700 -OBS_WINDOW_END = 2700 - -# Logging levels: DEBUG, INFO, WARN, ERROR (most verbose is DEBUG) -LOG_LEVEL = DEBUG - -PB2NC_SKIP_IF_OUTPUT_EXISTS = True +LOOP_ORDER = times -## MET Configuration files for pb2nc and point_stat -PB2NC_CONFIG_FILE = {PARM_BASE}/met_config/PB2NCConfig_wrapped -POINT_STAT_CONFIG_FILE ={PARM_BASE}/met_config/PointStatConfig_wrapped -PB2NC_QUALITY_MARK_THRESH = 3 +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -PB2NC_PB_REPORT_TYPE = 120, 220, 221, 122, 222, 223, 224, 131, 133, 233, 153, 156, 157, 180, 280, 181, 182, 281, 282, 183, 284, 187, 287 +PB2NC_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_obs/prepbufr/gdas +PB2NC_INPUT_TEMPLATE = prepbufr.gdas.{valid?fmt=%Y%m%d%H} -PB2NC_LEVEL_CATEGORY = 0, 1, 4, 5, 6 +PB2NC_OUTPUT_DIR = {OUTPUT_BASE}/gdas/upper_air +PB2NC_OUTPUT_TEMPLATE = prepbufr.gdas.{valid?fmt=%Y%m%d%H}.nc -POINT_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = NEAREST -POINT_STAT_INTERP_TYPE_METHOD = BILIN -POINT_STAT_INTERP_TYPE_WIDTH = 2 +FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_obs/gfs +FCST_POINT_STAT_INPUT_TEMPLATE = pgbf{lead?fmt=%HH}.gfs.{init?fmt=%Y%m%d%H} -POINT_STAT_OUTPUT_FLAG_SL1L2 = STAT -POINT_STAT_OUTPUT_FLAG_VL1L2 = STAT +OBS_POINT_STAT_INPUT_DIR = {PB2NC_OUTPUT_DIR} +OBS_POINT_STAT_INPUT_TEMPLATE = {PB2NC_OUTPUT_TEMPLATE} -# -# PB2NC -# -# These are appended with PB2NC to differentiate the GRID, POLY, and MESSAGE_TYPE for point_stat. -PB2NC_GRID = -PB2NC_POLY = -PB2NC_STATION_ID = -PB2NC_MESSAGE_TYPE = +POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE}/{OBTYPE} -# Leave empty to process all -PB2NC_OBS_BUFR_VAR_LIST = QOB, TOB, ZOB, UOB, VOB, D_RH -#*********** -# ***NOTE*** -#*********** -# SET TIME_SUMMARY_FLAG to False. There is a bug in met-6.1. -## For defining the time periods for summarization -# False for no time summary, True otherwise -PB2NC_TIME_SUMMARY_FLAG = False -PB2NC_TIME_SUMMARY_BEG = 000000 ;; start time of time summary in HHMMSS format -PB2NC_TIME_SUMMARY_END = 235959 ;; end time of time summary in HHMMSS format -PB2NC_TIME_SUMMARY_VAR_NAMES = PMO,TOB,TDO,UOB,VOB,PWO,TOCC -PB2NC_TIME_SUMMARY_TYPES = min, max, range, mean, stdev, median, p80 ;; a list of the statistics to summarize +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### -# Model/fcst and obs name, e.g. GFS, NAM, GDAS, etc. MODEL = gfs OBTYPE = gdas -# Regrid to specified grid. Indicate NONE if no regridding, or the grid id -# (e.g. G212) -POINT_STAT_REGRID_TO_GRID = G003 -POINT_STAT_REGRID_METHOD = BILIN -POINT_STAT_REGRID_WIDTH = 2 - -# Verification Masking regions -# Indicate which grid and polygon masking region, if applicable -POINT_STAT_GRID = FULL -# List of full path to poly masking files. NOTE: Only short lists of poly -# files work (those that fit on one line), a long list will result in an -# environment variable that is too long, resulting in an error. For long -# lists of poly masking files (i.e. all the mask files in the NCEP_mask -# directory), define these in the MET point_stat configuration file. -POINT_STAT_POLY = -POINT_STAT_STATION_ID = - -# Message types, if all message types are to be returned, leave this empty, -# otherwise indicate the message types of interest. -POINT_STAT_MESSAGE_TYPE = ADPUPA - -# Variables and levels as specified in the field dictionary of the MET -# point_stat configuration file. Specify as FCST_VARn_NAME, FCST_VARn_LEVELS, -# (optional) FCST_VARn_OPTION - BOTH_VAR1_NAME = TMP BOTH_VAR1_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 @@ -113,20 +79,57 @@ BOTH_VAR4_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, BOTH_VAR5_NAME = HGT BOTH_VAR5_LEVELS = P1000, P950, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 -[dir] -PB2NC_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_obs/prepbufr/gdas -PB2NC_OUTPUT_DIR = {OUTPUT_BASE}/gdas/upper_air -FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_obs/gfs -OBS_POINT_STAT_INPUT_DIR = {PB2NC_OUTPUT_DIR} +### +# PB2NC Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pb2nc +### -POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE}/{OBTYPE} +# For both pb2nc and point_stat, the obs_window dictionary: +OBS_WINDOW_BEGIN = -2700 +OBS_WINDOW_END = 2700 -[filename_templates] -## Output file template -PB2NC_INPUT_TEMPLATE = prepbufr.gdas.{valid?fmt=%Y%m%d%H} -PB2NC_OUTPUT_TEMPLATE = prepbufr.gdas.{valid?fmt=%Y%m%d%H}.nc +PB2NC_SKIP_IF_OUTPUT_EXISTS = True -FCST_POINT_STAT_INPUT_TEMPLATE = pgbf{lead?fmt=%HH}.gfs.{init?fmt=%Y%m%d%H} -OBS_POINT_STAT_INPUT_TEMPLATE = {PB2NC_OUTPUT_TEMPLATE} +PB2NC_QUALITY_MARK_THRESH = 3 + +PB2NC_PB_REPORT_TYPE = 120, 220, 221, 122, 222, 223, 224, 131, 133, 233, 153, 156, 157, 180, 280, 181, 182, 281, 282, 183, 284, 187, 287 + +PB2NC_LEVEL_CATEGORY = 0, 1, 4, 5, 6 +PB2NC_GRID = +PB2NC_POLY = +PB2NC_STATION_ID = +PB2NC_MESSAGE_TYPE = + +PB2NC_OBS_BUFR_VAR_LIST = QOB, TOB, ZOB, UOB, VOB, D_RH + +PB2NC_TIME_SUMMARY_FLAG = False +PB2NC_TIME_SUMMARY_BEG = 000000 +PB2NC_TIME_SUMMARY_END = 235959 +PB2NC_TIME_SUMMARY_VAR_NAMES = PMO,TOB,TDO,UOB,VOB,PWO,TOCC +PB2NC_TIME_SUMMARY_TYPES = min, max, range, mean, stdev, median, p80 + + +### +# PointStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pointstat +### + +POINT_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = NEAREST +POINT_STAT_INTERP_TYPE_METHOD = BILIN +POINT_STAT_INTERP_TYPE_WIDTH = 2 + +POINT_STAT_OUTPUT_FLAG_SL1L2 = STAT +POINT_STAT_OUTPUT_FLAG_VL1L2 = STAT + +POINT_STAT_REGRID_TO_GRID = G003 +POINT_STAT_REGRID_METHOD = BILIN +POINT_STAT_REGRID_WIDTH = 2 + +POINT_STAT_GRID = FULL + +POINT_STAT_POLY = +POINT_STAT_STATION_ID = + +POINT_STAT_MESSAGE_TYPE = ADPUPA diff --git a/parm/use_cases/model_applications/medium_range/PointStat_fcstGFS_obsNAM_Sfc_MultiField_PrepBufr.conf b/parm/use_cases/model_applications/medium_range/PointStat_fcstGFS_obsNAM_Sfc_MultiField_PrepBufr.conf index 224833c82c..b722dd49ac 100644 --- a/parm/use_cases/model_applications/medium_range/PointStat_fcstGFS_obsNAM_Sfc_MultiField_PrepBufr.conf +++ b/parm/use_cases/model_applications/medium_range/PointStat_fcstGFS_obsNAM_Sfc_MultiField_PrepBufr.conf @@ -1,24 +1,28 @@ [config] -## Configuration-related settings such as the process list, begin and end times, etc. -PROCESS_LIST = PB2NC, PointStat -## LOOP_ORDER -## Options are: processes, times -## Looping by time- runs all items in the PROCESS_LIST for each -## initialization time and repeats until all times have been evaluated. -## Looping by processes- run each item in the PROCESS_LIST for all -## specified initialization times then repeat for the next item in the -## PROCESS_LIST. -LOOP_ORDER = processes +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/medium_range/PointStat_fcstGFS_obsNAM_Sfc_MultiField_PrepBufr.html -# Logging levels: DEBUG, INFO, WARN, ERROR (most verbose is DEBUG) -LOG_LEVEL = DEBUG +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -## MET Configuration files for pb2nc and point_stat -PB2NC_CONFIG_FILE = {PARM_BASE}/met_config/PB2NCConfig_wrapped -POINT_STAT_CONFIG_FILE ={PARM_BASE}/met_config/PointStatConfig_wrapped +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### -PB2NC_SKIP_IF_OUTPUT_EXISTS = True +PROCESS_LIST = PB2NC, PointStat + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d @@ -28,76 +32,38 @@ VALID_INCREMENT = 86400 LEAD_SEQ = 0 +LOOP_ORDER = processes -# For both pb2nc and point_stat, the obs_window dictionary: -OBS_WINDOW_BEGIN = -2700 -OBS_WINDOW_END = 2700 -PB2NC_QUALITY_MARK_THRESH = 3 +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -PB2NC_PB_REPORT_TYPE = 120, 220, 221, 122, 222, 223, 224, 131, 133, 233, 153, 156, 157, 180, 280, 181, 182, 281, 282, 183, 284, 187, 287 +PB2NC_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_obs/prepbufr/nam +PB2NC_INPUT_TEMPLATE = nam.{da_init?fmt=%Y%m%d}/nam.t{da_init?fmt=%H}z.prepbufr.tm{offset?fmt=%2H} -PB2NC_LEVEL_CATEGORY = 0, 1, 4, 5, 6 +PB2NC_OUTPUT_DIR = {OUTPUT_BASE}/nam/conus_sfc +PB2NC_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/nam.{valid?fmt=%Y%m%d%H}.nc +PB2NC_SKIP_IF_OUTPUT_EXISTS = True -POINT_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = NEAREST -POINT_STAT_INTERP_TYPE_METHOD = BILIN -POINT_STAT_INTERP_TYPE_WIDTH = 2 +FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_obs/gfs +FCST_POINT_STAT_INPUT_TEMPLATE = pgbf{lead?fmt=%HH}.gfs.{init?fmt=%Y%m%d%H} -POINT_STAT_OUTPUT_FLAG_SL1L2 = STAT -POINT_STAT_OUTPUT_FLAG_VL1L2 = STAT +OBS_POINT_STAT_INPUT_DIR = {PB2NC_OUTPUT_DIR} +OBS_POINT_STAT_INPUT_TEMPLATE = {PB2NC_OUTPUT_TEMPLATE} -# -# PB2NC -# -# These are appended with PB2NC to differentiate the GRID, POLY, and MESSAGE_TYPE for point_stat. -PB2NC_GRID = -PB2NC_POLY = -PB2NC_STATION_ID = -PB2NC_MESSAGE_TYPE = +POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE}/{OBTYPE} -# Leave empty to process all -PB2NC_OBS_BUFR_VAR_LIST = PMO, TOB, TDO, UOB, VOB, PWO, TOCC, D_RH -#*********** -# ***NOTE*** -#*********** -# SET TIME_SUMMARY_FLAG to False. There is a bug in met-6.1. -## For defining the time periods for summarization -# False for no time summary, True otherwise -PB2NC_TIME_SUMMARY_FLAG = False -PB2NC_TIME_SUMMARY_BEG = 000000 ;; start time of time summary in HHMMSS format -PB2NC_TIME_SUMMARY_END = 235959 ;; end time of time summary in HHMMSS format -PB2NC_TIME_SUMMARY_VAR_NAMES = PMO,TOB,TDO,UOB,VOB,PWO,TOCC -PB2NC_TIME_SUMMARY_TYPES = min, max, range, mean, stdev, median, p80 ;; a list of the statistics to summarize +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### -# Model/fcst and obs name, e.g. GFS, NAM, GDAS, etc. MODEL = gfs OBTYPE = nam -# Regrid to specified grid. Indicate NONE if no regridding, or the grid id -# (e.g. G212) -POINT_STAT_REGRID_TO_GRID = G104 -POINT_STAT_REGRID_METHOD = BILIN -POINT_STAT_REGRID_WIDTH = 2 - -# Verification Masking regions -# Indicate which grid and polygon masking region, if applicable -POINT_STAT_GRID = FULL -# List of full path to poly masking files. NOTE: Only short lists of poly -# files work (those that fit on one line), a long list will result in an -# environment variable that is too long, resulting in an error. For long -# lists of poly masking files (i.e. all the mask files in the NCEP_mask -# directory), define these in the MET point_stat configuration file. -POINT_STAT_POLY = -POINT_STAT_STATION_ID = - -# Message types, if all message types are to be returned, leave this empty, -# otherwise indicate the message types of interest. -POINT_STAT_MESSAGE_TYPE = ONLYSF -# Variables and levels as specified in the field dictionary of the MET -# point_stat configuration file. Specify as FCST_VARn_NAME, FCST_VARn_LEVELS, -# (optional) FCST_VARn_OPTION - BOTH_VAR1_NAME = TMP BOTH_VAR1_LEVELS = Z2 @@ -120,19 +86,54 @@ FCST_VAR6_OPTIONS = GRIB_lvl_typ = 200; BOTH_VAR7_NAME = PRMSL BOTH_VAR7_LEVELS = Z0 -[dir] -PB2NC_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_obs/prepbufr/nam -PB2NC_OUTPUT_DIR = {OUTPUT_BASE}/nam/conus_sfc -FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/grid_to_obs/gfs -OBS_POINT_STAT_INPUT_DIR = {PB2NC_OUTPUT_DIR} +### +# PB2NC Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pb2nc +### -POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE}/{OBTYPE} +# For both pb2nc and point_stat, the obs_window dictionary: +OBS_WINDOW_BEGIN = -2700 +OBS_WINDOW_END = 2700 -[filename_templates] -PB2NC_INPUT_TEMPLATE = nam.{da_init?fmt=%Y%m%d}/nam.t{da_init?fmt=%H}z.prepbufr.tm{offset?fmt=%2H} +PB2NC_QUALITY_MARK_THRESH = 3 -PB2NC_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/nam.{valid?fmt=%Y%m%d%H}.nc +PB2NC_PB_REPORT_TYPE = 120, 220, 221, 122, 222, 223, 224, 131, 133, 233, 153, 156, 157, 180, 280, 181, 182, 281, 282, 183, 284, 187, 287 -FCST_POINT_STAT_INPUT_TEMPLATE = pgbf{lead?fmt=%HH}.gfs.{init?fmt=%Y%m%d%H} -OBS_POINT_STAT_INPUT_TEMPLATE = {PB2NC_OUTPUT_TEMPLATE} +PB2NC_LEVEL_CATEGORY = 0, 1, 4, 5, 6 + +PB2NC_GRID = +PB2NC_POLY = +PB2NC_STATION_ID = +PB2NC_MESSAGE_TYPE = + +PB2NC_OBS_BUFR_VAR_LIST = PMO, TOB, TDO, UOB, VOB, PWO, TOCC, D_RH + +PB2NC_TIME_SUMMARY_FLAG = False +PB2NC_TIME_SUMMARY_BEG = 000000 +PB2NC_TIME_SUMMARY_END = 235959 +PB2NC_TIME_SUMMARY_VAR_NAMES = PMO,TOB,TDO,UOB,VOB,PWO,TOCC +PB2NC_TIME_SUMMARY_TYPES = min, max, range, mean, stdev, median, p80 + + +### +# PointStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pointstat +### + +POINT_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = NEAREST +POINT_STAT_INTERP_TYPE_METHOD = BILIN +POINT_STAT_INTERP_TYPE_WIDTH = 2 + +POINT_STAT_OUTPUT_FLAG_SL1L2 = STAT +POINT_STAT_OUTPUT_FLAG_VL1L2 = STAT + +POINT_STAT_REGRID_TO_GRID = G104 +POINT_STAT_REGRID_METHOD = BILIN +POINT_STAT_REGRID_WIDTH = 2 + +POINT_STAT_GRID = FULL +POINT_STAT_POLY = +POINT_STAT_STATION_ID = + +POINT_STAT_MESSAGE_TYPE = ONLYSF diff --git a/parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByInit.conf b/parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByInit.conf index c205d4a245..65dbe5ed8f 100644 --- a/parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByInit.conf +++ b/parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByInit.conf @@ -1,70 +1,125 @@ -# -# CONFIGURATION -# [config] -# Loop over each process in the process list (set in PROCESS_LIST) for all times in the time window of -# interest. -LOOP_ORDER = processes -# Configuration files -TC_PAIRS_CONFIG_FILE = {PARM_BASE}/met_config/TCPairsConfig_wrapped +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByInit.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -SERIES_ANALYSIS_CONFIG_FILE = {PARM_BASE}/met_config/SeriesAnalysisConfig_wrapped +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### PROCESS_LIST = TCPairs, TCStat, ExtractTiles, TCStat(for_series_analysis), SeriesAnalysis -# The init time begin and end times, increment + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d INIT_BEG = 20141214 INIT_END = 20141214 +INIT_INCREMENT = 21600 -# This is the step-size. Increment in seconds from the begin time to the end -# time -INIT_INCREMENT = 21600 ;; set to every 6 hours=21600 seconds +SERIES_ANALYSIS_RUNTIME_FREQ = RUN_ONCE_PER_INIT_OR_VALID -####### -# TCPairs Configurations -####### +SERIES_ANALYSIS_RUN_ONCE_PER_STORM_ID = True -# A list of times to include, in format YYYYMMDD_hh -TC_PAIRS_INIT_INCLUDE = +LOOP_ORDER = processes -# A list of times to exclude, in format YYYYMMDD_hh -TC_PAIRS_INIT_EXCLUDE = -# Specify model valid time window in format YYYYMM[DD[_hh]]. Only tracks -# that fall within the valid time window will be used. -TC_PAIRS_VALID_BEG = -TC_PAIRS_VALID_END = +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +TC_PAIRS_ADECK_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/track_data +TC_PAIRS_ADECK_TEMPLATE = {date?fmt=%Y%m}/a{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} -# -# Run MET tc_pairs by indicating the top-level directories for the A-deck -# and B-deck files. Set to 'yes' to run using top-level directories, 'no' -# if you want to run tc_pairs on files paired by the wrapper. -TC_PAIRS_READ_ALL_FILES = no +TC_PAIRS_BDECK_INPUT_DIR = {TC_PAIRS_ADECK_INPUT_DIR} +TC_PAIRS_BDECK_TEMPLATE = {date?fmt=%Y%m}/b{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} + +TC_PAIRS_REFORMAT_DIR = {OUTPUT_BASE}/track_data_atcf + +TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs +TC_PAIRS_OUTPUT_TEMPLATE = {date?fmt=%Y%m}/{basin?fmt=%s}q{date?fmt=%Y%m%d%H}.gfso.{cyclone?fmt=%s} + +TC_PAIRS_SKIP_IF_REFORMAT_EXISTS = yes +TC_PAIRS_SKIP_IF_OUTPUT_EXISTS = yes + + +TC_STAT_LOOKIN_DIR = {TC_PAIRS_OUTPUT_DIR} + +TC_STAT_OUTPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} +TC_STAT_DUMP_ROW_TEMPLATE = {init?fmt=%Y%m%d_%H}/filter_{init?fmt=%Y%m%d_%H}.tcst + + +EXTRACT_TILES_TC_STAT_INPUT_DIR = {TC_STAT_OUTPUT_DIR} +EXTRACT_TILES_TC_STAT_INPUT_TEMPLATE = {TC_STAT_DUMP_ROW_TEMPLATE} + +FCST_EXTRACT_TILES_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/reduced_model_data +FCST_EXTRACT_TILES_INPUT_TEMPLATE = {init?fmt=%Y%m%d}/gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.grb2 + +OBS_EXTRACT_TILES_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/reduced_model_data +OBS_EXTRACT_TILES_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/gfs_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.grb2 + +EXTRACT_TILES_OUTPUT_DIR = {OUTPUT_BASE}/extract_tiles +FCST_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/FCST_TILE_F{lead?fmt=%3H}_gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc +OBS_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/OBS_TILE_F{lead?fmt=%3H}_gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc + +EXTRACT_TILES_SKIP_IF_OUTPUT_EXISTS = yes + + +SERIES_ANALYSIS_TC_STAT_INPUT_DIR = {SERIES_ANALYSIS_OUTPUT_DIR} +SERIES_ANALYSIS_TC_STAT_INPUT_TEMPLATE = {TC_STAT_DUMP_ROW_TEMPLATE} + +FCST_SERIES_ANALYSIS_INPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} +FCST_SERIES_ANALYSIS_INPUT_TEMPLATE = {FCST_EXTRACT_TILES_OUTPUT_TEMPLATE} + +OBS_SERIES_ANALYSIS_INPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} +OBS_SERIES_ANALYSIS_INPUT_TEMPLATE = {OBS_EXTRACT_TILES_OUTPUT_TEMPLATE} + +SERIES_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/series_analysis_init +SERIES_ANALYSIS_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/series_{fcst_name}_{fcst_level}.nc + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### -# List of models to be used (white space or comma separated) eg: DSHP, LGEM, HWRF -# If no models are listed, then process all models in the input file(s). MODEL = GFSO -# List of storm ids of interest (space or comma separated) e.g.: AL112012, AL122012 -# If no storm ids are listed, then process all storm ids in the input file(s). -TC_PAIRS_STORM_ID = +BOTH_VAR1_NAME = TMP +BOTH_VAR1_LEVELS = Z2 -# Basins (of origin/region). Indicate with space or comma-separated list of regions, eg. AL: for North Atlantic, -# WP: Western North Pacific, CP: Central North Pacific, SH: Southern Hemisphere, IO: North Indian Ocean, LS: Southern -# Hemisphere -TC_PAIRS_BASIN = -# Cyclone, a space or comma-separated list of cyclone numbers. If left empty, all cyclones will be used. -TC_PAIRS_CYCLONE = +### +# TCPairs Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcpairs +### + +TC_PAIRS_INIT_INCLUDE = +TC_PAIRS_INIT_EXCLUDE = -# Storm name, a space or comma-separated list of storm names to evaluate. If left empty, all storms will be used. +TC_PAIRS_VALID_BEG = +TC_PAIRS_VALID_END = + +TC_PAIRS_STORM_ID = +TC_PAIRS_BASIN = +TC_PAIRS_CYCLONE = TC_PAIRS_STORM_NAME = -# DLAND file, the full path of the file that contains the gridded representation of the -# minimum distance from land. TC_PAIRS_DLAND_FILE = {MET_INSTALL_DIR}/share/met/tc_data/dland_global_tenth_degree.nc TC_PAIRS_REFORMAT_DECK = yes @@ -73,31 +128,16 @@ TC_PAIRS_REFORMAT_TYPE = SBU TC_PAIRS_MISSING_VAL_TO_REPLACE = -99 TC_PAIRS_MISSING_VAL = -9999 -# overwrite modified track data (non-ATCF to ATCF format) -TC_PAIRS_SKIP_IF_REFORMAT_EXISTS = yes - -# overwrite tc_pairs output -TC_PAIRS_SKIP_IF_OUTPUT_EXISTS = yes +### +# TCStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcstat +### -####### -# TCStat Configurations -####### TC_STAT_JOB_ARGS = -job filter -basin ML -dump_row {TC_STAT_OUTPUT_DIR}/{TC_STAT_DUMP_ROW_TEMPLATE} -# Specify whether only those track points common to both the ADECK and BDECK -# tracks should be written out. This is only used when explicitly calling -# TC_STAT in the PROCESS_LIST. This is not used in this use case, so setting -# it to either false or true has no impact. TC_STAT_MATCH_POINTS = true -# These all map to the options in the default TC-Stat config file, except these -# are pre-pended with TC_STAT to avoid clashing with any other similarly -# named options from other MET tools (eg TC_STAT_AMODEL corresponds to the -# amodel option in the default MET tc-stat config file, whereas AMODEL -# corresponds to the amodel option in the MET tc-pairs config file). - -# Stratify by these columns: TC_STAT_AMODEL = TC_STAT_BMODEL = TC_STAT_DESC = @@ -106,15 +146,12 @@ TC_STAT_BASIN = TC_STAT_CYCLONE = TC_STAT_STORM_NAME = -# Stratify by init times via a comma-separate list of init times to -# include or exclude. Time format defined as YYYYMMDD_HH or YYYYMMDD_HHmmss TC_STAT_INIT_BEG = TC_STAT_INIT_END = TC_STAT_INIT_INCLUDE = {init?fmt=%Y%m%d_%H} TC_STAT_INIT_EXCLUDE = TC_STAT_INIT_HOUR = -# Stratify by valid times via a comma-separate list of valid times to -# include or exclude. Time format defined as YYYYMMDD_HH or YYYYMMDD_HHmmss + TC_STAT_VALID_BEG = TC_STAT_VALID_END = TC_STAT_VALID_INCLUDE = @@ -123,196 +160,83 @@ TC_STAT_VALID_HOUR = TC_STAT_LEAD_REQ = TC_STAT_INIT_MASK = TC_STAT_VALID_MASK = -# Stratify by the valid time and lead time via comma-separated list of -# times in format HH[MMSS] + TC_STAT_VALID_HOUR = TC_STAT_LEAD = -# Stratify over the watch_warn column in the tcst file. Setting this to -# 'ALL' will match HUWARN, HUWATCH, TSWARN, TSWATCH TC_STAT_TRACK_WATCH_WARN = -# Stratify by applying thresholds to numeric data columns. Specify with -# comma-separated list of column names and thresholds to be applied. -# The length of TC_STAT_COLUMN_THRESH_NAME should be the same as -# TC_STAT_COLUMN_THRESH_VAL. TC_STAT_COLUMN_THRESH_NAME = TC_STAT_COLUMN_THRESH_VAL = -# Stratify by a list of comma-separated columns names and values corresponding -# to non-numeric data columns of the values of interest. TC_STAT_COLUMN_STR_NAME = TC_STAT_COLUMN_STR_VAL = -# Stratify by applying thresholds to numeric data columns only when lead=0. -# If lead=0 and the value does not meet the threshold, discard the entire -# track. The length of TC_STAT_INIT_THRESH_NAME must equal the length of -# TC_STAT_INIT_THRESH_VAL. TC_STAT_INIT_THRESH_NAME = TC_STAT_INIT_THRESH_VAL = -# Stratify by applying thresholds to numeric data columns only when lead = 0. -# If lead = 0 but the value doesn't meet the threshold, discard the entire -# track. TC_STAT_INIT_STR_NAME = TC_STAT_INIT_STR_VAL = -# Excludes any points where distance to land is <=0. When set to TRUE, once land -# is encountered, the remainder of the forecast track is NOT used for the -# verification, even if the track moves back over water. TC_STAT_WATER_ONLY = -# TRUE or FALSE. To specify whether only those track points occurring near -# landfall should be retained. Landfall is the last bmodel track point before -# the distance to land switches from water to land. TC_STAT_LANDFALL = -# Define the landfall retention window, which is defined as the hours offset -# from the time of landfall. Format is in HH[MMSS]. Default TC_STAT_LANDFALL_BEG -# is set to -24, and TC_STAT_LANDFALL_END is set to 00 -#TC_STAT_LANDFALL_BEG = -24 -#TC_STAT_LANDFALL_END = 00 TC_STAT_LANDFALL_BEG = TC_STAT_LANDFALL_END = -# OVERWRITE OPTIONS -# Skip writing filter files if they already exist. -# Set to yes if you want to skip processing existing files -# Set to no if you want to override existing files -EXTRACT_TILES_SKIP_IF_OUTPUT_EXISTS = yes -# Constants used in creating the tile grid, used by extract tiles +### +# ExtractTiles Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#extracttiles +### + EXTRACT_TILES_NLAT = 60 EXTRACT_TILES_NLON = 60 -# Resolution of data in degrees, used by extract tiles EXTRACT_TILES_DLAT = 0.5 EXTRACT_TILES_DLON = 0.5 -# Degrees to subtract from the center lat and lon to -# calculate the lower left lat (lat_ll) and lower -# left lon (lon_ll) for a grid that is 2n X 2m, -# where n = EXTRACT_TILES_LAT_ADJ degrees and m = EXTRACT_TILES_LON_ADJ degrees. -# For this case, where n=15 and m=15, this results -# in a 30 deg X 30 deg grid. Used by extract tiles EXTRACT_TILES_LON_ADJ = 15 EXTRACT_TILES_LAT_ADJ = 15 + +### +# TCStat (for SeriesAnalysis) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcstat +### + # Settings specific to the TCStat(for_series_analysis) process that was set # in the PROCESS_LIST. Any TC_STAT_* variable not set in this section will use # the value set outside of this section [for_series_analysis] + TC_STAT_JOB_ARGS = -job filter -init_beg {INIT_BEG} -init_end {INIT_END} -dump_row {TC_STAT_OUTPUT_DIR}/{TC_STAT_DUMP_ROW_TEMPLATE} TC_STAT_OUTPUT_DIR = {SERIES_ANALYSIS_OUTPUT_DIR} TC_STAT_LOOKIN_DIR = {EXTRACT_TILES_OUTPUT_DIR} -[config] -# Used by extract tiles and series analysis to define the records of -# interest to be retrieved from the grib2 file -# -BOTH_VAR1_NAME = TMP -BOTH_VAR1_LEVELS = Z2 +### +# SeriesAnalysis Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#seriesanalysis +### -SERIES_ANALYSIS_RUNTIME_FREQ = RUN_ONCE_PER_INIT_OR_VALID - -SERIES_ANALYSIS_RUN_ONCE_PER_STORM_ID = True +[config] -# PLOTTING Relevant to series analysis plots. -# By default, background map is turned off. Set -# to no to turn of plotting of background map. SERIES_ANALYSIS_BACKGROUND_MAP = no -# set the regrid dictionary item to_grid in the SeriesAnalysis MET config file SERIES_ANALYSIS_REGRID_TO_GRID = FCST SERIES_ANALYSIS_REGRID_METHOD = FORCE -#SERIES_ANALYSIS_REGRID_WIDTH = -#SERIES_ANALYSIS_REGRID_VLD_THRESH = -#SERIES_ANALYSIS_REGRID_SHAPE = -## NOTE: "TOTAL" is a REQUIRED cnt statistic used by the series analysis scripts SERIES_ANALYSIS_STAT_LIST = TOTAL, FBAR, OBAR, ME SERIES_ANALYSIS_BLOCK_SIZE = 4000 -# set to True to add the -paired flag to the SeriesAnalysis command SERIES_ANALYSIS_IS_PAIRED = True -# If True/yes, run plot_data_plane on output from Series-Analysis to generate -# images for each stat item listed in SERIES_ANALYSIS_STAT_LIST SERIES_ANALYSIS_GENERATE_PLOTS = yes -# If True/yes, run convert on output from Series-Analysis to generate -# a gif using images in groups of name/level/stat SERIES_ANALYSIS_GENERATE_ANIMATIONS = no -# Title to use when plotting output from Series-Analysis -# Only used if SERIES_ANALYSIS_GENERATE_PLOTS is True/yes PLOT_DATA_PLANE_TITLE = {MODEL} Init {init?fmt=%Y%m%d_%H} Storm {storm_id} {num_leads} Forecasts (F{fcst_beg} to F{fcst_end}) {stat} for {fcst_name}, {fcst_level} - - -# -# FILENAME TEMPLATES -# -[filename_templates] -# Define the format of the filenames -TC_PAIRS_ADECK_TEMPLATE = {date?fmt=%Y%m}/a{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} -TC_PAIRS_BDECK_TEMPLATE = {date?fmt=%Y%m}/b{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} -TC_PAIRS_OUTPUT_TEMPLATE = {date?fmt=%Y%m}/{basin?fmt=%s}q{date?fmt=%Y%m%d%H}.gfso.{cyclone?fmt=%s} - -TC_STAT_DUMP_ROW_TEMPLATE = {init?fmt=%Y%m%d_%H}/filter_{init?fmt=%Y%m%d_%H}.tcst - -EXTRACT_TILES_TC_STAT_INPUT_TEMPLATE = {TC_STAT_DUMP_ROW_TEMPLATE} - -FCST_EXTRACT_TILES_INPUT_TEMPLATE = {init?fmt=%Y%m%d}/gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.grb2 -OBS_EXTRACT_TILES_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/gfs_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.grb2 - -FCST_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/FCST_TILE_F{lead?fmt=%3H}_gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc -OBS_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/OBS_TILE_F{lead?fmt=%3H}_gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc - -FCST_SERIES_ANALYSIS_INPUT_TEMPLATE = {FCST_EXTRACT_TILES_OUTPUT_TEMPLATE} -OBS_SERIES_ANALYSIS_INPUT_TEMPLATE = {OBS_EXTRACT_TILES_OUTPUT_TEMPLATE} - -SERIES_ANALYSIS_TC_STAT_INPUT_TEMPLATE = {TC_STAT_DUMP_ROW_TEMPLATE} - -# Template to look for climatology mean input to SeriesAnalysis relative to SERIES_ANALYSIS_CLIMO_MEAN_INPUT_DIR -# Not used in this example -SERIES_ANALYSIS_CLIMO_MEAN_INPUT_TEMPLATE = - -# Template to look for climatology standard deviation input to SeriesAnalysis relative to SERIES_ANALYSIS_CLIMO_STDEV_INPUT_DIR -# Not used in this example -SERIES_ANALYSIS_CLIMO_STDEV_INPUT_TEMPLATE = - -SERIES_ANALYSIS_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/series_{fcst_name}_{fcst_level}.nc -# -# DIRECTORIES -# -[dir] -TC_PAIRS_ADECK_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/track_data -TC_PAIRS_BDECK_INPUT_DIR = {TC_PAIRS_ADECK_INPUT_DIR} -TC_PAIRS_REFORMAT_DIR = {OUTPUT_BASE}/track_data_atcf -TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs - -TC_STAT_LOOKIN_DIR = {TC_PAIRS_OUTPUT_DIR} -TC_STAT_OUTPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} - -EXTRACT_TILES_TC_STAT_INPUT_DIR = {TC_STAT_OUTPUT_DIR} - -FCST_EXTRACT_TILES_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/reduced_model_data -OBS_EXTRACT_TILES_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/reduced_model_data -EXTRACT_TILES_OUTPUT_DIR = {OUTPUT_BASE}/extract_tiles - -FCST_SERIES_ANALYSIS_INPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} -OBS_SERIES_ANALYSIS_INPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} -SERIES_ANALYSIS_TC_STAT_INPUT_DIR = {SERIES_ANALYSIS_OUTPUT_DIR} - -# directory containing climatology mean input to SeriesAnalysis -# Not used in this example -SERIES_ANALYSIS_CLIMO_MEAN_INPUT_DIR = - -# directory containing climatology standard deviation input to SeriesAnalysis -# Not used in this example -SERIES_ANALYSIS_CLIMO_STDEV_INPUT_DIR = - -SERIES_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/series_analysis_init diff --git a/parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf b/parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf index 4e80adf247..32a43b9f12 100644 --- a/parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf +++ b/parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf @@ -1,91 +1,129 @@ -# -# CONFIGURATION -# [config] -# Loop over each process in the process list (set in PROCESS_LIST) for all times in the time window of -# interest. -LOOP_ORDER = processes -# Configuration files -TC_PAIRS_CONFIG_FILE = {PARM_BASE}/met_config/TCPairsConfig_wrapped +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -SERIES_ANALYSIS_CONFIG_FILE = {PARM_BASE}/met_config/SeriesAnalysisConfig_wrapped +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### PROCESS_LIST = TCPairs, TCStat, ExtractTiles, TCStat(for_series_analysis), SeriesAnalysis -# The init time begin and end times, increment + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d INIT_BEG = 20141214 INIT_END = 20141214 - -# This is the step-size. Increment in seconds from the begin time to the end -# time INIT_INCREMENT = 21600 ;; set to every 6 hours=21600 seconds -# Used by extract tiles and series analysis to define the records of -# interest to be retrieved from the grib2 file -# -BOTH_VAR1_NAME = TMP -BOTH_VAR1_LEVELS = Z2 - -# forecast lead sequence 1 list (0, 6, 12, 18) LEAD_SEQ_1 = begin_end_incr(0,18,6) -# forecast lead sequence 1 label LEAD_SEQ_1_LABEL = Day1 -# forecast lead sequence 2 list (24, 30, 36, 42) LEAD_SEQ_2 = begin_end_incr(24,42,6) -# forecast lead sequence 2 label LEAD_SEQ_2_LABEL = Day2 -####### -# TCPairs Configurations -####### +LOOP_ORDER = processes + + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +TC_PAIRS_ADECK_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/track_data +TC_PAIRS_ADECK_TEMPLATE = {date?fmt=%Y%m}/a{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} + +TC_PAIRS_BDECK_INPUT_DIR = {TC_PAIRS_ADECK_INPUT_DIR} +TC_PAIRS_BDECK_TEMPLATE = {date?fmt=%Y%m}/b{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} + +TC_PAIRS_REFORMAT_DIR = {OUTPUT_BASE}/track_data_atcf +TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs +TC_PAIRS_OUTPUT_TEMPLATE = {date?fmt=%Y%m}/{basin?fmt=%s}q{date?fmt=%Y%m%d%H}.gfso.{cyclone?fmt=%s} + +TC_PAIRS_SKIP_IF_REFORMAT_EXISTS = yes +TC_PAIRS_SKIP_IF_OUTPUT_EXISTS = yes + + +TC_STAT_LOOKIN_DIR = {TC_PAIRS_OUTPUT_DIR} +TC_STAT_OUTPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} +TC_STAT_DUMP_ROW_TEMPLATE = filter_{init?fmt=%Y%m%d_%H}.tcst + + +EXTRACT_TILES_TC_STAT_INPUT_DIR = {TC_STAT_OUTPUT_DIR} +EXTRACT_TILES_TC_STAT_INPUT_TEMPLATE = {TC_STAT_DUMP_ROW_TEMPLATE} + +EXTRACT_TILES_GRID_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/reduced_model_data + +FCST_EXTRACT_TILES_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/reduced_model_data +FCST_EXTRACT_TILES_INPUT_TEMPLATE = {init?fmt=%Y%m%d}/gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.grb2 + +OBS_EXTRACT_TILES_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/reduced_model_data +OBS_EXTRACT_TILES_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/gfs_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.grb2 + +EXTRACT_TILES_OUTPUT_DIR = {OUTPUT_BASE}/extract_tiles +FCST_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/FCST_TILE_F{lead?fmt=%3H}_gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc +OBS_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/OBS_TILE_F{lead?fmt=%3H}_gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc + +EXTRACT_TILES_SKIP_IF_OUTPUT_EXISTS = yes + + +FCST_SERIES_ANALYSIS_INPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} +FCST_SERIES_ANALYSIS_INPUT_TEMPLATE = {FCST_EXTRACT_TILES_OUTPUT_TEMPLATE} + +OBS_SERIES_ANALYSIS_INPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} +OBS_SERIES_ANALYSIS_INPUT_TEMPLATE = {OBS_EXTRACT_TILES_OUTPUT_TEMPLATE} + +SERIES_ANALYSIS_TC_STAT_INPUT_DIR = {SERIES_ANALYSIS_OUTPUT_DIR} +SERIES_ANALYSIS_TC_STAT_INPUT_TEMPLATE = {TC_STAT_DUMP_ROW_TEMPLATE} + +SERIES_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/series_analysis_lead +SERIES_ANALYSIS_OUTPUT_TEMPLATE = {label}/series_F{fcst_beg}_to_F{fcst_end}_{fcst_name}_{fcst_level}.nc + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + +MODEL = GFSO + +BOTH_VAR1_NAME = TMP +BOTH_VAR1_LEVELS = Z2 + + +### +# TCPairs Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcpairs +### TC_PAIRS_SKIP_LEAD_SEQ = True -# A list of times to include, in format YYYYMMDD_hh TC_PAIRS_INIT_INCLUDE = - -# A list of times to exclude, in format YYYYMMDD_hh TC_PAIRS_INIT_EXCLUDE = -# -# Specify model valid time window in format YYYYMM[DD[_hh]]. Only tracks -# that fall within the valid time window will -# be used. -# TC_PAIRS_VALID_BEG = TC_PAIRS_VALID_END = -# -# Run MET tc_pairs by indicating the top-level directories for the A-deck -# and B-deck files. Set to 'yes' to run using top-level directories, 'no' -# if you want to run tc_pairs on files paired by the wrapper. -TC_PAIRS_READ_ALL_FILES = no - -# List of models to be used (white space or comma separated) eg: DSHP, LGEM, HWRF -# If no models are listed, then process all models in the input file(s). -MODEL = GFSO - -# List of storm ids of interest (space or comma separated) e.g.: AL112012, AL122012 -# If no storm ids are listed, then process all storm ids in the input file(s). TC_PAIRS_STORM_ID = - -# Basins (of origin/region). Indicate with space or comma-separated list of regions, eg. AL: for North Atlantic, -# WP: Western North Pacific, CP: Central North Pacific, SH: Southern Hemisphere, IO: North Indian Ocean, LS: Southern -# Hemisphere TC_PAIRS_BASIN = - -# Cyclone, a space or comma-separated list of cyclone numbers. If left empty, all cyclones will be used. TC_PAIRS_CYCLONE = - -# Storm name, a space or comma-separated list of storm names to evaluate. If left empty, all storms will be used. TC_PAIRS_STORM_NAME = -# DLAND file, the full path of the file that contains the gridded representation of the -# minimum distance from land. TC_PAIRS_DLAND_FILE = {MET_INSTALL_DIR}/share/met/tc_data/dland_global_tenth_degree.nc TC_PAIRS_REFORMAT_DECK = yes @@ -94,40 +132,16 @@ TC_PAIRS_REFORMAT_TYPE = SBU TC_PAIRS_MISSING_VAL_TO_REPLACE = -99 TC_PAIRS_MISSING_VAL = -9999 -# overwrite modified track data (non-ATCF to ATCF format) -TC_PAIRS_SKIP_IF_REFORMAT_EXISTS = yes - -# overwrite tc_pairs output -TC_PAIRS_SKIP_IF_OUTPUT_EXISTS = yes - -####### -# TCStat Configurations -####### -# IMPORTANT Refer to the README_TC for details on setting up analysis -# jobs (located in {MET_INSTALL_DIR}/share/met/config -# Separate each option and value with whitespace, and each job with a whitespace. -# No whitespace within arithmetic expressions or lists of items -# (e.g. -by AMSLP,AMODEL,LEAD -column '(AMAX_WIND-BMAX_WIND)') -# Enclose your arithmetic expressions with '' and separate each job -# by whitespace: -# -job filter -dump_row /path/to, -job summary -line_type TCMPR -column 'ABS(AMAX_WIND-BMAX_WIND)' -out {OUTPUT_BASE}/tc_stat/file.tcst +### +# TCStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcstat +### TC_STAT_JOB_ARGS = -job filter -basin ML -dump_row {TC_STAT_OUTPUT_DIR}/{TC_STAT_DUMP_ROW_TEMPLATE} -# Specify whether only those track points common to both the ADECK and BDECK -# tracks should be written out. This is only used when explicitly calling -# TC_STAT in the PROCESS_LIST. This is not used in this use case, so setting -# it to either false or true has no impact. TC_STAT_MATCH_POINTS = true -# These all map to the options in the default TC-Stat config file, except these -# are pre-pended with TC_STAT to avoid clashing with any other similarly -# named options from other MET tools (eg TC_STAT_AMODEL corresponds to the -# amodel option in the default MET tc-stat config file, whereas AMODEL -# corresponds to the amodel option in the MET tc-pairs config file). - -# Stratify by these columns: TC_STAT_AMODEL = TC_STAT_BMODEL = TC_STAT_DESC = @@ -136,17 +150,12 @@ TC_STAT_BASIN = TC_STAT_CYCLONE = TC_STAT_STORM_NAME = -# Stratify by init times via a comma-separate list of init times to -# include or exclude. Time format defined as YYYYMMDD_HH or YYYYMMDD_HHmmss -#TC_STAT_INIT_BEG = 20141213 -#TC_STAT_INIT_END = 20141220 TC_STAT_INIT_BEG = TC_STAT_INIT_END = TC_STAT_INIT_INCLUDE = {init?fmt=%Y%m%d_%H} TC_STAT_INIT_EXCLUDE = TC_STAT_INIT_HOUR = -# Stratify by valid times via a comma-separate list of valid times to -# include or exclude. Time format defined as YYYYMMDD_HH or YYYYMMDD_HHmmss + TC_STAT_VALID_BEG = TC_STAT_VALID_END = TC_STAT_VALID_INCLUDE = @@ -155,189 +164,87 @@ TC_STAT_VALID_HOUR = TC_STAT_LEAD_REQ = TC_STAT_INIT_MASK = TC_STAT_VALID_MASK = -# Stratify by the valid time and lead time via comma-separated list of -# times in format HH[MMSS] + TC_STAT_VALID_HOUR = TC_STAT_LEAD = -# Stratify over the watch_warn column in the tcst file. Setting this to -# 'ALL' will match HUWARN, HUWATCH, TSWARN, TSWATCH TC_STAT_TRACK_WATCH_WARN = -# Stratify by applying thresholds to numeric data columns. Specify with -# comma-separated list of column names and thresholds to be applied. -# The length of TC_STAT_COLUMN_THRESH_NAME should be the same as -# TC_STAT_COLUMN_THRESH_VAL. TC_STAT_COLUMN_THRESH_NAME = TC_STAT_COLUMN_THRESH_VAL = -# Stratify by a list of comma-separated columns names and values corresponding -# to non-numeric data columns of the values of interest. TC_STAT_COLUMN_STR_NAME = TC_STAT_COLUMN_STR_VAL = -# Stratify by applying thresholds to numeric data columns only when lead=0. -# If lead=0 and the value does not meet the threshold, discard the entire -# track. The length of TC_STAT_INIT_THRESH_NAME must equal the length of -# TC_STAT_INIT_THRESH_VAL. TC_STAT_INIT_THRESH_NAME = TC_STAT_INIT_THRESH_VAL = -# Stratify by applying thresholds to numeric data columns only when lead = 0. -# If lead = 0 but the value doesn't meet the threshold, discard the entire -# track. TC_STAT_INIT_STR_NAME = TC_STAT_INIT_STR_VAL = -# Excludes any points where distance to land is <=0. When set to TRUE, once land -# is encountered, the remainder of the forecast track is NOT used for the -# verification, even if the track moves back over water. TC_STAT_WATER_ONLY = -# TRUE or FALSE. To specify whether only those track points occurring near -# landfall should be retained. Landfall is the last bmodel track point before -# the distance to land switches from water to land. TC_STAT_LANDFALL = -# Define the landfall retention window, which is defined as the hours offset -# from the time of landfall. Format is in HH[MMSS]. Default TC_STAT_LANDFALL_BEG -# is set to -24, and TC_STAT_LANDFALL_END is set to 00 TC_STAT_LANDFALL_BEG = TC_STAT_LANDFALL_END = -####### -# ExtractTiles Configurations -####### -# Constants used in creating the tile grid, used by extract tiles +### +# ExtractTiles Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#extracttiles +### + EXTRACT_TILES_NLAT = 60 EXTRACT_TILES_NLON = 60 -# Resolution of data in degrees, used by extract tiles EXTRACT_TILES_DLAT = 0.5 EXTRACT_TILES_DLON = 0.5 -# Degrees to subtract from the center lat and lon to -# calculate the lower left lat (lat_ll) and lower -# left lon (lon_ll) for a grid that is 2n X 2m, -# where n = EXTRACT_TILES_LAT_ADJ degrees and m = EXTRACT_TILES_LON_ADJ degrees. -# For this case, where n=15 and m=15, this results -# in a 30 deg X 30 deg grid. Used by extract tiles EXTRACT_TILES_LON_ADJ = 15 EXTRACT_TILES_LAT_ADJ = 15 -# OVERWRITE OPTIONS -# Skip writing filter files if they already exist. -# Set to yes if you want to skip processing existing files -# Set to no if you want to override existing files -EXTRACT_TILES_SKIP_IF_OUTPUT_EXISTS = yes + +### +# TCStat (for SeriesAnalysis) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcstat +### # Settings specific to the TCStat(for_series_analysis) process that was set # in the PROCESS_LIST. Any TC_STAT_* variable not set in this section will use # the value set outside of this section [for_series_analysis] + TC_STAT_JOB_ARGS = -job filter -init_beg {INIT_BEG} -init_end {INIT_END} -dump_row {TC_STAT_OUTPUT_DIR}/{TC_STAT_DUMP_ROW_TEMPLATE} TC_STAT_OUTPUT_DIR = {SERIES_ANALYSIS_OUTPUT_DIR} TC_STAT_LOOKIN_DIR = {EXTRACT_TILES_OUTPUT_DIR} + +### +# SeriesAnalysis Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#seriesanalysis +### + [config] -# PLOTTING Relevant to series analysis plots. -# By default, background map is turned off. Set -# to no to turn of plotting of background map. SERIES_ANALYSIS_BACKGROUND_MAP = no SERIES_ANALYSIS_RUNTIME_FREQ = RUN_ONCE_PER_LEAD SERIES_ANALYSIS_RUN_ONCE_PER_STORM_ID = False -# set the regrid dictionary item to_grid in the SeriesAnalysis MET config file SERIES_ANALYSIS_REGRID_TO_GRID = FCST SERIES_ANALYSIS_REGRID_METHOD = FORCE -#SERIES_ANALYSIS_REGRID_WIDTH = -#SERIES_ANALYSIS_REGRID_VLD_THRESH = -#SERIES_ANALYSIS_REGRID_SHAPE = -## NOTE: "TOTAL" is a REQUIRED cnt statistic used by the series analysis scripts SERIES_ANALYSIS_STAT_LIST = TOTAL, FBAR, OBAR, ME SERIES_ANALYSIS_BLOCK_SIZE = 4000 -# set to True to add the -paired flag to the SeriesAnalysis command SERIES_ANALYSIS_IS_PAIRED = True -# If True/yes, run plot_data_plane on output from Series-Analysis to generate -# images for each stat item listed in SERIES_ANALYSIS_STAT_LIST SERIES_ANALYSIS_GENERATE_PLOTS = yes -# If True/yes, run convert on output from Series-Analysis to generate -# a gif using images in groups of name/level/stat SERIES_ANALYSIS_GENERATE_ANIMATIONS = yes PLOT_DATA_PLANE_TITLE = {MODEL} series_F{fcst_beg}_to_F{fcst_end} Forecasts{nseries}, {stat} for {fcst_name} {fcst_level} - -# FILENAME TEMPLATES -# -[filename_templates] -# Define the format of the filenames -TC_PAIRS_ADECK_TEMPLATE = {date?fmt=%Y%m}/a{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} -TC_PAIRS_BDECK_TEMPLATE = {date?fmt=%Y%m}/b{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} -TC_PAIRS_OUTPUT_TEMPLATE = {date?fmt=%Y%m}/{basin?fmt=%s}q{date?fmt=%Y%m%d%H}.gfso.{cyclone?fmt=%s} - -TC_STAT_DUMP_ROW_TEMPLATE = filter_{init?fmt=%Y%m%d_%H}.tcst - -EXTRACT_TILES_TC_STAT_INPUT_TEMPLATE = {TC_STAT_DUMP_ROW_TEMPLATE} -FCST_EXTRACT_TILES_INPUT_TEMPLATE = {init?fmt=%Y%m%d}/gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.grb2 -OBS_EXTRACT_TILES_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/gfs_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.grb2 - -FCST_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/FCST_TILE_F{lead?fmt=%3H}_gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc -OBS_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/OBS_TILE_F{lead?fmt=%3H}_gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc - -FCST_SERIES_ANALYSIS_INPUT_TEMPLATE = {FCST_EXTRACT_TILES_OUTPUT_TEMPLATE} -OBS_SERIES_ANALYSIS_INPUT_TEMPLATE = {OBS_EXTRACT_TILES_OUTPUT_TEMPLATE} - -SERIES_ANALYSIS_TC_STAT_INPUT_TEMPLATE = {TC_STAT_DUMP_ROW_TEMPLATE} - -# Template to look for climatology mean input to SeriesAnalysis relative to SERIES_ANALYSIS_CLIMO_MEAN_INPUT_DIR -# Not used in this example -SERIES_ANALYSIS_CLIMO_MEAN_INPUT_TEMPLATE = - -# Template to look for climatology standard deviation input to SeriesAnalysis relative to SERIES_ANALYSIS_CLIMO_STDEV_INPUT_DIR -# Not used in this example -SERIES_ANALYSIS_CLIMO_STDEV_INPUT_TEMPLATE = - -SERIES_ANALYSIS_OUTPUT_TEMPLATE = {label}/series_F{fcst_beg}_to_F{fcst_end}_{fcst_name}_{fcst_level}.nc - - -# -# DIRECTORIES -# -[dir] -TC_PAIRS_ADECK_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/track_data -TC_PAIRS_BDECK_INPUT_DIR = {TC_PAIRS_ADECK_INPUT_DIR} -TC_PAIRS_REFORMAT_DIR = {OUTPUT_BASE}/track_data_atcf -TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs - -TC_STAT_LOOKIN_DIR = {TC_PAIRS_OUTPUT_DIR} -TC_STAT_OUTPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} - -EXTRACT_TILES_TC_STAT_INPUT_DIR = {TC_STAT_OUTPUT_DIR} -EXTRACT_TILES_GRID_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/reduced_model_data -FCST_EXTRACT_TILES_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/reduced_model_data -OBS_EXTRACT_TILES_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/reduced_model_data -EXTRACT_TILES_OUTPUT_DIR = {OUTPUT_BASE}/extract_tiles - -FCST_SERIES_ANALYSIS_INPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} -OBS_SERIES_ANALYSIS_INPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} -SERIES_ANALYSIS_TC_STAT_INPUT_DIR = {SERIES_ANALYSIS_OUTPUT_DIR} - -# directory containing climatology mean input to SeriesAnalysis -# Not used in this example -SERIES_ANALYSIS_CLIMO_MEAN_INPUT_DIR = - -# directory containing climatology standard deviation input to SeriesAnalysis -# Not used in this example -SERIES_ANALYSIS_CLIMO_STDEV_INPUT_DIR = - -SERIES_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/series_analysis_lead diff --git a/parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.conf b/parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.conf index 7076a22a8b..4074f8d415 100644 --- a/parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.conf +++ b/parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.conf @@ -1,37 +1,116 @@ -# -# CONFIGURATION -# [config] -# Loop over each process in the process list (set in PROCESS_LIST) for all times in the time window of interest. -LOOP_ORDER = processes +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.html -#Configuration files -TC_PAIRS_CONFIG_FILE = {PARM_BASE}/met_config/TCPairsConfig_wrapped +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -SERIES_ANALYSIS_CONFIG_FILE = {PARM_BASE}/met_config/SeriesAnalysisConfig_wrapped +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### PROCESS_LIST = PyEmbedIngest, TCPairs, TCStat, ExtractTiles, TCStat(for_series_analysis), SeriesAnalysis -# The init time begin and end times, increment -# Looping - options are INIT, VALID, RETRO, and REALTIME -LOOP_BY = INIT -# Format of INIT_BEG and INIT_END -INIT_TIME_FMT = %Y%m%d%H +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Start time for METplus run +LOOP_BY = INIT +INIT_TIME_FMT = %Y%m%d%H INIT_BEG = 2019083000 - -# End time for METplus run INIT_END = 2019083023 +INIT_INCREMENT = 21600 + +LEAD_SEQ = 90, 96, 102, 108, 114 + +SERIES_ANALYSIS_RUNTIME_FREQ = RUN_ONCE_PER_LEAD + +SERIES_ANALYSIS_RUN_ONCE_PER_STORM_ID = False + +LOOP_ORDER = processes + + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +PY_EMBED_INGEST_1_OUTPUT_DIR = {OUTPUT_BASE}/py_embed_out +PY_EMBED_INGEST_1_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d}/gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc + +PY_EMBED_INGEST_2_OUTPUT_DIR = {PY_EMBED_INGEST_1_OUTPUT_DIR} +PY_EMBED_INGEST_2_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/gfs_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.nc + + +TC_PAIRS_ADECK_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/dorian_data/track_data +TC_PAIRS_ADECK_TEMPLATE = a{basin?fmt=%s}052019.dat + +TC_PAIRS_BDECK_INPUT_DIR = {TC_PAIRS_ADECK_INPUT_DIR} +TC_PAIRS_BDECK_TEMPLATE = b{basin?fmt=%s}052019.dat + +TC_PAIRS_REFORMAT_DIR = {OUTPUT_BASE}/track_data_atcf +TC_PAIRS_SKIP_IF_REFORMAT_EXISTS = no + +TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs +TC_PAIRS_OUTPUT_TEMPLATE = {date?fmt=%Y%m}/{basin?fmt=%s}q{date?fmt=%Y%m%d%H}.dorian +TC_PAIRS_SKIP_IF_OUTPUT_EXISTS = no + + +TC_STAT_LOOKIN_DIR = {TC_PAIRS_OUTPUT_DIR} + +TC_STAT_OUTPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} +TC_STAT_DUMP_ROW_TEMPLATE = filter_{init?fmt=%Y%m%d_%H}.tcst + + +EXTRACT_TILES_TC_STAT_INPUT_DIR = {TC_STAT_OUTPUT_DIR} +EXTRACT_TILES_TC_STAT_INPUT_TEMPLATE = {TC_STAT_DUMP_ROW_TEMPLATE} -# This is the step-size. Increment in seconds from the begin time to the end time -INIT_INCREMENT = 21600 ;; set to every 6 hours=21600 seconds +EXTRACT_TILES_GRID_INPUT_DIR = {PY_EMBED_INGEST_1_OUTPUT_DIR} +FCST_EXTRACT_TILES_INPUT_DIR = {PY_EMBED_INGEST_1_OUTPUT_DIR} +FCST_EXTRACT_TILES_INPUT_TEMPLATE = {init?fmt=%Y%m%d}/gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc + +OBS_EXTRACT_TILES_INPUT_DIR = {PY_EMBED_INGEST_1_OUTPUT_DIR} +OBS_EXTRACT_TILES_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/gfs_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.nc + +EXTRACT_TILES_OUTPUT_DIR = {OUTPUT_BASE}/extract_tiles +FCST_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/FCST_TILE_F{lead?fmt=%3H}_{MODEL}_gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc +OBS_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/OBS_TILE_F{lead?fmt=%3H}_{MODEL}_gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc +EXTRACT_TILES_SKIP_IF_OUTPUT_EXISTS = no + + +FCST_SERIES_ANALYSIS_INPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} +FCST_SERIES_ANALYSIS_INPUT_TEMPLATE = {FCST_EXTRACT_TILES_OUTPUT_TEMPLATE} + +OBS_SERIES_ANALYSIS_INPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} +OBS_SERIES_ANALYSIS_INPUT_TEMPLATE = {OBS_EXTRACT_TILES_OUTPUT_TEMPLATE} + +SERIES_ANALYSIS_TC_STAT_INPUT_DIR = {SERIES_ANALYSIS_OUTPUT_DIR} +SERIES_ANALYSIS_TC_STAT_INPUT_TEMPLATE = {TC_STAT_DUMP_ROW_TEMPLATE} + +SERIES_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/series_analysis_lead +SERIES_ANALYSIS_OUTPUT_TEMPLATE = {label}/series_F{fcst_beg}_{fcst_name}_{fcst_level}.nc + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### # Used by extract tiles and series analysis to define the records of # interest to be retrieved from the grib2 file +MODEL = GFSO + BOTH_VAR1_NAME = ivt BOTH_VAR1_LEVELS = Surface @@ -41,109 +120,70 @@ BOTH_VAR2_LEVELS = Surface BOTH_VAR3_NAME = sept BOTH_VAR3_LEVELS = Surface -LEAD_SEQ = 90, 96, 102, 108, 114 -##### -### PYEMBED INGEST -##### +### +# PyEmbedIngest Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pyembedingest +### + +CONFIG_DIR={PARM_BASE}/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics +MODEL_DIR = {INPUT_BASE}/model_applications/medium_range/dorian_data/model_data # 1st INGEST INSTANCE: Forecast -# python script with optional arguments to run for 1st ingest instance + # IVT PY_EMBED_INGEST_1_SCRIPT_1 = {CONFIG_DIR}/gfs_ivt_fcst.py {MODEL_DIR}/{init?fmt=%Y%m%d}/gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.grb2 -# output variable name PY_EMBED_INGEST_1_OUTPUT_FIELD_NAME_1 = ivt # PV -# python script with optional arguments to run for 1st ingest instance PY_EMBED_INGEST_1_SCRIPT_2 = {CONFIG_DIR}/gfs_pv_fcst.py {MODEL_DIR}/{init?fmt=%Y%m%d}/gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.grb2 -# output variable name PY_EMBED_INGEST_1_OUTPUT_FIELD_NAME_2 = pv # SEPT -# python script with optional arguments to run for 1st ingest instance PY_EMBED_INGEST_1_SCRIPT_3 = {CONFIG_DIR}/gfs_sept_fcst.py {MODEL_DIR}/{init?fmt=%Y%m%d}/gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.grb2 -# output variable name PY_EMBED_INGEST_1_OUTPUT_FIELD_NAME_3 = sept -# type of python input to expect for 1st ingest instance -# valid options: NUMPY, XARRAY PY_EMBED_INGEST_1_TYPE = NUMPY -# output grid for 1st ingest instance. Can be a grid definition or file path PY_EMBED_INGEST_1_OUTPUT_GRID = {MODEL_DIR}/{init?fmt=%Y%m%d}/gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.grb2 # 2nd INGEST INSTANCE: Analysis + # IVT -# python script with optional arguments to run for 2nd ingest instance PY_EMBED_INGEST_2_SCRIPT_1 = {CONFIG_DIR}/gfs_ivt_analysis.py {MODEL_DIR}/{valid?fmt=%Y%m%d}/gfs_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.grb2 -# output variable name PY_EMBED_INGEST_2_OUTPUT_FIELD_NAME_1 = ivt # PV -# python script with optional arguments to run for 2nd ingest instance PY_EMBED_INGEST_2_SCRIPT_2 = {CONFIG_DIR}/gfs_pv_analysis.py {MODEL_DIR}/{valid?fmt=%Y%m%d}/gfs_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.grb2 -# output variable name PY_EMBED_INGEST_2_OUTPUT_FIELD_NAME_2 = pv # SEPT -# python script with optional arguments to run for 2nd ingest instance PY_EMBED_INGEST_2_SCRIPT_3 = {CONFIG_DIR}/gfs_sept_analysis.py {MODEL_DIR}/{valid?fmt=%Y%m%d}/gfs_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.grb2 -# output variable name PY_EMBED_INGEST_2_OUTPUT_FIELD_NAME_3 = sept -# type of python input to expect for 2nd ingest instance -# valid options: NUMPY, XARRAY PY_EMBED_INGEST_2_TYPE = NUMPY -# output grid for 2nd ingest instance. Can be a grid definition or file path PY_EMBED_INGEST_2_OUTPUT_GRID = {MODEL_DIR}/{valid?fmt=%Y%m%d}/gfs_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.grb2 -####### -# TCPairs Configurations -####### -# only run TCPairs once for the init time, not for each forecast lead +### +# TCPairs Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcpairs +### + TC_PAIRS_SKIP_LEAD_SEQ = True -# A list of times to include, in format YYYYMMDD_hh TC_PAIRS_INIT_INCLUDE = - -# A list of times to exclude, in format YYYYMMDD_hh TC_PAIRS_INIT_EXCLUDE = -# Specify model valid time window in format YYYYMM[DD[_hh]]. Only tracks -# that fall within the valid time window will be used. TC_PAIRS_VALID_BEG = TC_PAIRS_VALID_END = -# -# Run MET tc_pairs by indicating the top-level directories for the A-deck -# and B-deck files. Set to 'yes' to run using top-level directories, 'no' -# if you want to run tc_pairs on files paired by the wrapper. -TC_PAIRS_READ_ALL_FILES = no - -# List of models to be used (white space or comma separated) eg: DSHP, LGEM, HWRF -# If no models are listed, then process all models in the input file(s). -MODEL = GFSO - -# List of storm ids of interest (space or comma separated) e.g.: AL112012, AL122012 -# If no storm ids are listed, then process all storm ids in the input file(s). TC_PAIRS_STORM_ID = - -# Basins (of origin/region). Indicate with space or comma-separated list of regions, eg. AL: for North Atlantic, -# WP: Western North Pacific, CP: Central North Pacific, SH: Southern Hemisphere, IO: North Indian Ocean, LS: Southern -# Hemisphere TC_PAIRS_BASIN = - -# Cyclone, a space or comma-separated list of cyclone numbers. If left empty, all cyclones will be used. TC_PAIRS_CYCLONE = - -# Storm name, a space or comma-separated list of storm names to evaluate. If left empty, all storms will be used. TC_PAIRS_STORM_NAME = -# DLAND file, the full path of the file that contains the gridded representation of the -# minimum distance from land. TC_PAIRS_DLAND_FILE = {MET_INSTALL_DIR}/share/met/tc_data/dland_global_tenth_degree.nc TC_PAIRS_REFORMAT_DECK = no @@ -152,36 +192,16 @@ TC_PAIRS_REFORMAT_TYPE = SBU TC_PAIRS_MISSING_VAL_TO_REPLACE = -99 TC_PAIRS_MISSING_VAL = -9999 -# overwrite modified track data (non-ATCF to ATCF format) -TC_PAIRS_SKIP_IF_REFORMAT_EXISTS = no - -# overwrite tc_pairs output -TC_PAIRS_SKIP_IF_OUTPUT_EXISTS = no - -####### -# TCStat Configurations -####### - -# IMPORTANT Refer to the README_TC for details on setting up analysis -# jobs (located in {MET_INSTALL_DIR}/share/met/config -# Separate each option and value with whitespace, and each job with a whitespace. -# No whitespace within arithmetic expressions or lists of items -# (e.g. -by AMSLP,AMODEL,LEAD -column '(AMAX_WIND-BMAX_WIND)') -# Enclose your arithmetic expressions with '' and separate each job -# by whitespace: -# -job filter -dump_row /path/to, -job summary -line_type TCMPR -column 'ABS(AMAX_WIND-BMAX_WIND)' -out {OUTPUT_BASE}/tc_stat/file.tcst +### +# TCStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcstat +### TC_STAT_JOB_ARGS = -job filter -basin AL -dump_row {TC_STAT_OUTPUT_DIR}/{TC_STAT_DUMP_ROW_TEMPLATE} - -# Specify whether only those track points common to both the ADECK and BDECK -# tracks should be written out. This is only used when explicitly calling -# TC_STAT in the PROCESS_LIST. This is not used in this use case, so setting -# it to either false or true has no impact. TC_STAT_MATCH_POINTS = true -# Stratify by these columns: TC_STAT_AMODEL = {MODEL} TC_STAT_BMODEL = TC_STAT_DESC = @@ -190,15 +210,12 @@ TC_STAT_BASIN = TC_STAT_CYCLONE = TC_STAT_STORM_NAME = -# Stratify by init times via a comma-separate list of init times to -# include or exclude. Time format defined as YYYYMMDD_HH or YYYYMMDD_HHmmss TC_STAT_INIT_BEG = TC_STAT_INIT_END = TC_STAT_INIT_INCLUDE = {init?fmt=%Y%m%d_%H} TC_STAT_INIT_EXCLUDE = -TC_STAT_INIT_HOUR = -# Stratify by valid times via a comma-separate list of valid times to -# include or exclude. Time format defined as YYYYMMDD_HH or YYYYMMDD_HHmmss +TC_STAT_INIT_HOUR = + TC_STAT_VALID_BEG = TC_STAT_VALID_END = TC_STAT_VALID_INCLUDE = @@ -207,206 +224,90 @@ TC_STAT_VALID_HOUR = TC_STAT_LEAD_REQ = TC_STAT_INIT_MASK = TC_STAT_VALID_MASK = -# Stratify by the valid time and lead time via comma-separated list of -# times in format HH[MMSS] + TC_STAT_VALID_HOUR = TC_STAT_LEAD = -# Stratify over the watch_warn column in the tcst file. Setting this to -# 'ALL' will match HUWARN, HUWATCH, TSWARN, TSWATCH TC_STAT_TRACK_WATCH_WARN = -# Stratify by applying thresholds to numeric data columns. Specify with -# comma-separated list of column names and thresholds to be applied. -# The length of TC_STAT_COLUMN_THRESH_NAME should be the same as -# TC_STAT_COLUMN_THRESH_VAL. TC_STAT_COLUMN_THRESH_NAME = TC_STAT_COLUMN_THRESH_VAL = -# Stratify by a list of comma-separated columns names and values corresponding -# to non-numeric data columns of the values of interest. TC_STAT_COLUMN_STR_NAME = TC_STAT_COLUMN_STR_VAL = -# Stratify by applying thresholds to numeric data columns only when lead=0. -# If lead=0 and the value does not meet the threshold, discard the entire -# track. The length of TC_STAT_INIT_THRESH_NAME must equal the length of -# TC_STAT_INIT_THRESH_VAL. TC_STAT_INIT_THRESH_NAME = TC_STAT_INIT_THRESH_VAL = -# Stratify by applying thresholds to numeric data columns only when lead = 0. -# If lead = 0 but the value doesn't meet the threshold, discard the entire -# track. TC_STAT_INIT_STR_NAME = TC_STAT_INIT_STR_VAL = -# Excludes any points where distance to land is <=0. When set to TRUE, once land -# is encountered, the remainder of the forecast track is NOT used for the -# verification, even if the track moves back over water. TC_STAT_WATER_ONLY = -# TRUE or FALSE. To specify whether only those track points occurring near -# landfall should be retained. Landfall is the last bmodel track point before -# the distance to land switches from water to land. TC_STAT_LANDFALL = -# Define the landfall retention window, which is defined as the hours offset -# from the time of landfall. Format is in HH[MMSS]. Default TC_STAT_LANDFALL_BEG -# is set to -24, and TC_STAT_LANDFALL_END is set to 00 TC_STAT_LANDFALL_BEG = TC_STAT_LANDFALL_END = -# Constants used in creating the tile grid, used by extract tiles +### +# ExtractTiles Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#extracttiles +### + EXTRACT_TILES_NLAT = 60 EXTRACT_TILES_NLON = 60 -# Resolution of data in degrees, used by extract tiles EXTRACT_TILES_DLAT = 0.5 EXTRACT_TILES_DLON = 0.5 -# Degrees to subtract from the center lat and lon to -# calculate the lower left lat (lat_ll) and lower -# left lon (lon_ll) for a grid that is 2n X 2m, -# where n = EXTRACT_TILES_LAT_ADJ degrees and m = EXTRACT_TILES_LON_ADJ degrees. -# For this case, where n=15 and m=15, this results -# in a 30 deg X 30 deg grid. Used by extract tiles EXTRACT_TILES_LON_ADJ = 15 EXTRACT_TILES_LAT_ADJ = 15 -# OVERWRITE OPTIONS -# Skip writing filter files if they already exist. -# Set to yes if you want to skip processing existing files -# Set to no if you want to override existing files -EXTRACT_TILES_SKIP_IF_OUTPUT_EXISTS = no + +### +# TCStat (for SeriesAnalysis) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcstat +### # Settings specific to the TCStat(for_series_analysis) process that was set # in the PROCESS_LIST. Any TC_STAT_* variable not set in this section will use # the value set outside of this section + [for_series_analysis] + TC_STAT_JOB_ARGS = -job filter -init_beg {INIT_BEG} -init_end {INIT_END} -dump_row {TC_STAT_OUTPUT_DIR}/{TC_STAT_DUMP_ROW_TEMPLATE} TC_STAT_OUTPUT_DIR = {SERIES_ANALYSIS_OUTPUT_DIR} TC_STAT_LOOKIN_DIR = {EXTRACT_TILES_OUTPUT_DIR} + +### +# SeriesAnalysis Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#seriesanalysis +### + [config] -# set the regrid dictionary item to_grid in the SeriesAnalysis MET config file SERIES_ANALYSIS_REGRID_TO_GRID = FCST SERIES_ANALYSIS_REGRID_METHOD = FORCE -#SERIES_ANALYSIS_REGRID_WIDTH = -#SERIES_ANALYSIS_REGRID_VLD_THRESH = -#SERIES_ANALYSIS_REGRID_SHAPE = -# NOTE: "TOTAL" is a REQUIRED cnt statistic used by the series analysis scripts SERIES_ANALYSIS_STAT_LIST = TOTAL, FBAR, OBAR, ME -# PLOTTING Relevant to series analysis plots. -# By default, background map is turned off. Set -# to no to turn of plotting of background map. SERIES_ANALYSIS_BACKGROUND_MAP = yes -SERIES_ANALYSIS_RUNTIME_FREQ = RUN_ONCE_PER_LEAD - -SERIES_ANALYSIS_RUN_ONCE_PER_STORM_ID = False - SERIES_ANALYSIS_BLOCK_SIZE = 4000 -# set to True to add the -paired flag to the SeriesAnalysis command SERIES_ANALYSIS_IS_PAIRED = True -# If True/yes, run plot_data_plane on output from Series-Analysis to generate -# images for each stat item listed in SERIES_ANALYSIS_STAT_LIST SERIES_ANALYSIS_GENERATE_PLOTS = yes - -# If True/yes, run convert on output from Series-Analysis to generate -# a gif using images in groups of name/level/stat SERIES_ANALYSIS_GENERATE_ANIMATIONS = yes PLOT_DATA_PLANE_TITLE = {MODEL} series_F{fcst_beg} Forecasts{nseries}, {stat} for {fcst_name} {fcst_level} -# -# FILENAME TEMPLATES -# -[filename_templates] -# Define the format of the filenames -PY_EMBED_INGEST_1_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d}/gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc -PY_EMBED_INGEST_2_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/gfs_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.nc - -TC_PAIRS_ADECK_TEMPLATE = a{basin?fmt=%s}052019.dat -TC_PAIRS_BDECK_TEMPLATE = b{basin?fmt=%s}052019.dat -TC_PAIRS_OUTPUT_TEMPLATE = {date?fmt=%Y%m}/{basin?fmt=%s}q{date?fmt=%Y%m%d%H}.dorian - -TC_STAT_DUMP_ROW_TEMPLATE = filter_{init?fmt=%Y%m%d_%H}.tcst - -EXTRACT_TILES_TC_STAT_INPUT_TEMPLATE = {TC_STAT_DUMP_ROW_TEMPLATE} -FCST_EXTRACT_TILES_INPUT_TEMPLATE = {init?fmt=%Y%m%d}/gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc -OBS_EXTRACT_TILES_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/gfs_4_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.nc - -FCST_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/FCST_TILE_F{lead?fmt=%3H}_{MODEL}_gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc -OBS_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/{storm_id}/OBS_TILE_F{lead?fmt=%3H}_{MODEL}_gfs_4_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc - -FCST_SERIES_ANALYSIS_INPUT_TEMPLATE = {FCST_EXTRACT_TILES_OUTPUT_TEMPLATE} -OBS_SERIES_ANALYSIS_INPUT_TEMPLATE = {OBS_EXTRACT_TILES_OUTPUT_TEMPLATE} - -SERIES_ANALYSIS_TC_STAT_INPUT_TEMPLATE = {TC_STAT_DUMP_ROW_TEMPLATE} - - -# Template to look for climatology mean input to SeriesAnalysis relative to SERIES_ANALYSIS_CLIMO_MEAN_INPUT_DIR -# Not used in this example -SERIES_ANALYSIS_CLIMO_MEAN_INPUT_TEMPLATE = - -# Template to look for climatology standard deviation input to SeriesAnalysis relative to SERIES_ANALYSIS_CLIMO_STDEV_INPUT_DIR -# Not used in this example -SERIES_ANALYSIS_CLIMO_STDEV_INPUT_TEMPLATE = - -SERIES_ANALYSIS_OUTPUT_TEMPLATE = {label}/series_F{fcst_beg}_{fcst_name}_{fcst_level}.nc -# -# DIRECTORIES -# -[dir] - -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics - -#Location of model data -MODEL_DIR = {INPUT_BASE}/model_applications/medium_range/dorian_data/model_data - - -PY_EMBED_INGEST_1_OUTPUT_DIR = {OUTPUT_BASE}/py_embed_out -PY_EMBED_INGEST_2_OUTPUT_DIR = {PY_EMBED_INGEST_1_OUTPUT_DIR} - -# track data, set to your data source -TC_PAIRS_ADECK_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/dorian_data/track_data -TC_PAIRS_BDECK_INPUT_DIR = {TC_PAIRS_ADECK_INPUT_DIR} -TC_PAIRS_REFORMAT_DIR = {OUTPUT_BASE}/track_data_atcf -TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs - -TC_STAT_LOOKIN_DIR = {TC_PAIRS_OUTPUT_DIR} -TC_STAT_OUTPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} - -EXTRACT_TILES_TC_STAT_INPUT_DIR = {TC_STAT_OUTPUT_DIR} -EXTRACT_TILES_GRID_INPUT_DIR = {PY_EMBED_INGEST_1_OUTPUT_DIR} -FCST_EXTRACT_TILES_INPUT_DIR = {PY_EMBED_INGEST_1_OUTPUT_DIR} -OBS_EXTRACT_TILES_INPUT_DIR = {PY_EMBED_INGEST_1_OUTPUT_DIR} -EXTRACT_TILES_OUTPUT_DIR = {OUTPUT_BASE}/extract_tiles - -FCST_SERIES_ANALYSIS_INPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} -OBS_SERIES_ANALYSIS_INPUT_DIR = {EXTRACT_TILES_OUTPUT_DIR} -SERIES_ANALYSIS_TC_STAT_INPUT_DIR = {SERIES_ANALYSIS_OUTPUT_DIR} - -# directory containing climatology mean input to SeriesAnalysis -# Not used in this example -SERIES_ANALYSIS_CLIMO_MEAN_INPUT_DIR = - -# directory containing climatology standard deviation input to SeriesAnalysis -# Not used in this example -SERIES_ANALYSIS_CLIMO_STDEV_INPUT_DIR = - -SERIES_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/series_analysis_lead [user_env_vars] + PV_LAYER_MIN_PRESSURE=100.0 PV_LAYER_MAX_PRESSURE=1000.0 IVT_LAYER_MIN_PRESSURE=100.0 diff --git a/parm/use_cases/model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index.conf b/parm/use_cases/model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index.conf index 4221e278e0..06d8309c22 100644 --- a/parm/use_cases/model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index.conf +++ b/parm/use_cases/model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index.conf @@ -1,58 +1,61 @@ [config] -# List of applications to run +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = UserScript -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Format of INIT_BEG and INIT_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 +LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match VALID_TIME_FMT INIT_BEG = 2020120812 - -# End time for METplus run - must match VALID_TIME_FMT INIT_END = 2020120812 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds INIT_INCREMENT = 12H -# 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 = -# 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 = processes - -# list of strings to loop over for each run time. -# value for each item can be referenced in filename templates with {custom?fmt=%s} USER_SCRIPT_CUSTOM_LOOP_LIST = nc USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_FOR_EACH -USER_SCRIPT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/diff_index +LOOP_ORDER = processes + + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### +USER_SCRIPT_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/diff_index USER_SCRIPT_INPUT_TEMPLATE = {USER_SCRIPT_INPUT_DIR}/wndspd_GEFS_NorthPac_5dy_30mem_{init?fmt=%Y%m%d%H}.npz USER_SCRIPT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/medium_range/diff_index + +### +# UserScript Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + USER_SCRIPT_COMMAND = {PARM_BASE}/use_cases/model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index/wind_difficulty_index.py @@ -79,4 +82,3 @@ DIFF_INDEX_UNITS = kn DIFF_INDEX_FIG_FMT = png DIFF_INDEX_FIG_BASENAME = {USER_SCRIPT_OUTPUT_DIR}/wndspd_GEFS_NorthPac_5dy_30mem_difficulty_index - diff --git a/parm/use_cases/model_applications/precipitation/EnsembleStat_fcstHRRRE_FcstOnly_NetCDF.conf b/parm/use_cases/model_applications/precipitation/EnsembleStat_fcstHRRRE_FcstOnly_NetCDF.conf index d0aa4031ef..2fa8f1af12 100644 --- a/parm/use_cases/model_applications/precipitation/EnsembleStat_fcstHRRRE_FcstOnly_NetCDF.conf +++ b/parm/use_cases/model_applications/precipitation/EnsembleStat_fcstHRRRE_FcstOnly_NetCDF.conf @@ -1,66 +1,74 @@ [config] -## Configuration-related settings such as the process list, begin and end times, etc. -PROCESS_LIST = EnsembleStat +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/precipitation/EnsembleStat_fcstHRRRE_FcstOnly_NetCDF.html -# time looping - options are INIT, VALID, RETRO, and REALTIME +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + +PROCESS_LIST = EnsembleStat + + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Format of INIT_BEG and INT_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 +LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT INIT_BEG=2019051912 - -# End time for METplus run - must match INIT_TIME_FMT -INIT_END=2019052000 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds +INIT_END=2019052000 INIT_INCREMENT=43200 -# 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 = 3,6,9,12 -# 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 = processes -# Name to identify model (forecast) data in output -MODEL = HRRRE -OBTYPE = ANALYS +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -ENSEMBLE_STAT_N_MEMBERS = 3 +FCST_ENSEMBLE_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/HRRRE/pcp_combine +FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = hrrrebegin_end_incr(1,3,1,2)_{init?fmt=%Y%m%d%H}f{lead?fmt=%HHH}_A03.nc + +ENSEMBLE_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation/EnsembleSTat_fcstHRRRE_FcstOnly_NetCDF/EnsembleStat +ENSEMBLE_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H%M} + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### ENS_VAR1_NAME = APCP_03 ENS_VAR1_LEVELS = "(*,*)" -# The MET ensemble_stat logging level -# 0 quiet to 5 loud, Verbosity setting for MET output, 2 is default. -# This takes precendence over the general MET logging level set in metplus_logging.conf -LOG_ENSEMBLE_STAT_VERBOSITY = 3 -# MET Configuration files for EnsembleSTat -ENSEMBLE_STAT_CONFIG_FILE = {CONFIG_DIR}/EnsembleStatConfig_wrapped +### +# EnsembleStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#ensemblestat +### -ENSEMBLE_STAT_ENS_THRESH = 0.5 +MODEL = HRRRE +OBTYPE = ANALYS + +ENSEMBLE_STAT_N_MEMBERS = 3 + +ENSEMBLE_STAT_ENS_THRESH = 0.5 ENSEMBLE_STAT_ENS_VLD_THRESH = 1.0 OBS_ENSEMBLE_STAT_WINDOW_BEGIN = -5400 @@ -82,27 +90,3 @@ ENSEMBLE_STAT_ENSEMBLE_FLAG_RANK = FALSE ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE ENSEMBLE_STAT_OUTPUT_PREFIX = APCP_03 - -[dir] - -CONFIG_DIR={PARM_BASE}/met_config - -# input and output directories for ensemble_stat -# Input File Directories, GRID_STAT and POINT_STAT -FCST_ENSEMBLE_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/HRRRE/pcp_combine - -# Ensemble stat output directory -ENSEMBLE_STAT_OUTPUT_DIR = {OUTPUT_BASE}/{MODEL}/ensemble - -ENSEMBLE_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/HRRRE/pcp_combine -ENSEMBLE_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation/EnsembleSTat_fcstHRRRE_FcstOnly_NetCDF/EnsembleStat - -[filename_templates] - -# the following template uses begin_end_incr() notation that expands to: -# hrrre01_{init?fmt=%Y%m%d%H}f{lead?fmt=%HHH}_A03.nc, -# hrrre02_{init?fmt=%Y%m%d%H}f{lead?fmt=%HHH}_A03.nc, -# hrrre03_{init?fmt=%Y%m%d%H}f{lead?fmt=%HHH}_A03.nc -FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = hrrrebegin_end_incr(1,3,1,2)_{init?fmt=%Y%m%d%H}f{lead?fmt=%HHH}_A03.nc - -ENSEMBLE_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H%M} diff --git a/parm/use_cases/model_applications/precipitation/EnsembleStat_fcstWOFS_obsWOFS.conf b/parm/use_cases/model_applications/precipitation/EnsembleStat_fcstWOFS_obsWOFS.conf index d6f843cfb5..ea682db012 100644 --- a/parm/use_cases/model_applications/precipitation/EnsembleStat_fcstWOFS_obsWOFS.conf +++ b/parm/use_cases/model_applications/precipitation/EnsembleStat_fcstWOFS_obsWOFS.conf @@ -1,105 +1,86 @@ -# pcp_combine hourly - [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/precipitation/EnsembleStat_fcstWOFS_obsWOFS.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + +PROCESS_LIST = PcpCombine, EnsembleStat, GridStat + + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = INIT -# INIT_TIME_FMT = %Y%m%d%H%M -# INIT_BEG = 202006151700 -# INIT_END = 202006151700 -# INIT_INCREMENT = 3600 -# -LEAD_SEQ = 1 -MODEL= WOFS -OBTYPE = MRMS_QPE +LEAD_SEQ = 1 -# Options are times, processes -# times = run all items in the PROCESS_LIST for a single initialization -# time, then repeat until all times have been evaluated. -# processes = run each item in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST. LOOP_ORDER = times -# List of applications to run -PROCESS_LIST = PcpCombine, EnsembleStat, GridStat -LOG_PCP_COMBINE_VERBOSITY = 3 -LOG_ENSEMBLE_STAT_VERBOSITY = 3 -LOG_GRID_STAT_VERBOSITY = 3 - -#### PCP COMBINE #### - -FCST_PCP_COMBINE_RUN = TRUE -FCST_PCP_COMBINE_INPUT_DATATYPE = GRIB -FCST_PCP_COMBINE_METHOD = USER_DEFINED -FCST_PCP_COMBINE_BUCKET_INTERVAL = 1 -FCST_PCP_COMBINE_INPUT_DATATYPE = GRIB -FCST_PCP_COMBINE_FIELD_NAME = APCP -FCST_PCP_COMBINE_INPUT_ACCUMS = 1 +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -PCP_COMBINE_SKIP_IF_OUTPUT_EXISTS = TRUE +# PCPCombine -PCP_COMBINE_CUSTOM_LOOP_LIST = 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18 +FCST_PCP_COMBINE_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/WOFS/ensemble +FCST_PCP_COMBINE_INPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M}/ENS_MEM_{custom?fmt=%s} -FCST_PCP_COMBINE_COMMAND = -sum 00000000_000000 1 {valid?fmt=%Y%m%d}_{valid?fmt=%H%M}00 1 -pcpdir {FCST_PCP_COMBINE_INPUT_DIR}/{FCST_PCP_COMBINE_INPUT_TEMPLATE} -pcprx wofs -field 'name="APCP";level="A1";' +FCST_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/{MODEL}/pcp_combine +FCST_PCP_COMBINE_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M}/ENS_MEM_{custom?fmt=%s}/wofs{custom?fmt=%s}_PCP_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_{valid?fmt=%H%M}_A1.nc -#### ENSEMBLE STAT #### +# EnsembleStat -ENSEMBLE_STAT_N_MEMBERS = 18 -ENSEMBLE_STAT_ENS_THRESH = 1.0 +FCST_ENSEMBLE_STAT_INPUT_DIR = {FCST_PCP_COMBINE_OUTPUT_DIR} +FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M}/ENS_MEM_??/wofs??_PCP_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_{valid?fmt=%H%M}_A1.nc -ENSEMBLE_STAT_REGRID_TO_GRID = FCST -ENSEMBLE_STAT_REGRID_METHOD = BUDGET -ENSEMBLE_STAT_REGRID_WIDTH = 2 -ENSEMBLE_STAT_REGRID_VLD_THRESH = 1.0 +OBS_ENSEMBLE_STAT_GRID_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/WOFS/OBS +OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M}/mrms_PCP_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_{valid?fmt=%H%M}_A1.nc -ENSEMBLE_STAT_NBRHD_PROB_WIDTH = 1, 3, 5, 7, 9 -ENSEMBLE_STAT_NBRHD_PROB_SHAPE = SQUARE -ENSEMBLE_STAT_NBRHD_PROB_VLD_THRESH = 1.0 +ENSEMBLE_STAT_OUTPUT_DIR = {OUTPUT_BASE}/{MODEL}/ensemble_stat +ENSEMBLE_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M} -ENSEMBLE_STAT_CONFIG_FILE = {PARM_BASE}/met_config/EnsembleStatConfig_wrapped +# GridStat -FCST_ENSEMBLE_STAT_INPUT_GRID_DATATYPE = NETCDF -OBS_ENSEMBLE_STAT_INPUT_GRID_DATATYPE = NETCDF +FCST_GRID_STAT_INPUT_DIR = {ENSEMBLE_STAT_OUTPUT_DIR} +FCST_GRID_STAT_INPUT_TEMPLATE = {ENSEMBLE_STAT_OUTPUT_TEMPLATE}/ensemble_stat_{MODEL}_PCP_{init?fmt=%H%M}_{lead?fmt=%H%M}00L_A1_{init?fmt=%Y%m%d}_{valid?fmt=%H%M}00V_ens.nc -ENSEMBLE_STAT_NMEP_SMOOTH_VLD_THRESH = 1.0 -ENSEMBLE_STAT_NMEP_SMOOTH_SHAPE = SQUARE -ENSEMBLE_STAT_NMEP_SMOOTH_METHOD = NEAREST -ENSEMBLE_STAT_NMEP_SMOOTH_WIDTH = 1 -#ENSEMBLE_STAT_NMEP_SMOOTH_GAUSSIAN_DX = 3 -#ENSEMBLE_STAT_NMEP_SMOOTH_GAUSSIAN_RADIUS = 3 +OBS_GRID_STAT_INPUT_DIR = {OBS_ENSEMBLE_STAT_GRID_INPUT_DIR} +OBS_GRID_STAT_INPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M}/mrms_PCP_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_{valid?fmt=%H%M}_A1.nc -ENSEMBLE_STAT_MESSAGE_TYPE = +GRID_STAT_VERIFICATION_MASK_TEMPLATE = {INPUT_BASE}/model_applications/precipitation/WOFS/domain/WOFS_domain_{init?fmt=%Y%m%d}.nc -ENSEMBLE_STAT_OUTPUT_FLAG_ECNT = STAT -ENSEMBLE_STAT_OUTPUT_FLAG_RPS = NONE -ENSEMBLE_STAT_OUTPUT_FLAG_RHIST = STAT -ENSEMBLE_STAT_OUTPUT_FLAG_PHIST = STAT -ENSEMBLE_STAT_OUTPUT_FLAG_ORANK = STAT -ENSEMBLE_STAT_OUTPUT_FLAG_SSVAR = STAT -ENSEMBLE_STAT_OUTPUT_FLAG_RELP = STAT +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/{MODEL}/grid_stat +GRID_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M}/ -ENSEMBLE_STAT_ENSEMBLE_FLAG_LATLON = TRUE -ENSEMBLE_STAT_ENSEMBLE_FLAG_MEAN = TRUE -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 = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_FREQUENCY = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_NEP = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_NMEP = TRUE -ENSEMBLE_STAT_ENSEMBLE_FLAG_RANK = TRUE -ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### -ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_PCP_{init?fmt=%H%M}_{lead?fmt=%H%M}00L_A1 +MODEL= WOFS +OBTYPE = MRMS_QPE FCST_ENSEMBLE_STAT_VAR1_NAME = APCP_01 FCST_ENSEMBLE_STAT_VAR1_LEVELS = "(*,*)" @@ -109,18 +90,6 @@ OBS_ENSEMBLE_STAT_VAR1_NAME = GaugeCorrQPE01H_01 OBS_ENSEMBLE_STAT_VAR1_LEVELS = "(*,*)" OBS_ENSEMBLE_STAT_VAR1_THRESH = {FCST_ENSEMBLE_STAT_VAR1_THRESH} -#### GRID STAT #### -# -GRID_STAT_REGRID_TO_GRID = FCST - -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - -FCST_GRID_STAT_INPUT_GRID_DATATYPE = NETCDF -OBS_GRID_STAT_INPUT_GRID_DATATYPE = NETCDF -GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE -GRID_STAT_NEIGHBORHOOD_WIDTH = 1, 3, 5 - - FCST_GRID_STAT_VAR1_NAME = APCP_01_A1_ENS_NMEP_ge12.7_NBRHD1_NEAREST1 FCST_GRID_STAT_VAR1_LEVELS = "(*,*)" FCST_GRID_STAT_VAR1_OPTIONS = prob = TRUE @@ -283,32 +252,93 @@ OBS_GRID_STAT_VAR18_NAME = GaugeCorrQPE01H_01 OBS_GRID_STAT_VAR18_LEVELS = {OBS_GRID_STAT_VAR1_LEVELS} OBS_GRID_STAT_VAR18_THRESH = >=50.8 -GRID_STAT_OUTPUT_PREFIX = {MODEL}_PCP_{init?fmt=%H%M}_A1 -[dir] -FCST_PCP_COMBINE_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/WOFS/ensemble -FCST_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/{MODEL}/pcp_combine +### +# PcpCombine Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### -FCST_ENSEMBLE_STAT_INPUT_DIR = {FCST_PCP_COMBINE_OUTPUT_DIR} -OBS_ENSEMBLE_STAT_GRID_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/WOFS/OBS -ENSEMBLE_STAT_OUTPUT_DIR = {OUTPUT_BASE}/{MODEL}/ensemble_stat +FCST_PCP_COMBINE_RUN = TRUE +FCST_PCP_COMBINE_INPUT_DATATYPE = GRIB +FCST_PCP_COMBINE_METHOD = USER_DEFINED +FCST_PCP_COMBINE_BUCKET_INTERVAL = 1 +FCST_PCP_COMBINE_INPUT_DATATYPE = GRIB +FCST_PCP_COMBINE_FIELD_NAME = APCP +FCST_PCP_COMBINE_INPUT_ACCUMS = 1 -FCST_GRID_STAT_INPUT_DIR = {ENSEMBLE_STAT_OUTPUT_DIR} -OBS_GRID_STAT_INPUT_DIR = {OBS_ENSEMBLE_STAT_GRID_INPUT_DIR} -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/{MODEL}/grid_stat +PCP_COMBINE_SKIP_IF_OUTPUT_EXISTS = TRUE -[filename_templates] -FCST_PCP_COMBINE_INPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M}/ENS_MEM_{custom?fmt=%s} -FCST_PCP_COMBINE_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M}/ENS_MEM_{custom?fmt=%s}/wofs{custom?fmt=%s}_PCP_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_{valid?fmt=%H%M}_A1.nc +PCP_COMBINE_CUSTOM_LOOP_LIST = 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18 -FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M}/ENS_MEM_??/wofs??_PCP_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_{valid?fmt=%H%M}_A1.nc +FCST_PCP_COMBINE_COMMAND = -sum 00000000_000000 1 {valid?fmt=%Y%m%d}_{valid?fmt=%H%M}00 1 -pcpdir {FCST_PCP_COMBINE_INPUT_DIR}/{FCST_PCP_COMBINE_INPUT_TEMPLATE} -pcprx wofs -field 'name="APCP";level="A1";' -OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M}/mrms_PCP_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_{valid?fmt=%H%M}_A1.nc -ENSEMBLE_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M} +### +# EnsembleStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#ensemblestat +### -FCST_GRID_STAT_INPUT_TEMPLATE = {ENSEMBLE_STAT_OUTPUT_TEMPLATE}/ensemble_stat_{MODEL}_PCP_{init?fmt=%H%M}_{lead?fmt=%H%M}00L_A1_{init?fmt=%Y%m%d}_{valid?fmt=%H%M}00V_ens.nc -OBS_GRID_STAT_INPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M}/mrms_PCP_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_{valid?fmt=%H%M}_A1.nc -GRID_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d?shift=-44100}/{init?fmt=%H%M}/ +ENSEMBLE_STAT_N_MEMBERS = 18 -GRID_STAT_VERIFICATION_MASK_TEMPLATE = {INPUT_BASE}/model_applications/precipitation/WOFS/domain/WOFS_domain_{init?fmt=%Y%m%d}.nc +ENSEMBLE_STAT_ENS_THRESH = 1.0 + +ENSEMBLE_STAT_REGRID_TO_GRID = FCST +ENSEMBLE_STAT_REGRID_METHOD = BUDGET +ENSEMBLE_STAT_REGRID_WIDTH = 2 +ENSEMBLE_STAT_REGRID_VLD_THRESH = 1.0 + +ENSEMBLE_STAT_NBRHD_PROB_WIDTH = 1, 3, 5, 7, 9 +ENSEMBLE_STAT_NBRHD_PROB_SHAPE = SQUARE +ENSEMBLE_STAT_NBRHD_PROB_VLD_THRESH = 1.0 + +FCST_ENSEMBLE_STAT_INPUT_GRID_DATATYPE = NETCDF +OBS_ENSEMBLE_STAT_INPUT_GRID_DATATYPE = NETCDF + +ENSEMBLE_STAT_NMEP_SMOOTH_VLD_THRESH = 1.0 +ENSEMBLE_STAT_NMEP_SMOOTH_SHAPE = SQUARE +ENSEMBLE_STAT_NMEP_SMOOTH_METHOD = NEAREST +ENSEMBLE_STAT_NMEP_SMOOTH_WIDTH = 1 +#ENSEMBLE_STAT_NMEP_SMOOTH_GAUSSIAN_DX = 3 +#ENSEMBLE_STAT_NMEP_SMOOTH_GAUSSIAN_RADIUS = 3 + +ENSEMBLE_STAT_MESSAGE_TYPE = + +ENSEMBLE_STAT_OUTPUT_FLAG_ECNT = STAT +ENSEMBLE_STAT_OUTPUT_FLAG_RPS = NONE +ENSEMBLE_STAT_OUTPUT_FLAG_RHIST = STAT +ENSEMBLE_STAT_OUTPUT_FLAG_PHIST = STAT +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 = 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 = FALSE +ENSEMBLE_STAT_ENSEMBLE_FLAG_FREQUENCY = FALSE +ENSEMBLE_STAT_ENSEMBLE_FLAG_NEP = FALSE +ENSEMBLE_STAT_ENSEMBLE_FLAG_NMEP = TRUE +ENSEMBLE_STAT_ENSEMBLE_FLAG_RANK = TRUE +ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE + +ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_PCP_{init?fmt=%H%M}_{lead?fmt=%H%M}00L_A1 + + +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### + +GRID_STAT_REGRID_TO_GRID = FCST + +FCST_GRID_STAT_INPUT_GRID_DATATYPE = NETCDF +OBS_GRID_STAT_INPUT_GRID_DATATYPE = NETCDF +GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE +GRID_STAT_NEIGHBORHOOD_WIDTH = 1, 3, 5 + +GRID_STAT_OUTPUT_PREFIX = {MODEL}_PCP_{init?fmt=%H%M}_A1 diff --git a/parm/use_cases/model_applications/precipitation/GridStat_fcstGFS_obsCCPA_GRIB.conf b/parm/use_cases/model_applications/precipitation/GridStat_fcstGFS_obsCCPA_GRIB.conf index 6fe3bea524..ae536ee115 100644 --- a/parm/use_cases/model_applications/precipitation/GridStat_fcstGFS_obsCCPA_GRIB.conf +++ b/parm/use_cases/model_applications/precipitation/GridStat_fcstGFS_obsCCPA_GRIB.conf @@ -1,7 +1,30 @@ [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/precipitation/GridStat_fcstGFS_obsCCPA_GRIB.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = PCPCombine, GridStat + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H VALID_BEG = 2017061300 @@ -12,8 +35,13 @@ LEAD_SEQ = 24 LOOP_ORDER = times + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + FCST_PCP_COMBINE_RUN = True -FCST_PCP_COMBINE_METHOD = SUM FCST_PCP_COMBINE_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/fcst FCST_PCP_COMBINE_INPUT_TEMPLATE = pgbf{lead?fmt=%HHH}.gfs.{init?fmt=%Y%m%d%H} @@ -27,10 +55,17 @@ FCST_GRID_STAT_INPUT_TEMPLATE = gfs.{init?fmt=%Y%m%d%H}_A{level?fmt=%HH}h OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/daily_1deg_ccpa OBS_GRID_STAT_INPUT_TEMPLATE = ccpa_conus_1.0d_{valid?fmt=%Y%m%d} +GRID_STAT_MASK_POLY = {INPUT_BASE}/model_applications/precipitation/poly/CONUS.nc, {INPUT_BASE}/model_applications/precipitation/poly/EAST.nc, {INPUT_BASE}/model_applications/precipitation/poly/WEST.nc + GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation/GridStat_fcstGFS_obsCCPA_GRIB/met_out/{MODEL}/precip GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d%H%M}/grid_stat +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + MODEL = GFS OBTYPE = ANLYS @@ -39,12 +74,20 @@ BOTH_VAR1_LEVELS = A24 BOTH_VAR1_THRESH = ge12.7, ge25.4, ge50.8, ge76.2, ge152.4 +### +# PCPCombine Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + +FCST_PCP_COMBINE_METHOD = SUM FCST_PCP_COMBINE_INPUT_DATATYPE = GRIB -FCST_IS_PROB = false FCST_PCP_COMBINE_INPUT_ACCUMS = 6 -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### GRID_STAT_REGRID_TO_GRID = G211 GRID_STAT_REGRID_METHOD = BILIN @@ -52,8 +95,6 @@ GRID_STAT_REGRID_WIDTH = 2 GRID_STAT_OUTPUT_PREFIX = {MODEL}_{CURRENT_FCST_NAME}_vs_{OBTYPE}_{CURRENT_OBS_NAME}_{CURRENT_FCST_LEVEL} -GRID_STAT_MASK_POLY = {INPUT_BASE}/model_applications/precipitation/poly/CONUS.nc, {INPUT_BASE}/model_applications/precipitation/poly/EAST.nc, {INPUT_BASE}/model_applications/precipitation/poly/WEST.nc - GRID_STAT_CLIMO_CDF_WRITE_BINS = False GRID_STAT_OUTPUT_FLAG_CTC = STAT diff --git a/parm/use_cases/model_applications/precipitation/GridStat_fcstHREFmean_obsStgIV_Gempak.conf b/parm/use_cases/model_applications/precipitation/GridStat_fcstHREFmean_obsStgIV_Gempak.conf index b5cf7631c2..2964e6b599 100644 --- a/parm/use_cases/model_applications/precipitation/GridStat_fcstHREFmean_obsStgIV_Gempak.conf +++ b/parm/use_cases/model_applications/precipitation/GridStat_fcstHREFmean_obsStgIV_Gempak.conf @@ -1,7 +1,30 @@ [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/precipitation/GridStat_fcstHREFmean_obsStgIV_Gempak.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = PCPCombine, RegridDataPlane, GridStat + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H INIT_BEG=2017050912 @@ -13,8 +36,13 @@ LEAD_SEQ = 18 LOOP_ORDER = times +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + + FCST_PCP_COMBINE_RUN = True -FCST_PCP_COMBINE_METHOD = ADD FCST_PCP_COMBINE_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/HREFv2_Mean_Gempak FCST_PCP_COMBINE_INPUT_TEMPLATE = {init?fmt=%Y%m%d}/hrefmean_{init?fmt=%Y%m%d%H}f{lead?fmt=%HHH}.grd @@ -42,6 +70,11 @@ GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation/GridStat_f GRID_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H%M} +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + MODEL = HREF_MEAN OBTYPE = STAGE4 @@ -53,9 +86,20 @@ OBS_VAR1_NAME = P06M_NONE OBS_VAR1_LEVELS = "(*,*)" OBS_VAR1_THRESH = gt12.7, gt25.4, gt50.8, gt76.2, gt152.4 +OBS_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = "({valid?fmt=%Y%m%d_%H%M%S},*,*)" + +OBS_PCP_COMBINE_INPUT_DATATYPE = NETCDF + + +### +# PCPCombine Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + +FCST_PCP_COMBINE_METHOD = ADD FCST_PCP_COMBINE_INPUT_DATATYPE = GEMPAK -FCST_IS_PROB = false + FCST_PCP_COMBINE_CONSTANT_INIT = true FCST_PCP_COMBINE_INPUT_ACCUMS = 1 @@ -63,17 +107,21 @@ FCST_PCP_COMBINE_INPUT_NAMES = P01M_NONE FCST_PCP_COMBINE_INPUT_LEVELS = "(0,*,*)" +### +# RegridDataPlane Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + REGRID_DATA_PLANE_METHOD = BUDGET REGRID_DATA_PLANE_WIDTH = 2 REGRID_DATA_PLANE_VERIF_GRID={INPUT_BASE}/model_applications/precipitation/mask/CONUS_HRRRTLE.nc -OBS_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = "({valid?fmt=%Y%m%d_%H%M%S},*,*)" - -OBS_PCP_COMBINE_INPUT_DATATYPE = NETCDF - -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### GRID_STAT_REGRID_TO_GRID = OBS diff --git a/parm/use_cases/model_applications/precipitation/GridStat_fcstHREFmean_obsStgIV_NetCDF.conf b/parm/use_cases/model_applications/precipitation/GridStat_fcstHREFmean_obsStgIV_NetCDF.conf index 42d7c0785b..9ef9bb8df2 100644 --- a/parm/use_cases/model_applications/precipitation/GridStat_fcstHREFmean_obsStgIV_NetCDF.conf +++ b/parm/use_cases/model_applications/precipitation/GridStat_fcstHREFmean_obsStgIV_NetCDF.conf @@ -1,7 +1,30 @@ [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/precipitation/GridStat_fcstHREFmean_obsStgIV_NetCDF.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = PCPCombine, RegridDataPlane, GridStat + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H INIT_BEG=2017050912 @@ -12,8 +35,12 @@ LEAD_SEQ = 18 LOOP_ORDER = times +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + FCST_PCP_COMBINE_RUN = True -FCST_PCP_COMBINE_METHOD = ADD FCST_PCP_COMBINE_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/HREFv2_Mean FCST_PCP_COMBINE_INPUT_TEMPLATE = {init?fmt=%Y%m%d}/hrefmean_{init?fmt=%Y%m%d%H}f{lead?fmt=%HHH}.nc @@ -41,9 +68,36 @@ GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation/GridStat_f GRID_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H%M} -FCST_PCP_COMBINE_INPUT_DATATYPE = NETCDF +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + +MODEL = HREF_MEAN +OBTYPE = STAGE4 + +FCST_VAR1_NAME = {FCST_PCP_COMBINE_OUTPUT_NAME} +FCST_VAR1_LEVELS = "(*,*)" +FCST_VAR1_THRESH = gt12.7, gt25.4, gt50.8, gt76.2, gt152.4 + +OBS_VAR1_NAME = {OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME} +OBS_VAR1_LEVELS = "(*,*)" +OBS_VAR1_THRESH = gt12.7, gt25.4, gt50.8, gt76.2, gt152.4 + + +OBS_REGRID_DATA_PLANE_VAR1_INPUT_FIELD_NAME = P06M_NONE +OBS_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = "({valid?fmt=%Y%m%d_%H%M%S},*,*)" -FCST_IS_PROB = false +OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = P06M_NONE + +### +# PCPCombine Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + +FCST_PCP_COMBINE_METHOD = ADD + +FCST_PCP_COMBINE_INPUT_DATATYPE = NETCDF FCST_PCP_COMBINE_CONSTANT_INIT = true @@ -54,34 +108,24 @@ FCST_PCP_COMBINE_INPUT_LEVELS = "(0,*,*)" FCST_PCP_COMBINE_OUTPUT_ACCUM = 6 FCST_PCP_COMBINE_OUTPUT_NAME = APCP_06 +OBS_PCP_COMBINE_INPUT_DATATYPE = NETCDF -OBS_REGRID_DATA_PLANE_VAR1_INPUT_FIELD_NAME = P06M_NONE -OBS_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = "({valid?fmt=%Y%m%d_%H%M%S},*,*)" - -OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = P06M_NONE -OBS_PCP_COMBINE_INPUT_DATATYPE = NETCDF +### +# RegridDataPlane Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### REGRID_DATA_PLANE_METHOD = BUDGET REGRID_DATA_PLANE_WIDTH = 2 REGRID_DATA_PLANE_VERIF_GRID={INPUT_BASE}/model_applications/precipitation/mask/CONUS_HRRRTLE.nc -#USE_EXPLICIT_NAME_AND_LEVEL = True - -MODEL = HREF_MEAN -OBTYPE = STAGE4 - -FCST_VAR1_NAME = {FCST_PCP_COMBINE_OUTPUT_NAME} -FCST_VAR1_LEVELS = "(*,*)" -FCST_VAR1_THRESH = gt12.7, gt25.4, gt50.8, gt76.2, gt152.4 - -OBS_VAR1_NAME = {OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME} -OBS_VAR1_LEVELS = "(*,*)" -OBS_VAR1_THRESH = gt12.7, gt25.4, gt50.8, gt76.2, gt152.4 - -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### GRID_STAT_REGRID_TO_GRID = OBS diff --git a/parm/use_cases/model_applications/precipitation/GridStat_fcstHRRR-TLE_obsStgIV_GRIB.conf b/parm/use_cases/model_applications/precipitation/GridStat_fcstHRRR-TLE_obsStgIV_GRIB.conf index 0ae1781c37..1f88a2e87c 100644 --- a/parm/use_cases/model_applications/precipitation/GridStat_fcstHRRR-TLE_obsStgIV_GRIB.conf +++ b/parm/use_cases/model_applications/precipitation/GridStat_fcstHRRR-TLE_obsStgIV_GRIB.conf @@ -1,7 +1,30 @@ [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/precipitation/GridStat_fcstHRRR-TLE_obsStgIV_GRIB.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = PCPCombine, RegridDataPlane, GridStat + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H @@ -13,10 +36,15 @@ LEAD_SEQ = 6, 7 LOOP_ORDER = times -OBS_PCP_COMBINE_RUN = True -OBS_PCP_COMBINE_METHOD = ADD -OBS_REGRID_DATA_PLANE_RUN = True +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +# PCPCombine + +OBS_PCP_COMBINE_RUN = True OBS_PCP_COMBINE_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/StageIV OBS_PCP_COMBINE_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/ST4.{valid?fmt=%Y%m%d%H}.{level?fmt=%HH}h @@ -24,22 +52,34 @@ OBS_PCP_COMBINE_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/ST4.{valid?fmt=%Y%m%d%H}.{le OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation/GridStat_fcstHRRR-TLE_obsStgIV_GRIB/StageIV_grib/bucket OBS_PCP_COMBINE_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/ST4.{valid?fmt=%Y%m%d%H}_A{level?fmt=%HH}h + +#RegridDataPlane + +OBS_REGRID_DATA_PLANE_RUN = True + OBS_REGRID_DATA_PLANE_INPUT_DIR = {OBS_PCP_COMBINE_OUTPUT_DIR} OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation/GridStat_fcstHRRR-TLE_obsStgIV_GRIB/StageIV_grib/regrid OBS_REGRID_DATA_PLANE_TEMPLATE = {OBS_PCP_COMBINE_OUTPUT_TEMPLATE} +# GridStat + FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/PHPT FCST_GRID_STAT_INPUT_TEMPLATE= {init?fmt=%Y%m%d}/{init?fmt=%Y%m%d}_i{init?fmt=%H}_f{lead?fmt=%HHH}_HRRRTLE_PHPT.grb2 OBS_GRID_STAT_INPUT_DIR = {OBS_REGRID_DATA_PLANE_OUTPUT_DIR} OBS_GRID_STAT_INPUT_TEMPLATE = {OBS_REGRID_DATA_PLANE_TEMPLATE} +GRID_STAT_VERIFICATION_MASK_TEMPLATE = {INPUT_BASE}/model_applications/precipitation/mask/CONUS_HRRRTLE.nc, {INPUT_BASE}/model_applications/precipitation/mask/EAST_HRRRTLE.nc, {INPUT_BASE}/model_applications/precipitation/mask/WEST_HRRRTLE.nc + GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation/GridStat_fcstHRRR-TLE_obsStgIV_GRIB/GridStat GRID_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H%M} -GRID_STAT_VERIFICATION_MASK_TEMPLATE = {INPUT_BASE}/model_applications/precipitation/mask/CONUS_HRRRTLE.nc, {INPUT_BASE}/model_applications/precipitation/mask/EAST_HRRRTLE.nc, {INPUT_BASE}/model_applications/precipitation/mask/WEST_HRRRTLE.nc +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### MODEL = PHPT OBTYPE = STAGE4_GRIB @@ -52,17 +92,32 @@ BOTH_VAR1_LEVELS = A06 BOTH_VAR1_THRESH = gt12.7, gt25.4, gt50.8, gt76.2, gt152.4 +### +# PCPCombine Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + +OBS_PCP_COMBINE_METHOD = ADD + OBS_PCP_COMBINE_INPUT_DATATYPE = GRIB OBS_PCP_COMBINE_INPUT_ACCUMS = 6, 1 +### +# RegridDataPlane Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + REGRID_DATA_PLANE_METHOD = BUDGET REGRID_DATA_PLANE_WIDTH = 2 REGRID_DATA_PLANE_VERIF_GRID = {INPUT_BASE}/model_applications/precipitation/mask/CONUS_HRRRTLE.nc -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### GRID_STAT_OUTPUT_PREFIX = PROB_{MODEL}_{CURRENT_FCST_NAME}_vs_{OBTYPE}_{CURRENT_OBS_NAME}_{CURRENT_FCST_LEVEL} diff --git a/parm/use_cases/model_applications/precipitation/MTD_fcstHRRR-TLE_FcstOnly_RevisionSeries_GRIB.conf b/parm/use_cases/model_applications/precipitation/MTD_fcstHRRR-TLE_FcstOnly_RevisionSeries_GRIB.conf index 52fb921303..e8e4c525fb 100644 --- a/parm/use_cases/model_applications/precipitation/MTD_fcstHRRR-TLE_FcstOnly_RevisionSeries_GRIB.conf +++ b/parm/use_cases/model_applications/precipitation/MTD_fcstHRRR-TLE_FcstOnly_RevisionSeries_GRIB.conf @@ -1,109 +1,77 @@ -# PHPT MTD Single Run Configuration [config] -# List of applications to run - only MTD for this case +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/precipitation/MTD_fcstHRRR-TLE_FcstOnly_RevisionSeries_GRIB.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = MTD -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match VALID_TIME_FMT VALID_BEG=2018031300 - -# End time for METplus run - must match VALID_TIME_FMT VALID_END=2018031300 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds VALID_INCREMENT=86400 -# 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) -# begin_end_incr(start, end, step) can be used to create a list of values -# end value is inclusive -# This will create a list containing 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 LEAD_SEQ = begin_end_incr(12, 0, -1) -# 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 -# Name to identify model (forecast) data in output -MODEL = HRRRTLE -# Name to identify observation data in output -OBTYPE = ANALYS +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# if true, only process a single data set with MTD -MTD_SINGLE_RUN = True +FCST_MTD_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/PHPT +FCST_MTD_INPUT_TEMPLATE= {init?fmt=%Y%m%d}/{init?fmt=%Y%m%d}_i{init?fmt=%H}_f{lead?fmt=%3H}_HRRRTLE_PHPT.grb2 -# data source if running single mode -# FCST or OBS are valid options -MTD_SINGLE_DATA_SRC = FCST +MTD_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation/MTD_fcstHRRR-TLE_FcstOnly_RevisionSeries_GRIB +MTD_OUTPUT_TEMPLATE = -# list of variables to process -FCST_VAR1_NAME = APCP -FCST_VAR1_LEVELS = R001 -# location of MODE Time Domain MET config file -# References CONFIG_DIR from the [dir] section -MTD_CONFIG_FILE = {CONFIG_DIR}/MTDConfig_wrapped +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### -# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary -# See MET User's Guide for more information -MTD_REGRID_TO_GRID = NONE +MODEL = HRRRTLE +OBTYPE = ANALYS -# Minimum volume -MTD_MIN_VOLUME = 2000 +FCST_VAR1_NAME = APCP +FCST_VAR1_LEVELS = R001 -# convolution radius for forecast data FCST_MTD_CONV_RADIUS = 15 - -# convolution threshold for forecast data FCST_MTD_CONV_THRESH = >=5.0 - -# set to True if forecast data is probabilistic -FCST_IS_PROB = false - -# input data type of forecast data FCST_MTD_INPUT_DATATYPE = GRIB -# True if probabilistic information is in the GRIB Product Definition Section -FCST_PROB_IN_GRIB_PDS = false - -# output prefix to add to output filenames -MTD_OUTPUT_PREFIX = - - -# End of [config] section and start of [dir] section -[dir] -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/met_config - -FCST_MTD_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/PHPT - -MTD_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation/MTD_fcstHRRR-TLE_FcstOnly_RevisionSeries_GRIB +### +# MTD Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#mtd +### +MTD_SINGLE_RUN = True +MTD_SINGLE_DATA_SRC = FCST -[filename_templates] -FCST_MTD_INPUT_TEMPLATE= {init?fmt=%Y%m%d}/{init?fmt=%Y%m%d}_i{init?fmt=%H}_f{lead?fmt=%3H}_HRRRTLE_PHPT.grb2 +MTD_REGRID_TO_GRID = NONE -MTD_OUTPUT_TEMPLATE = +MTD_MIN_VOLUME = 2000 diff --git a/parm/use_cases/model_applications/precipitation/MTD_fcstHRRR-TLE_obsMRMS.conf b/parm/use_cases/model_applications/precipitation/MTD_fcstHRRR-TLE_obsMRMS.conf index 2b0b83b2d8..598e1a9a3e 100644 --- a/parm/use_cases/model_applications/precipitation/MTD_fcstHRRR-TLE_obsMRMS.conf +++ b/parm/use_cases/model_applications/precipitation/MTD_fcstHRRR-TLE_obsMRMS.conf @@ -1,57 +1,67 @@ -# PHPT vs. QPE Configurations - [config] -# if false, loop by VALID time -LOOP_BY = INIT -# Format of INIT_BEG and INIT_END -INIT_TIME_FMT = %Y%m%d%H +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/precipitation/MTD_fcstHRRR-TLE_obsMRMS.html -# Start time for METplus run -INIT_BEG=2017051003 +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -# End time for METplus run -INIT_END=2017051003 +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + +PROCESS_LIST = MTD -# Increment between METplus runs in seconds. Must be >= 60 + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + +LOOP_BY = INIT +INIT_TIME_FMT = %Y%m%d%H +INIT_BEG=2017051003 +INIT_END=2017051003 INIT_INCREMENT=43200 -# list of forecast leads to process LEAD_SEQ = 1,2,3 - -# Options are times, processes -# times = run all items in the PROCESS_LIST for a single initialization -# time, then repeat until all times have been evaluated. -# processes = run each item in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST. LOOP_ORDER = times -# List of applications to run -PROCESS_LIST = MTD -# MODE TIME DOMAIN Configuration +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# if true, only process a single data set with MTD -MTD_SINGLE_RUN = False +FCST_MTD_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/PHPT +FCST_MTD_INPUT_TEMPLATE= {init?fmt=%Y%m%d}/{init?fmt=%Y%m%d}_i{init?fmt=%H}_f{lead?fmt=%HHH}_HRRRTLE_PHPT.grb2 -# Data to process in single mode -# FCST and OBS are valid options -MTD_SINGLE_DATA_SRC = OBS +OBS_MTD_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/QPE_Data +OBS_MTD_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/qpe_{valid?fmt=%Y%m%d%H}.nc -# forecast convolution radius list -FCST_MTD_CONV_RADIUS = 0 +MTD_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation/MTD_fcstHRRR-TLE_obsMRMS +MTD_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H%M} -# forecast convolution threshold list -FCST_MTD_CONV_THRESH = >=10 -# observation convolution radius list -OBS_MTD_CONV_RADIUS = 15 +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### -# observation convolution threshold list -OBS_MTD_CONV_THRESH = >=12.7 +MODEL = PHPT +OBTYPE = QPE + +FCST_IS_PROB = true +FCST_PROB_IN_GRIB_PDS = true -# list of variables to compare FCST_VAR1_NAME = APCP FCST_VAR1_LEVELS = A01 FCST_VAR1_THRESH = gt12.7 @@ -60,43 +70,18 @@ OBS_VAR1_NAME = P01M_NONE OBS_VAR1_LEVELS = "(0,*,*)" OBS_VAR1_THRESH = gt12.7 -# description of data to be processed -# used in output file path -MODEL = PHPT -OBTYPE = QPE - -# location of MODE Time Domain MET config file -MTD_CONFIG_FILE = {CONFIG_DIR}/MTDConfig_wrapped - -MTD_REGRID_TO_GRID = OBS - -# PHPT Model Options: -FCST_IS_PROB = true -FCST_PROB_IN_GRIB_PDS = true +### +# MTD Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#mtd +### -# QPE Observation Data Parameters -# none needed - -[dir] -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/met_config +FCST_MTD_CONV_RADIUS = 0 +FCST_MTD_CONV_THRESH = >=10 -# input and output data directories for each application in PROCESS_LIST -FCST_MTD_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/PHPT -OBS_MTD_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/QPE_Data +OBS_MTD_CONV_RADIUS = 15 +OBS_MTD_CONV_THRESH = >=12.7 -MTD_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation/MTD_fcstHRRR-TLE_obsMRMS +MTD_REGRID_TO_GRID = OBS MTD_OUTPUT_PREFIX = PROB_{MODEL}_{CURRENT_FCST_NAME}_vs_{OBTYPE}_{CURRENT_OBS_NAME}_A{CURRENT_FCST_LEVEL} - -[filename_templates] -# format of filenames - -# PHPT -FCST_MTD_INPUT_TEMPLATE= {init?fmt=%Y%m%d}/{init?fmt=%Y%m%d}_i{init?fmt=%H}_f{lead?fmt=%HHH}_HRRRTLE_PHPT.grb2 - -# QPE -OBS_MTD_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/qpe_{valid?fmt=%Y%m%d%H}.nc - -MTD_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H%M} diff --git a/parm/use_cases/model_applications/precipitation/PointStat_fcstMULTI_obsMETAR_PtypeComparisons.conf b/parm/use_cases/model_applications/precipitation/PointStat_fcstMULTI_obsMETAR_PtypeComparisons.conf index 738d1c8d03..081c13ad15 100644 --- a/parm/use_cases/model_applications/precipitation/PointStat_fcstMULTI_obsMETAR_PtypeComparisons.conf +++ b/parm/use_cases/model_applications/precipitation/PointStat_fcstMULTI_obsMETAR_PtypeComparisons.conf @@ -1,8 +1,31 @@ [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/precipitation/PointStat_fcstMULTI_obsMETAR_PtypeComparisons.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### #The first PointStat call is for the GFS PROCESS_LIST = PB2NC,PointStat,PointStat(nam_run),PointStat(gfsx_run) + + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H%M INIT_BEG = 202102151200 @@ -11,6 +34,13 @@ INIT_INCREMENT = 12H LEAD_SEQ = 12, 24, 36, 48, 60, 72, 84 + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +# PB2NC PB2NC_OFFSETS = 0, 12 PB2NC_SKIP_IF_OUTPUT_EXISTS = True @@ -22,51 +52,7 @@ PB2NC_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation PB2NC_OUTPUT_TEMPLATE = nam.obsfile_sfc_prwe.{valid?fmt=%m%d%Y}_{valid?fmt=%H}z.nc -PB2NC_CONFIG_FILE = {PARM_BASE}/met_config/PB2NCConfig_wrapped - -PB2NC_OBS_WINDOW_BEGIN = -1800 -PB2NC_OBS_WINDOW_END = 1800 - -#PB2NC_VALID_BEGIN = {valid?fmt=%Y%m%d_%H%M%S?shift=-1800} -#PB2NC_VALID_END = {valid?fmt=%Y%m%d_%H%M%S?shift=1800} - -PB2NC_GRID = -PB2NC_POLY = -PB2NC_STATION_ID = -PB2NC_MESSAGE_TYPE = ADPSFC - -PB2NC_PB_REPORT_TYPE = - -#PB2NC_LEVEL_RANGE_BEG = -#PB2NC_LEVEL_RANGE_END = - -PB2NC_LEVEL_CATEGORY = - -PB2NC_QUALITY_MARK_THRESH = 2 - -# Leave empty to process all -PB2NC_OBS_BUFR_VAR_LIST = PRWE - -PB2NC_TIME_SUMMARY_FLAG = False -PB2NC_TIME_SUMMARY_BEG = 000000 -PB2NC_TIME_SUMMARY_END = 235959 -PB2NC_TIME_SUMMARY_VAR_NAMES = -PB2NC_TIME_SUMMARY_TYPES = min, max, range, mean, stdev, median, p80 - -PB2NC_TIME_SUMMARY_RAW_DATA = False -PB2NC_TIME_SUMMARY_STEP = 3600 -PB2NC_TIME_SUMMARY_WIDTH = 3600 -PB2NC_TIME_SUMMARY_GRIB_CODES = -PB2NC_TIME_SUMMARY_VALID_FREQ = 0 -PB2NC_TIME_SUMMARY_VALID_THRESH = 0.0 - -#PB2NC_OBS_BUFR_MAP = -#PB2NC_OBS_PREPBUFR_MAP = - - -### # PointStat -### FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/precipitation/PointStat_fcstMULTI_obsMETAR_PtypeComparisons FCST_POINT_STAT_INPUT_TEMPLATE = gfs.t12z.pgrb2.0p25.f{lead?fmt=%3H} @@ -74,11 +60,13 @@ FCST_POINT_STAT_INPUT_TEMPLATE = gfs.t12z.pgrb2.0p25.f{lead?fmt=%3H} OBS_POINT_STAT_INPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation OBS_POINT_STAT_INPUT_TEMPLATE = {PB2NC_OUTPUT_TEMPLATE} - POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/precipitation -POINT_STAT_OUTPUT_PREFIX = gfs -MODEL = gfs + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### FCST_VAR1_NAME = CRAIN FCST_VAR1_LEVELS = L0 @@ -112,9 +100,55 @@ OBS_VAR4_NAME = PRWE OBS_VAR4_LEVELS = Z0 OBS_VAR4_THRESH = >=174&&<=176 + +### +# PB2NC Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pb2nc +### + +PB2NC_OBS_WINDOW_BEGIN = -1800 +PB2NC_OBS_WINDOW_END = 1800 + +PB2NC_GRID = +PB2NC_POLY = +PB2NC_STATION_ID = +PB2NC_MESSAGE_TYPE = ADPSFC + +PB2NC_PB_REPORT_TYPE = + +PB2NC_LEVEL_CATEGORY = + +PB2NC_QUALITY_MARK_THRESH = 2 + +# Leave empty to process all +PB2NC_OBS_BUFR_VAR_LIST = PRWE + +PB2NC_TIME_SUMMARY_FLAG = False +PB2NC_TIME_SUMMARY_BEG = 000000 +PB2NC_TIME_SUMMARY_END = 235959 +PB2NC_TIME_SUMMARY_VAR_NAMES = +PB2NC_TIME_SUMMARY_TYPES = min, max, range, mean, stdev, median, p80 + +PB2NC_TIME_SUMMARY_RAW_DATA = False +PB2NC_TIME_SUMMARY_STEP = 3600 +PB2NC_TIME_SUMMARY_WIDTH = 3600 +PB2NC_TIME_SUMMARY_GRIB_CODES = +PB2NC_TIME_SUMMARY_VALID_FREQ = 0 +PB2NC_TIME_SUMMARY_VALID_THRESH = 0.0 + + +### +# PointStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pointstat +### + +MODEL = gfs + OBS_POINT_STAT_WINDOW_BEGIN = -1800 OBS_POINT_STAT_WINDOW_END = 1800 +POINT_STAT_OUTPUT_PREFIX = gfs + POINT_STAT_MESSAGE_TYPE = ADPSFC POINT_STAT_MASK_POLY = MET_BASE/poly/CONUS.poly diff --git a/parm/use_cases/model_applications/s2s/GridStat_SeriesAnalysis_fcstNMME_obsCPC_seasonal_forecast.conf b/parm/use_cases/model_applications/s2s/GridStat_SeriesAnalysis_fcstNMME_obsCPC_seasonal_forecast.conf index 6a59ac2da9..52a98f302e 100644 --- a/parm/use_cases/model_applications/s2s/GridStat_SeriesAnalysis_fcstNMME_obsCPC_seasonal_forecast.conf +++ b/parm/use_cases/model_applications/s2s/GridStat_SeriesAnalysis_fcstNMME_obsCPC_seasonal_forecast.conf @@ -1,36 +1,78 @@ -# Grid to Grid APIK Verification - S2S Use Case 1: Comparison of NMME hindcasts to CPC observations - [config] -# List of applications to run +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s/GridStat_SeriesAnalysis_fcstNMME_obsCPC_seasonal_forecast.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = GridStat, SeriesAnalysis(climo), SeriesAnalysis(full_stats) -# loop by INIT time (options are INIT, VALID, or ?) -LOOP_BY = INIT -# Format of INIT_BEG and INIT_END -INIT_TIME_FMT = %Y%m +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Start time for METplus run +LOOP_BY = INIT +INIT_TIME_FMT = %Y%m INIT_BEG = 198207 - -# End time for METplus run INIT_END = 201007 - INIT_INCREMENT = 1Y -# list of forecast leads to process (JLV-NOTE: This only works for grid_stat and example wrappers right now, using feature_281_py_embed) LEAD_SEQ = 1m, 2m, 3m, 4m, 5m, 6m -#SERIES_ANALYSIS_CUSTOM_LOOP_LIST = +SERIES_ANALYSIS_RUNTIME_FREQ = RUN_ONCE_PER_LEAD -# Options are times, processes -# times = run all items in the PROCESS_LIST for a single initialization -# time, then repeat until all times have been evaluated. -# processes = run each item in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST. LOOP_ORDER = processes + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/s2s/NMME/hindcast/monthly +FCST_GRID_STAT_INPUT_TEMPLATE = nmme_pr_hcst_{init?fmt=%b}IC_{valid?fmt=%m}_*.nc + +OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/s2s/NMME/obs +OBS_GRID_STAT_INPUT_TEMPLATE = obs_cpc_pp.1x1.nc + +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/s2s/GridStat_SeriesAnalysis_fcstNMME_obsCPC_seasonal_forecast/GridStat + +BOTH_SERIES_ANALYSIS_INPUT_DIR = {GRID_STAT_OUTPUT_DIR} +BOTH_SERIES_ANALYSIS_INPUT_TEMPLATE = grid_stat_{MODEL}-hindcast_precip_vs_{OBTYPE}_IC{init?fmt=%Y%b}_V{valid?fmt=%Y%m}01_*pairs.nc + +SERIES_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/s2s/GridStat_SeriesAnalysis_fcstNMME_obsCPC_seasonal_forecast/SeriesAnalysis +SERIES_ANALYSIS_OUTPUT_TEMPLATE = series_analysis_{MODEL}_{OBTYPE}_stats_F{lead?fmt=%2m}_{instance?fmt=%s}.nc + +[full_stats] + +SERIES_ANALYSIS_CLIMO_MEAN_INPUT_DIR = {SERIES_ANALYSIS_OUTPUT_DIR} +SERIES_ANALYSIS_CLIMO_MEAN_INPUT_TEMPLATE = series_analysis_{MODEL}_{OBTYPE}_stats_F{lead?fmt=%2m}_climo.nc + +[config] + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + +MODEL = NMME +OBTYPE = CPC + FCST_GRID_STAT_VAR1_NAME = pr FCST_GRID_STAT_VAR1_LEVELS = "({valid?fmt=%Y%m01_000000},*,*)" FCST_GRID_STAT_VAR1_THRESH = >0, >50, >100, >150, >200, >250, >300, >400, >500 @@ -45,13 +87,11 @@ FCST_SERIES_ANALYSIS_VAR1_LEVELS = "(*,*)" OBS_SERIES_ANALYSIS_VAR1_NAME = OBS_precip_FULL OBS_SERIES_ANALYSIS_VAR1_LEVELS = "(*,*)" -# description of data to be processed -# used in output file path -MODEL = NMME -OBTYPE = CPC -# location of grid_stat MET config file -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### GRID_STAT_OUTPUT_FLAG_CTC = STAT GRID_STAT_OUTPUT_FLAG_CNT = STAT @@ -61,90 +101,32 @@ GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE GRID_STAT_NC_PAIRS_VAR_NAME = precip -# variables to describe format of forecast data -FCST_IS_PROB = false - -# variables to describe format of observation data -# none needed - -# Increase verbosity of MET tools -#LOG_MET_VERBOSITY=4 - GRID_STAT_OUTPUT_PREFIX = {MODEL}-hindcast_{CURRENT_OBS_NAME}_vs_{OBTYPE}_IC{init?fmt=%Y%b}_V{valid?fmt=%Y%m%d} -# sets the desc variable in the SeriesAnalysis config file +### +# SeriesAnalysis Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#seriesanalysis +### + SERIES_ANALYSIS_DESC = hindcast -# sets the cat_thresh variable in the SeriesAnalysis config file SERIES_ANALYSIS_CAT_THRESH = >=50, >=100, >=150, >=200, >=250, >=300, >=400, >=500 -# sets the vld_thresh variable in the SeriesAnalysis config file SERIES_ANALYSIS_VLD_THRESH = 0.50 -# sets the block_size variable in the SeriesAnalysis config file SERIES_ANALYSIS_BLOCK_SIZE = 360*181 -# set to True to add the -paired flag to the SeriesAnalysis command SERIES_ANALYSIS_IS_PAIRED = False -# MET Configuration file passed to SeriesAnalysis -SERIES_ANALYSIS_CONFIG_FILE = {PARM_BASE}/met_config/SeriesAnalysisConfig_wrapped - -# If True/yes, run plot_data_plane on output from Series-Analysis to generate -# images for each stat item listed in SERIES_ANALYSIS_STAT_LIST SERIES_ANALYSIS_GENERATE_PLOTS = no - -# If True/yes, run convert on output from Series-Analysis to generate -# a gif using images in groups of name/level/stat SERIES_ANALYSIS_GENERATE_ANIMATIONS = no -# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary -# See MET User's Guide for more information -#SERIES_ANALYSIS_REGRID_TO_GRID = NONE - -SERIES_ANALYSIS_RUNTIME_FREQ = RUN_ONCE_PER_LEAD - SERIES_ANALYSIS_RUN_ONCE_PER_STORM_ID = False -# used for SeriesAnalysis(climo) instance + SERIES_ANALYSIS_STAT_LIST = OBAR [full_stats] SERIES_ANALYSIS_STAT_LIST =TOTAL, FBAR, OBAR, ME, MAE, RMSE, ANOM_CORR, PR_CORR SERIES_ANALYSIS_CTS_LIST = BASER, CSI, GSS - -SERIES_ANALYSIS_CLIMO_MEAN_INPUT_DIR = {SERIES_ANALYSIS_OUTPUT_DIR} -SERIES_ANALYSIS_CLIMO_MEAN_INPUT_TEMPLATE = series_analysis_{MODEL}_{OBTYPE}_stats_F{lead?fmt=%2m}_climo.nc - - -[dir] - -# input and output data directories -FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/s2s/NMME/hindcast/monthly -OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/s2s/NMME/obs -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/s2s/GridStat_SeriesAnalysis_fcstNMME_obsCPC_seasonal_forecast/GridStat - -BOTH_SERIES_ANALYSIS_INPUT_DIR = {GRID_STAT_OUTPUT_DIR} - -SERIES_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/s2s/GridStat_SeriesAnalysis_fcstNMME_obsCPC_seasonal_forecast/SeriesAnalysis - -# used in full_stats instance file only -SERIES_ANALYSIS_CLIMO_MEAN_INPUT_DIR = - - -[filename_templates] - -# format of filenames -# FCST -FCST_GRID_STAT_INPUT_TEMPLATE = nmme_pr_hcst_{init?fmt=%b}IC_{valid?fmt=%m}_*.nc - -# ANLYS -OBS_GRID_STAT_INPUT_TEMPLATE = obs_cpc_pp.1x1.nc - -BOTH_SERIES_ANALYSIS_INPUT_TEMPLATE = grid_stat_{MODEL}-hindcast_precip_vs_{OBTYPE}_IC{init?fmt=%Y%b}_V{valid?fmt=%Y%m}01_*pairs.nc - -SERIES_ANALYSIS_OUTPUT_TEMPLATE = series_analysis_{MODEL}_{OBTYPE}_stats_F{lead?fmt=%2m}_{instance?fmt=%s}.nc - -# used in full_stat instance only -SERIES_ANALYSIS_CLIMO_MEAN_INPUT_TEMPLATE = diff --git a/parm/use_cases/model_applications/s2s/GridStat_fcstCFSv2_obsGHCNCAMS_MultiTercile.conf b/parm/use_cases/model_applications/s2s/GridStat_fcstCFSv2_obsGHCNCAMS_MultiTercile.conf index 2282808384..59b26fb25c 100644 --- a/parm/use_cases/model_applications/s2s/GridStat_fcstCFSv2_obsGHCNCAMS_MultiTercile.conf +++ b/parm/use_cases/model_applications/s2s/GridStat_fcstCFSv2_obsGHCNCAMS_MultiTercile.conf @@ -1,9 +1,28 @@ [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s/GridStat_fcstCFSv2_obsGHCNCAMS_MultiTercile.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = GridStat + ### # Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control ### LOOP_BY = INIT @@ -16,11 +35,12 @@ LEAD_SEQ = LOOP_ORDER = processes + ### # File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info ### - FCST_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY @@ -37,6 +57,7 @@ GRID_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m} ### # Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info ### MODEL = CFSv2 @@ -52,25 +73,17 @@ OBS_VAR1_THRESH = lt1.5, lt2.5 CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/s2s/GridStat_fcstCFSv2_obsGHCNCAMS_MultiTercile + ### -# GridStat +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat ### - - -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - - GRID_STAT_REGRID_TO_GRID = FCST GRID_STAT_DESC = NA -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 -OBS_GRID_STAT_FILE_WINDOW_END = 0 - GRID_STAT_NEIGHBORHOOD_WIDTH = 1 GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE @@ -78,18 +91,8 @@ GRID_STAT_NEIGHBORHOOD_COV_THRESH = >=0.5 GRID_STAT_ONCE_PER_FIELD = False -FCST_IS_PROB = false - -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -OBS_IS_PROB = false - -OBS_GRID_STAT_PROB_THRESH = ==0.1 - GRID_STAT_OUTPUT_PREFIX = - - GRID_STAT_OUTPUT_FLAG_MCTC = BOTH GRID_STAT_OUTPUT_FLAG_MCTS = BOTH @@ -97,6 +100,4 @@ GRID_STAT_NC_PAIRS_FLAG_LATLON = TRUE GRID_STAT_NC_PAIRS_FLAG_RAW = TRUE GRID_STAT_NC_PAIRS_FLAG_DIFF = TRUE - GRID_STAT_HSS_EC_VALUE = - diff --git a/parm/use_cases/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool.conf b/parm/use_cases/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool.conf index d6e1f475c0..7e32b1e8d4 100644 --- a/parm/use_cases/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool.conf +++ b/parm/use_cases/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool.conf @@ -1,9 +1,28 @@ [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = SeriesAnalysis, GenEnsProd, SeriesAnalysis(run_two), GridStat + ### # Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control ### LOOP_BY = INIT @@ -14,27 +33,19 @@ INIT_INCREMENT = 1Y LEAD_SEQ = -LOOP_ORDER = processes - -### -# SERIES_ANALYSIS FIELDINFO -### - -SERIES_ANALYSIS_RUNTIME_FREQ = RUN_ONCE -MODEL = CFSv2 SERIES_ANALYSIS_CUSTOM_LOOP_LIST = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 +SERIES_ANALYSIS_RUNTIME_FREQ = RUN_ONCE + +LOOP_ORDER = processes -BOTH_SERIES_ANALYSIS_VAR1_NAME = fcst -BOTH_SERIES_ANALYSIS_VAR1_LEVELS = "({custom},0,*,*)" -SERIES_ANALYSIS_FCST_FILE_TYPE = NETCDF_NCCF -SERIES_ANALYSIS_OBS_FILE_TYPE = NETCDF_NCCF -SERIES_ANALYSIS_OUTPUT_STATS_CNT = TOTAL, FBAR, FSTDEV -SERIES_ANALYSIS_BLOCK_SIZE = 0 ### -# File I/O SERIES_ANALYSIS +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info ### +# SeriesAnalysis + FCST_SERIES_ANALYSIS_INPUT_DIR = {INPUT_BASE}/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool FCST_SERIES_ANALYSIS_INPUT_TEMPLATE = CFSv2.tmp2m.{init?fmt=%Y%m}.fcst.nc @@ -44,109 +55,49 @@ OBS_SERIES_ANALYSIS_INPUT_TEMPLATE = {FCST_SERIES_ANALYSIS_INPUT_TEMPLATE} SERIES_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/SA_run1 SERIES_ANALYSIS_OUTPUT_TEMPLATE = mem{custom?fmt=%s}_output.nc -### -# File I/O Gen_Ens_Prod -### -GEN_ENS_PROD_INPUT_DIR = {FCST_SERIES_ANALYSIS_INPUT_DIR} +# GenEnsProd +GEN_ENS_PROD_INPUT_DIR = {FCST_SERIES_ANALYSIS_INPUT_DIR} GEN_ENS_PROD_INPUT_TEMPLATE = {FCST_SERIES_ANALYSIS_INPUT_TEMPLATE} -#GEN_ENS_PROD_CTRL_INPUT_DIR = -#GEN_ENS_PROD_CTRL_INPUT_TEMPLATE = - GEN_ENS_PROD_N_MEMBERS = 24 -GEN_ENS_PROD_OUTPUT_DIR = {OUTPUT_BASE}/GEP -GEN_ENS_PROD_OUTPUT_TEMPLATE = gen_ens_prod_{init?fmt=%Y%m}_ens.nc - -### -# Field Info -### +GEN_ENS_PROD_CLIMO_MEAN_FILE_NAME = {SERIES_ANALYSIS_OUTPUT_DIR}/memMET_ENS_MEMBER_ID_output.nc +GEN_ENS_PROD_CLIMO_MEAN_FIELD = {name="series_cnt_FBAR"; level="(*,*)";} -ENS_VAR1_NAME = fcst -ENS_VAR1_LEVELS = "(MET_ENS_MEMBER_ID,0,*,*)" -ENS_VAR1_THRESH = <-0.43, >=-0.43&&<=0.43, >0.43 -ENS_FILE_TYPE = NETCDF_NCCF +GEN_ENS_PROD_CLIMO_STDEV_FILE_NAME = {SERIES_ANALYSIS_OUTPUT_DIR}/memMET_ENS_MEMBER_ID_output.nc +GEN_ENS_PROD_CLIMO_STDEV_FIELD = {name="series_cnt_FSTDEV"; level="(*,*)";} -### -# GenEnsProd -### +GEN_ENS_PROD_OUTPUT_DIR = {OUTPUT_BASE}/GEP +GEN_ENS_PROD_OUTPUT_TEMPLATE = gen_ens_prod_{init?fmt=%Y%m}_ens.nc -#LOG_GEN_ENS_PROD_VERBOSITY = 2 -MODEL = CFSv2 -# GEN_ENS_PROD_DESC = NA +# SeriesAnalysis(run_two) -#GEN_ENS_PROD_REGRID_TO_GRID = NONE -#GEN_ENS_PROD_REGRID_METHOD = NEAREST -#GEN_ENS_PROD_REGRID_WIDTH = 1 -#GEN_ENS_PROD_REGRID_VLD_THRESH = 0.5 -#GEN_ENS_PROD_REGRID_SHAPE = SQUARE +[run_two] -#GEN_ENS_PROD_CENSOR_THRESH = -#GEN_ENS_PROD_CENSOR_VAL = -GEN_ENS_PROD_NORMALIZE = CLIMO_STD_ANOM -#GEN_ENS_PROD_CAT_THRESH = -#GEN_ENS_PROD_NC_VAR_STR = +FCST_SERIES_ANALYSIS_INPUT_DIR = {OUTPUT_BASE}/GEP +FCST_SERIES_ANALYSIS_INPUT_TEMPLATE = gen_ens_prod_{init?fmt=%Y%m}_ens.nc -GEN_ENS_PROD_ENS_THRESH = 0.3 -GEN_ENS_PROD_VLD_THRESH = 0.3 +OBS_SERIES_ANALYSIS_INPUT_DIR = {INPUT_BASE}/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool +OBS_SERIES_ANALYSIS_INPUT_TEMPLATE = ghcn_cams.1x1.1982-2020.mon.nc -#GEN_ENS_PROD_NBRHD_PROB_WIDTH = 5 -#GEN_ENS_PROD_NBRHD_PROB_SHAPE = CIRCLE -#GEN_ENS_PROD_NBRHD_PROB_VLD_THRESH = 0.0 +SERIES_ANALYSIS_CLIMO_MEAN_FILE_NAME = {INPUT_BASE}/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool/ghcn_cams.1x1.1982-2010.mon.clim.nc +SERIES_ANALYSIS_CLIMO_MEAN_FIELD = {name="clim"; level="(0,*,*)";} +SERIES_ANALYSIS_CLIMO_MEAN_FILE_TYPE = NETCDF_NCCF -#GEN_ENS_PROD_NMEP_SMOOTH_VLD_THRESH = 0.0 -#GEN_ENS_PROD_NMEP_SMOOTH_SHAPE = CIRCLE -#GEN_ENS_PROD_NMEP_SMOOTH_GAUSSIAN_DX = 81.27 -#GEN_ENS_PROD_NMEP_SMOOTH_GAUSSIAN_RADIUS = 120 -#GEN_ENS_PROD_NMEP_SMOOTH_METHOD = GAUSSIAN -#GEN_ENS_PROD_NMEP_SMOOTH_WIDTH = 1 +SERIES_ANALYSIS_CLIMO_STDEV_FILE_NAME = {INPUT_BASE}/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool/ghcn_cams.1x1.1982-2010.mon.stddev.nc +SERIES_ANALYSIS_CLIMO_STDEV_FIELD = {name="stddev"; level="(0,*,*)";} +SERIES_ANALYSIS_CLIMO_STDEV_FILE_TYPE = NETCDF_NCCF -GEN_ENS_PROD_CLIMO_MEAN_FILE_NAME = {SERIES_ANALYSIS_OUTPUT_DIR}/memMET_ENS_MEMBER_ID_output.nc -GEN_ENS_PROD_CLIMO_MEAN_FIELD = {name="series_cnt_FBAR"; level="(*,*)";} -#GEN_ENS_PROD_CLIMO_MEAN_REGRID_METHOD = -#GEN_ENS_PROD_CLIMO_MEAN_REGRID_WIDTH = -#GEN_ENS_PROD_CLIMO_MEAN_REGRID_VLD_THRESH = -#GEN_ENS_PROD_CLIMO_MEAN_REGRID_SHAPE = -#GEN_ENS_PROD_CLIMO_MEAN_TIME_INTERP_METHOD = -#GEN_ENS_PROD_CLIMO_MEAN_MATCH_MONTH = -#GEN_ENS_PROD_CLIMO_MEAN_DAY_INTERVAL = 31 -#GEN_ENS_PROD_CLIMO_MEAN_HOUR_INTERVAL = 6 +SERIES_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/SA_run2 +SERIES_ANALYSIS_OUTPUT_TEMPLATE = {INIT_BEG}to{INIT_END}_CFSv2_SA.nc -GEN_ENS_PROD_CLIMO_STDEV_FILE_NAME = {SERIES_ANALYSIS_OUTPUT_DIR}/memMET_ENS_MEMBER_ID_output.nc -GEN_ENS_PROD_CLIMO_STDEV_FIELD = {name="series_cnt_FSTDEV"; level="(*,*)";} -#GEN_ENS_PROD_CLIMO_STDEV_REGRID_METHOD = -#GEN_ENS_PROD_CLIMO_STDEV_REGRID_WIDTH = -#GEN_ENS_PROD_CLIMO_STDEV_REGRID_VLD_THRESH = -#GEN_ENS_PROD_CLIMO_STDEV_REGRID_SHAPE = -#GEN_ENS_PROD_CLIMO_STDEV_TIME_INTERP_METHOD = -#GEN_ENS_PROD_CLIMO_STDEV_MATCH_MONTH = -#GEN_ENS_PROD_CLIMO_STDEV_DAY_INTERVAL = 31 -#GEN_ENS_PROD_CLIMO_STDEV_HOUR_INTERVAL = 6 -GEN_ENS_PROD_ENSEMBLE_FLAG_LATLON = TRUE -GEN_ENS_PROD_ENSEMBLE_FLAG_MEAN = TRUE -GEN_ENS_PROD_ENSEMBLE_FLAG_STDEV = TRUE -#GEN_ENS_PROD_ENSEMBLE_FLAG_MINUS = TRUE -#GEN_ENS_PROD_ENSEMBLE_FLAG_PLUS = TRUE -#GEN_ENS_PROD_ENSEMBLE_FLAG_MIN = TRUE -#GEN_ENS_PROD_ENSEMBLE_FLAG_MAX = TRUE -#GEN_ENS_PROD_ENSEMBLE_FLAG_RANGE = TRUE -#GEN_ENS_PROD_ENSEMBLE_FLAG_VLD_COUNT = TRUE -GEN_ENS_PROD_ENSEMBLE_FLAG_FREQUENCY = TRUE -#GEN_ENS_PROD_ENSEMBLE_FLAG_NEP = FALSE -#GEN_ENS_PROD_ENSEMBLE_FLAG_NMEP = FALSE -#GEN_ENS_PROD_ENSEMBLE_FLAG_CLIMO = FALSE -#GEN_ENS_PROD_ENSEMBLE_FLAG_CLIMO_CDF = FALSE +# GridStat -GEN_ENS_PROD_ENS_MEMBER_IDS = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 -#GEN_ENS_PROD_CONTROL_ID = - -### -# File I/O Grid_Stat -### +[config] FCST_GRID_STAT_INPUT_DIR = {GEN_ENS_PROD_OUTPUT_DIR} FCST_GRID_STAT_INPUT_TEMPLATE = {GEN_ENS_PROD_OUTPUT_TEMPLATE} @@ -154,15 +105,62 @@ FCST_GRID_STAT_INPUT_TEMPLATE = {GEN_ENS_PROD_OUTPUT_TEMPLATE} OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool OBS_GRID_STAT_INPUT_TEMPLATE = ghcn_cams.1x1.1982-2020.mon.nc +GRID_STAT_CLIMO_MEAN_FILE_NAME = {INPUT_BASE}/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool/ghcn_cams.1x1.1982-2010.mon.clim.nc +GRID_STAT_CLIMO_MEAN_FIELD = {name="clim"; level="(0,*,*)";} +GRID_STAT_CLIMO_MEAN_FILE_TYPE = NETCDF_NCCF + +GRID_STAT_CLIMO_STDEV_FILE_NAME = {INPUT_BASE}/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool/ghcn_cams.1x1.1982-2010.mon.stddev.nc +GRID_STAT_CLIMO_STDEV_FIELD = {name="stddev"; level="(0,*,*)";} +GRID_STAT_CLIMO_STDEV_FILE_TYPE = NETCDF_NCCF + GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/GridStat GRID_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m} -GRID_STAT_OUTPUT_PREFIX = {init?fmt=%Y%m} ### -# Field Info GridStat +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info ### +MODEL = CFSv2 + + +# SeriesAnalysis + +BOTH_SERIES_ANALYSIS_VAR1_NAME = fcst +BOTH_SERIES_ANALYSIS_VAR1_LEVELS = "({custom},0,*,*)" +SERIES_ANALYSIS_FCST_FILE_TYPE = NETCDF_NCCF +SERIES_ANALYSIS_OBS_FILE_TYPE = NETCDF_NCCF + + +# GenEnsProd + +ENS_VAR1_NAME = fcst +ENS_VAR1_LEVELS = "(MET_ENS_MEMBER_ID,0,*,*)" +ENS_VAR1_THRESH = <-0.43, >=-0.43&&<=0.43, >0.43 +ENS_FILE_TYPE = NETCDF_NCCF + + +# SeriesAnalysis(run_two) + +[run_two] + +FCST_SERIES_ANALYSIS_VAR1_NAME = fcst_0_0_all_all_ENS_FREQ_lt-0.43 +FCST_SERIES_ANALYSIS_VAR1_LEVELS = "(*,*)" + +FCST_CAT_THRESH = ==0.1 +FCST_IS_PROB = True + +OBS_SERIES_ANALYSIS_VAR1_NAME = tmp2m +OBS_SERIES_ANALYSIS_VAR1_LEVELS = "({init?fmt=%Y%m%d_%H%M%S},*,*)" +OBS_SERIES_ANALYSIS_CAT_THRESH = <=CDP33 + +OBS_FILE_TYPE = NETCDF_NCCF + + +# GridStat + +[config] FCST_GRID_STAT_VAR1_NAME = fcst_0_0_all_all_ENS_FREQ_lt-0.43 FCST_GRID_STAT_VAR1_LEVELS = "(*,*)" FCST_GRID_STAT_VAR1_THRESH = ==0.1 @@ -175,77 +173,60 @@ OBS_GRID_STAT_FILE_TYPE = NETCDF_NCCF ### -# Field Info for GridStat +# SeriesAnalysis Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#seriesanalysis ### -GRID_STAT_CLIMO_MEAN_FILE_NAME = {INPUT_BASE}/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool/ghcn_cams.1x1.1982-2010.mon.clim.nc -GRID_STAT_CLIMO_MEAN_FIELD = {name="clim"; level="(0,*,*)";} -GRID_STAT_CLIMO_MEAN_FILE_TYPE = NETCDF_NCCF - - -GRID_STAT_CLIMO_STDEV_FILE_NAME = {INPUT_BASE}/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool/ghcn_cams.1x1.1982-2010.mon.stddev.nc -GRID_STAT_CLIMO_STDEV_FIELD = {name="stddev"; level="(0,*,*)";} -GRID_STAT_CLIMO_STDEV_FILE_TYPE = NETCDF_NCCF - -GRID_STAT_REGRID_TO_GRID = FCST -GRID_STAT_OUTPUT_FLAG_PSTD = BOTH -GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = TRUE -GRID_STAT_NC_PAIRS_FLAG_RAW = TRUE - -[run_two] -### -# FILE I/O of SeriesAnalysis run_two -### - -FCST_SERIES_ANALYSIS_INPUT_DIR = {OUTPUT_BASE}/GEP -FCST_SERIES_ANALYSIS_INPUT_TEMPLATE = gen_ens_prod_{init?fmt=%Y%m}_ens.nc - -OBS_SERIES_ANALYSIS_INPUT_DIR = {INPUT_BASE}/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool -OBS_SERIES_ANALYSIS_INPUT_TEMPLATE = ghcn_cams.1x1.1982-2020.mon.nc +SERIES_ANALYSIS_OUTPUT_STATS_CNT = TOTAL, FBAR, FSTDEV +SERIES_ANALYSIS_BLOCK_SIZE = 0 -SERIES_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/SA_run2 -SERIES_ANALYSIS_OUTPUT_TEMPLATE = {INIT_BEG}to{INIT_END}_CFSv2_SA.nc ### -# Field Info for SeriesAnalysis run_two +# GenEnsProd Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#genensprod ### -# -#These first entries are empty to override the intial SeriesAnalysis call -#SERIES_ANALYSIS_CUSTOM_LOOP_LIST = -#BOTH_SERIES_ANALYSIS_VAR1_NAME = -#BOTH_SERIES_ANALYSIS_VAR1_LEVELS = +GEN_ENS_PROD_NORMALIZE = CLIMO_STD_ANOM -FCST_SERIES_ANALYSIS_VAR1_NAME = fcst_0_0_all_all_ENS_FREQ_lt-0.43 -FCST_SERIES_ANALYSIS_VAR1_LEVELS = "(*,*)" +GEN_ENS_PROD_ENS_THRESH = 0.3 +GEN_ENS_PROD_VLD_THRESH = 0.3 -FCST_CAT_THRESH = ==0.1 -FCST_IS_PROB = True +GEN_ENS_PROD_ENSEMBLE_FLAG_LATLON = TRUE +GEN_ENS_PROD_ENSEMBLE_FLAG_MEAN = TRUE +GEN_ENS_PROD_ENSEMBLE_FLAG_STDEV = TRUE +GEN_ENS_PROD_ENSEMBLE_FLAG_FREQUENCY = TRUE -OBS_SERIES_ANALYSIS_VAR1_NAME = tmp2m -OBS_SERIES_ANALYSIS_VAR1_LEVELS = "({init?fmt=%Y%m%d_%H%M%S},*,*)" -OBS_SERIES_ANALYSIS_CAT_THRESH = <=CDP33 +GEN_ENS_PROD_ENS_MEMBER_IDS = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 -OBS_FILE_TYPE = NETCDF_NCCF ### -# SeriesAnalysis General for run_two +# SeriesAnalysis(run_two) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#seriesanalysis ### +[run_two] + SERIES_ANALYSIS_REGRID_TO_GRID = FCST SERIES_ANALYSIS_OUTPUT_STATS_PSTD = TOTAL, BRIER, RELIABILITY, BRIERCL, BSS SERIES_ANALYSIS_VLD_THRESH = 0.5 SERIES_ANALYSIS_BLOCK_SIZE = 0 -SERIES_ANALYSIS_CLIMO_MEAN_FILE_NAME = {INPUT_BASE}/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool/ghcn_cams.1x1.1982-2010.mon.clim.nc -SERIES_ANALYSIS_CLIMO_MEAN_FIELD = {name="clim"; level="(0,*,*)";} -SERIES_ANALYSIS_CLIMO_MEAN_FILE_TYPE = NETCDF_NCCF - - -SERIES_ANALYSIS_CLIMO_STDEV_FILE_NAME = {INPUT_BASE}/model_applications/s2s/SeriesAnalysis_fcstCFSv2_obsGHCNCAMS_climoStandardized_MultiStatisticTool/ghcn_cams.1x1.1982-2010.mon.stddev.nc -SERIES_ANALYSIS_CLIMO_STDEV_FIELD = {name="stddev"; level="(0,*,*)";} -SERIES_ANALYSIS_CLIMO_STDEV_FILE_TYPE = NETCDF_NCCF SERIES_ANALYSIS_RUNTIME_FREQ = RUN_ONCE SERIES_ANALYSIS_RUN_ONCE_PER_STORM_ID = False + + +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### + +[config] + +GRID_STAT_OUTPUT_PREFIX = {init?fmt=%Y%m} + +GRID_STAT_REGRID_TO_GRID = FCST +GRID_STAT_OUTPUT_FLAG_PSTD = BOTH +GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = TRUE +GRID_STAT_NC_PAIRS_FLAG_RAW = TRUE diff --git a/parm/use_cases/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF.conf b/parm/use_cases/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF.conf index 591fcc51b5..5c02108948 100644 --- a/parm/use_cases/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF.conf +++ b/parm/use_cases/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF.conf @@ -1,48 +1,60 @@ [config] -# Looping by times: steps through each 'task' in the PROCESS_LIST for each -# defined time, and repeats until all times have been evaluated. -LOOP_ORDER = times +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### -# 'Tasks' to be run PROCESS_LIST = TCGen, UserScript -LOOP_BY = INIT -# The init time +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + +LOOP_BY = INIT INIT_TIME_FMT = %Y INIT_BEG = 2016 -LOG_TC_GEN_VERBOSITY = 5 -LOG_LEVEL=INFO +LEAD_SEQ = -# optional list of strings to loop over and call the tool multiple times -# value of each item can be referenced in filename templates with {custom?fmt=%s} -TC_GEN_CUSTOM_LOOP_LIST = +USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_FOR_EACH + +LOOP_ORDER = times -# I/O Configurations +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# Location of input data directory for track data TC_GEN_TRACK_INPUT_DIR = {INPUT_BASE}/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF/obs/bdecks/{INIT_BEG} TC_GEN_TRACK_INPUT_TEMPLATE = *.dat -# Location of input data directory for genesis data TC_GEN_GENESIS_INPUT_DIR = {INPUT_BASE}/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF/fcst/tracker/reformat/{INIT_BEG} TC_GEN_GENESIS_INPUT_TEMPLATE = *.fort.66 -# directory to write output files generated by tc_gen TC_GEN_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF/TCGen TC_GEN_OUTPUT_TEMPLATE = tc_gen_{init?fmt=%Y} -# MET Configurations - -TC_GEN_CONFIG_FILE = {PARM_BASE}/met_config/TCGenConfig_wrapped - -# The following variables set values in the MET configuration file used by this example -# Leaving these values commented will use the value found in the default MET configuration file -# See the MET documentation for this tool for more information on the settings +### +# TCGen Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcgen +### TC_GEN_INIT_FREQ = 6 @@ -69,37 +81,12 @@ TC_GEN_GDF_FILTER_DESC = GDF TC_GEN_EARLY_FILTER_DESC = GDF_EARLY TC_GEN_LATE_FILTER_DESC = GDF_LATE -# TC_GEN_FILTER_ sets filter items in the MET configuration file -# quotation marks within quotation marks must be preceeded with \ TC_GEN_FILTER_1 = model = "{TC_GEN_FILTER_MODEL}"; desc = "{TC_GEN_GDF_FILTER_DESC}"; dev_hit_window = { beg = -24; end = 24; }; dev_hit_radius = 555; genesis_match_window = { beg = -24; end = 24;}; TC_GEN_FILTER_2 = model = "{TC_GEN_FILTER_MODEL}"; desc = "{TC_GEN_EARLY_FILTER_DESC}"; dev_hit_window = { beg = -120; end = 0; }; dev_hit_radius = 555; genesis_match_window = { beg = -120; end = 0;}; TC_GEN_FILTER_3 = model = "{TC_GEN_FILTER_MODEL}"; desc = "{TC_GEN_LATE_FILTER_DESC}"; dev_hit_window = { beg = 0; end = 120; }; dev_hit_radius = 555; genesis_match_window = { beg = 0; end = 120;}; TC_GEN_DESC = ALL -MODEL = - -TC_GEN_STORM_ID = - -TC_GEN_STORM_NAME = - -TC_GEN_INIT_BEG = -TC_GEN_INIT_END = -TC_GEN_INIT_INC = -TC_GEN_INIT_EXC = - -TC_GEN_VALID_BEG = -TC_GEN_VALID_END = - -TC_GEN_INIT_HOUR = - -# sets METPLUS_LEAD in the wrapped MET config file -LEAD_SEQ = - -TC_GEN_VX_MASK = - -TC_GEN_BASIN_MASK = - TC_GEN_DLAND_THRESH = NA TC_GEN_GENESIS_MATCH_RADIUS = 555 @@ -152,11 +139,15 @@ TC_GEN_BASIN_FILE = MET_BASE/tc_data/basin_global_tenth_degree.nc TC_GEN_NC_PAIRS_GRID = G003 -USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_FOR_EACH -USER_SCRIPT_INPUT_TEMPLATE = {TC_GEN_OUTPUT_DIR}/tc_gen_{init?fmt=%Y}_pairs.nc +### +# UserScript Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### -USER_SCRIPT_COMMAND = {PARM_BASE}/use_cases/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF/UserScript_fcstGFSO_obsBDECKS_GDF_TDF.py {USER_SCRIPT_INPUT_TEMPLATE} +USER_SCRIPT_INPUT_TEMPLATE = {TC_GEN_OUTPUT_DIR}/tc_gen_{init?fmt=%Y}_pairs.nc +SCRIPT_DIR = {PARM_BASE}/use_cases/model_applications/s2s/TCGen_fcstGFSO_obsBDECKS_GDF_TDF +USER_SCRIPT_COMMAND = {SCRIPT_DIR}/UserScript_fcstGFSO_obsBDECKS_GDF_TDF.py {USER_SCRIPT_INPUT_TEMPLATE} [user_env_vars] TCGEN_INIT_FREQ = {TC_GEN_INIT_FREQ} diff --git a/parm/use_cases/model_applications/s2s/UserScript_obsERA_obsOnly_Stratosphere.conf b/parm/use_cases/model_applications/s2s/UserScript_obsERA_obsOnly_Stratosphere.conf index ced3ba8e79..86c4e5264a 100644 --- a/parm/use_cases/model_applications/s2s/UserScript_obsERA_obsOnly_Stratosphere.conf +++ b/parm/use_cases/model_applications/s2s/UserScript_obsERA_obsOnly_Stratosphere.conf @@ -1,54 +1,51 @@ - [config] -# time looping - options are INIT, VALID, RETRO, and REALTIME +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s/UserScript_obsERA_obsOnly_Stratosphere.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + +PROCESS_LIST = UserScript + + +### +# Time Info +# LOOP_BY 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 = REALTIME - -# %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 -VALID_TIME_FMT = %Y%m%d%H - -# BLank for this usecase but the parameter still needs to be there -VALID_BEG = - -# BLank for this usecase but the parameter still needs to be there -VALID_END = - -# BLank for this usecase but the parameter still needs to be there -VALID_INCREMENT = - -# 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 = - -# 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + +LOOP_BY = REALTIME + +VALID_TIME_FMT = %Y +VALID_BEG = 2013 + +USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE + LOOP_ORDER = processes -PROCESS_LIST = UserScript -USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE +### +# UserScript Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### USER_SCRIPT_COMMAND = {PARM_BASE}/use_cases/model_applications/s2s/UserScript_obsERA_obsOnly_Stratosphere/meridonial_mean.py - [user_env_vars] INPUT_FILE_NAME = {INPUT_BASE}/model_applications/s2s/UserScript_obsERA_obsOnly_Stratosphere/SSWC_v1.0_varFull_ERAi_d20130106_s20121107_e20130307_c20160701.nc YAML_CONFIG_NAME = {METPLUS_BASE}/parm/use_cases/model_applications/s2s/UserScript_obsERA_obsOnly_Stratosphere/meridonial_mean.yaml - LOG_FILE = "Meridonial_means.log" LOG_LEVEL = "INFO" diff --git a/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot.conf b/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot.conf index 92f9ba76eb..768f48fa67 100644 --- a/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot.conf +++ b/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot.conf @@ -1,7 +1,30 @@ [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = UserScript + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + # Note: time looping is not used in this use case LOOP_BY = REALTIME VALID_TIME_FMT = %Y @@ -9,8 +32,13 @@ VALID_BEG = 2020 USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE -USER_SCRIPT_COMMAND = {PARM_BASE}/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot/cross_spectra_plot.py +### +# UserScript Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + +USER_SCRIPT_COMMAND = {PARM_BASE}/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot/cross_spectra_plot.py [user_env_vars] @@ -24,4 +52,4 @@ INPUT_FILE_NAMES = {INPUT_BASE}/model_applications/s2s/UserScript_obsPrecip_obsO YAML_CONFIG_NAME = {METPLUS_BASE}/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot/spectra_plot.yaml -OUTPUT_DIR = {OUTPUT_BASE}/plots/ +OUTPUT_DIR = {OUTPUT_BASE}/plots diff --git a/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot/cross_spectra_plot.py b/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot/cross_spectra_plot.py index e423c93f40..12ad482c18 100755 --- a/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot/cross_spectra_plot.py +++ b/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_CrossSpectraPlot/cross_spectra_plot.py @@ -7,6 +7,7 @@ """ import numpy as np import os +import sys import xarray as xr import metplotpy.contributed.spacetime_plot.spacetime_plot as stp diff --git a/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_Hovmoeller.conf b/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_Hovmoeller.conf index 3f99880699..3f797e1e87 100644 --- a/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_Hovmoeller.conf +++ b/parm/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_Hovmoeller.conf @@ -1,13 +1,42 @@ [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s/UserScript_obsPrecip_obsOnly_Hovmoeller.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = UserScript + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = REALTIME VALID_TIME_FMT = %Y VALID_BEG = 2014 USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE + +### +# UserScript Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + USER_SCRIPT_COMMAND = {PARM_BASE}/use_cases/model_applications/s2s/UserScript_obsPrecip_obsOnly_Hovmoeller/hovmoeller_diagram.py diff --git a/parm/use_cases/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking.conf b/parm/use_cases/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking.conf index d3b346a661..6bb4c9f07e 100644 --- a/parm/use_cases/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking.conf +++ b/parm/use_cases/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking.conf @@ -1,220 +1,173 @@ -# UserScript wrapper example - [config] -# List of applications to run - Pre-Processing and Blocking Script -# PROCESS_LIST = RegridDataPlane(regrid_fcst), RegridDataPlane(regrid_obs), PcpCombine(daily_mean_fcst), PcpCombine(daily_mean_obs), PcpCombine(running_mean_obs), PcpCombine(anomaly_obs), UserScript(create_cbl_filelist), UserScript(script_blocking), StatAnalysis(sanal_ibls), StatAnalysis(sanal_blocks) -# List of applications to run - Omit Pre-Processing Steps + +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = UserScript(create_cbl_filelist), UserScript(script_blocking), StatAnalysis(sanal_ibls), StatAnalysis(sanal_blocks) -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match VALID_TIME_FMT VALID_BEG = 2000120100 - -# End time for METplus run - must match VALID_TIME_FMT VALID_END = 2017022800 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds VALID_INCREMENT = 86400 -# 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 = 0 # Only Process DJF SKIP_TIMES = "%m:begin_end_incr(3,11,1)", "%m%d:0229" -# 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 = processes -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/use_cases/model_applications/s2s_mid_lat + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### OBS_ANOM_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Anomaly OBS_ANOM_INPUT_TEMPLATE = Z500_anomaly_{valid?fmt=%Y%m%d}_NH.nc + OBS_ANOM_OUTPUT_DIR = {OBS_ANOM_INPUT_DIR} OBS_ANOM_OUTPUT_TEMPLATE = ERA_anom_files_lead{lead?fmt=%HHH}.txt OBS_AVE_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Daily OBS_AVE_INPUT_TEMPLATE = Z500_daily_{valid?fmt=%Y%m%d}_NH.nc + OBS_AVE_OUTPUT_DIR = {OBS_AVE_INPUT_DIR} OBS_AVE_OUTPUT_TEMPLATE = ERA_daily_files_lead{lead?fmt=%HHH}.txt FCST_AVE_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/GFS/Daily FCST_AVE_INPUT_TEMPLATE = Z500_daily_{init?fmt=%Y%m%d}_{lead?fmt=%HHH}_NH.nc + FCST_AVE_OUTPUT_DIR = {FCST_AVE_INPUT_DIR} FCST_AVE_OUTPUT_TEMPLATE = GFS_daily_files_lead{lead?fmt=%HHH}.txt +### +# RegridDataPlane(regrid_fcst) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + # Forecast Regridding to 1 degree using regrid_data_plane [regrid_fcst] -# time looping - options are INIT, VALID, RETRO, and REALTIME -LOOP_BY = INIT -# Format of INIT_BEG and INIT_END +LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run INIT_BEG = 2000120100 - -# End time for METplus run INIT_END = 2017022800 - -# Increment between METplus runs in seconds. Must be >= 60 INIT_INCREMENT = 86400 -# list of forecast leads to process LEAD_SEQ = 24 # REGRID_DATA_PLANE (Step 1) -# Run regrid_data_plane on forecast data + FCST_REGRID_DATA_PLANE_RUN = True -# If true, process each field individually and write a file for each -# If false, run once per run time passing in all fields specified FCST_DATA_PLANE_ONCE_PER_FIELD = False -# Name of input field to process FCST_REGRID_DATA_PLANE_VAR1_INPUT_FIELD_NAME = Z500 - -# Level of input field to process FCST_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = P500 - -# Name of output field to create FCST_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = Z500 -# Mask to use for regridding REGRID_DATA_PLANE_VERIF_GRID = latlon 360 90 89 0 -1.0 1.0 -# Method to run regrid_data_plane, not setting this will default to NEAREST REGRID_DATA_PLANE_METHOD = BILIN -# Regridding width used in regrid_data_plane, not setting this will default to 1 REGRID_DATA_PLANE_WIDTH = 2 -# input and output data directories for each application in PROCESS_LIST FCST_REGRID_DATA_PLANE_INPUT_DIR = /gpfs/fs1/p/ral/jntp/GMTB/Phys_Test_FV3GFSv2/POST/suite1/ FCST_REGRID_DATA_PLANE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/FV3GFS/Regrid -# format of filenames -# Input ERA Interim FCST_REGRID_DATA_PLANE_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/gfs.t00z.pgrb2.0p25.f{lead?fmt=%HHH} FCST_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/Z500_3hourly_{init?fmt=%Y%m%d%H}_{lead?fmt=%HHH}_NH.nc +### +# RegridDataPlane(regrid_obs) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + # Observation Regridding to 1 degree using regrid_data_plane [regrid_obs] -# time looping - options are INIT, VALID, RETRO, and REALTIME -LOOP_BY = VALID -# Format of INIT_BEG and INIT_END +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run VALID_BEG = 1979120100 - -# End time for METplus run VALID_END = 2017022818 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 21600 -# list of forecast leads to process LEAD_SEQ = 0 -# Run regrid_data_plane on forecast data OBS_REGRID_DATA_PLANE_RUN = True -# If true, process each field individually and write a file for each -# If false, run once per run time passing in all fields specified OBS_DATA_PLANE_ONCE_PER_FIELD = False -# Name of input field to process OBS_REGRID_DATA_PLANE_VAR1_INPUT_FIELD_NAME = Z - -# Level of input field to process OBS_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = P500 - -# Name of output field to create OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = Z500 -# Mask to use for regridding REGRID_DATA_PLANE_VERIF_GRID = latlon 360 90 89 0 -1.0 1.0 -# Method to run regrid_data_plane, not setting this will default to NEAREST REGRID_DATA_PLANE_METHOD = BILIN -# Regridding width used in regrid_data_plane, not setting this will default to 1 REGRID_DATA_PLANE_WIDTH = 2 -# input and output data directories for each application in PROCESS_LIST OBS_REGRID_DATA_PLANE_INPUT_DIR = /gpfs/fs1/collections/rda/data/ds627.0/ei.oper.an.pl OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Regrid -# format of filenames -# Input ERA Interim OBS_REGRID_DATA_PLANE_INPUT_TEMPLATE = {valid?fmt=%Y%m}/ei.oper.an.pl.regn128sc.{valid?fmt=%Y%m%d%H} OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/Z500_6hourly_{init?fmt=%Y%m%d%H}_NH.nc +### +# PCPCombine(daily_mean_obs) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Perform a sum over the 4 daily times that have been regridded using pcp_combine # 00, 06, 12, 18 UTC [daily_mean_obs] -# time looping - options are INIT, VALID, RETRO, and REALTIME -LOOP_BY = VALID -# Format of INIT_BEG and INIT_END +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run VALID_BEG = 1979120118 - -# End time for METplus run VALID_END = 2017022818 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 86400 -# run pcp_combine on obs data OBS_PCP_COMBINE_RUN = True -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, and DERIVE OBS_PCP_COMBINE_METHOD = DERIVE OBS_PCP_COMBINE_STAT_LIST = MEAN -# field name and level of 1 hr accumulation in forecast files OBS_PCP_COMBINE_INPUT_ACCUMS = 6 OBS_PCP_COMBINE_INPUT_NAMES = Z500 OBS_PCP_COMBINE_INPUT_LEVELS = "(*,*)" OBS_PCP_COMBINE_INPUT_OPTIONS = convert(x) = x / 9.81; set_attr_valid = "{valid?fmt=%Y%m%d_%H%M%S?shift=-64800}"; -# Convert output and set 24 hours as the accumulation OBS_PCP_COMBINE_OUTPUT_NAME = Z500 OBS_PCP_COMBINE_OUTPUT_ACCUM = 24 OBS_PCP_COMBINE_DERIVE_LOOKBACK = 24 -# input and output data directories for each application in PROCESS_LIST OBS_PCP_COMBINE_INPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Regrid OBS_PCP_COMBINE_OUTPUT_DIR = {OBS_AVE_INPUT_DIR} @@ -223,102 +176,87 @@ OBS_PCP_COMBINE_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/Z500_6hourly_{valid?fmt=%Y%m OBS_PCP_COMBINE_OUTPUT_TEMPLATE = {OBS_AVE_INPUT_TEMPLATE} +### +# PCPCombine(running_mean_obs) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Perform a 5 day running mean on the data using pcp_combine [running_mean_obs] -# time looping - options are INIT, VALID, RETRO, and REALTIME -LOOP_BY = VALID -# Format of INIT_BEG and INIT_END +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run VALID_BEG = 1979120100 - -# End time for METplus run VALID_END = 2017022800 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 86400 # Add the first/last 2 days to the skip times to compute the running mean SKIP_TIMES = "%m:begin_end_incr(3,11,1)", "%m%d:1201,1202,0227,0228,0229" -# run pcp_combine on obs data OBS_PCP_COMBINE_RUN = TRUE - -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, and DERIVE OBS_PCP_COMBINE_METHOD = DERIVE + OBS_PCP_COMBINE_STAT_LIST = MEAN -# field name, level and setting time attribute of 1 hr accumulation in forecast files OBS_PCP_COMBINE_INPUT_ACCUMS = 24 OBS_PCP_COMBINE_INPUT_NAMES = Z500 OBS_PCP_COMBINE_INPUT_LEVELS = "(*,*)" OBS_PCP_COMBINE_INPUT_OPTIONS = set_attr_valid = "{valid?fmt=%Y%m%d_%H%M%S?shift=-172800}"; -# Set output variable name OBS_PCP_COMBINE_OUTPUT_NAME = Z500 # Running mean is 5 days OBS_PCP_COMBINE_OUTPUT_ACCUM = 120 OBS_PCP_COMBINE_DERIVE_LOOKBACK = 120 -# input and output data directories for each application in PROCESS_LIST + OBS_PCP_COMBINE_INPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Daily OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Rmean5d -# format of filenames -# Input ERA Interim OBS_PCP_COMBINE_INPUT_TEMPLATE = Z500_daily_{valid?fmt=%Y%m%d}_NH.nc OBS_PCP_COMBINE_OUTPUT_TEMPLATE = Z500_5daymean_{valid?fmt=%Y%m%d?shift=-172800}_NH.nc +### +# PCPCombine(anomaly_obs) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Compute anomalies using the daily means and 5 day running mean using pcp_combine [anomaly_obs] -# time looping - options are INIT, VALID, RETRO, and REALTIME -LOOP_BY = VALID -# Format of INIT_BEG and INIT_END +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run VALID_BEG = 1979120100 - -# End time for METplus run VALID_END = 2017022800 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 86400 -# list of forecast leads to process LEAD_SEQ = 0 # Add the first/last 2 days to the skip times to compute the running mean SKIP_TIMES = "%m:begin_end_incr(3,11,1)", "%m%d:1201,1202,0227,0228,0229" -# run pcp_combine on obs data -OBS_PCP_COMBINE_RUN = True -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, DERIVE, and USER_DEFINED +OBS_PCP_COMBINE_RUN = True OBS_PCP_COMBINE_METHOD = USER_DEFINED -# User defined pcp_combine command OBS_PCP_COMBINE_COMMAND = -subtract {OBS_PCP_COMBINE_INPUT_DIR}/Daily/Z500_daily_{valid?fmt=%Y%m%d}_NH.nc {OBS_PCP_COMBINE_INPUT_DIR}/Rmean5d/Z500_5daymean_{valid?fmt=%Y%m%d}_NH.nc -field 'name="Z500"; level="(*,*)";' -# input and output data directories for each application in PROCESS_LIST OBS_PCP_COMBINE_INPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA OBS_PCP_COMBINE_OUTPUT_DIR = {OBS_ANOM_INPUT_DIR} -# format of filenames -# Input ERA Interim OBS_PCP_COMBINE_INPUT_TEMPLATE = Z500_daily_{valid?fmt=%Y%m%d}_NH.nc OBS_PCP_COMBINE_OUTPUT_TEMPLATE = {OBS_ANOM_INPUT_TEMPLATE} +### +# UserScript(create_cbl_filelist) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # This is run separately since it has different start/end times [create_cbl_filelist] + # Skip the days on the edges that are not available due to the running mean SKIP_TIMES = "%m:begin_end_incr(3,11,1)", "%m%d:1201,0229" @@ -331,7 +269,6 @@ VALID_END = 2017022800 VALID_INCREMENT = 86400 LEAD_SEQ = 0 -# Template of filenames to input to the user-script USER_SCRIPT_INPUT_TEMPLATE = {INPUT_BASE}/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Anomaly/Z500_anomaly_{valid?fmt=%Y%m%d}_NH.nc # Name of the file containing the listing of input files @@ -424,6 +361,11 @@ IBL_PLOT_OBS_LABEL = ERA Reanalysis IBL_PLOT_FCST_LABEL = GEFS +### +# UserScript(script_blocking) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Run the Blocking Analysis Script [script_blocking] # Timing Information @@ -447,28 +389,23 @@ USER_SCRIPT_INPUT_TEMPLATE_LABELS = OBS_IBL_INPUT, FCST_IBL_INPUT USER_SCRIPT_COMMAND = {METPLUS_BASE}/parm/use_cases/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/Blocking_driver.py +### +# StatAnalysis(sanal_ibls) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#statanalysis +### + # Stat Analysis for the IBLs [sanal_ibls] -# Format of VALID_BEG and VALID_END using % items -# Note, you cannot have hour, minutes, or seconds here -# %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc. -# see www.strftime.org for more information -# %Y%m%d expands to YYYYMMDD -VALID_TIME_FMT = %Y%m%d -# Start time for METplus run - must match VALID_TIME_FMT +VALID_TIME_FMT = %Y%m%d VALID_BEG = 20001201 - -# End time for METplus run - must match VALID_TIME_FMT VALID_END = 20170228 +STAT_ANALYSIS_CONFIG_FILE = {PARM_BASE}/met_config/STATAnalysisConfig_wrapped + MODEL1 = GFS MODEL1_OBTYPE = ADPUPA -# Location of MET config file to pass to StatAnalysis -# References CONFIG_DIR from the [dir] section -STAT_ANALYSIS_CONFIG_FILE = {CONFIG_DIR}/STATAnalysisConfig_wrapped - # stat_analysis job info STAT_ANALYSIS_JOB_NAME = aggregate_stat # if using -dump_row, put in JOBS_ARGS "-dump_row [dump_row_file]" @@ -476,106 +413,49 @@ STAT_ANALYSIS_JOB_NAME = aggregate_stat # METplus will fill in filename STAT_ANALYSIS_JOB_ARGS = -out_line_type CTS -out_thresh ==1 -out_stat [out_stat_file] -# Optional variables for further filtering -# can be blank, single, or multiple values -# if more than one use comma separated list -# -# (FCST)(OBS)_(VALID)(INIT)_HOUR_LIST: HH format (ex. 00, 06, 12) -# (FCST)(OBS)_LEAD_LIST: HH[H][MMSS] format (ex. 00, 06, 120) MODEL_LIST = {MODEL1} FCST_LEAD_LIST = 24 LINE_TYPE_LIST = MPR -# how to treat items listed in above _LIST variables -# GROUP_LIST_ITEMS: items listed in a given _LIST variable -# will be grouped together -# LOOP_LIST_ITEMS: items listed in a give _LIST variable -# will be looped over -# if not listed METplus will treat the list as a group + GROUP_LIST_ITEMS = MODEL_LIST LOOP_LIST_ITEMS = FCST_LEAD_LIST MODEL1_STAT_ANALYSIS_LOOKIN_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/mpr/IBL -# Output data directory STAT_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking -CONFIG_DIR = {PARM_BASE}/met_config - -# Optional settings to create templated directory and file name information -# to save files as stat_analysis output as, this is appended to STAT_ANALYSIS_OUTPUT_DIR -# if no template is provided a default filename set in the code will be used -# Use: -# string templates can be set for all the lists being looped over, just -# use and a lower case version of the list, ex. {fcst_valid_hour?fmt=%H} -# or {fcst_var?fmt=%s} -# For looping over models: -# can set MODELn_STAT_ANALYSIS_[DUMP_ROW/OUT_STAT]_TEMPLATE for individual models -# or STAT_ANALYSIS_[DUMP_ROW/OUT_STAT] with {model?fmt=%s} MODEL1_STAT_ANALYSIS_OUT_STAT_TEMPLATE = {model?fmt=%s}_ERA_IBLS_{lead?fmt=%H%M%S}L_CTS_CNT.stat +### +# StatAnalysis(sanal_blocks) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#statanalysis +### + # Stat Analysis for the Blocks [sanal_blocks] -# Format of VALID_BEG and VALID_END using % items -# Note, you cannot have hour, minutes, or seconds here -# %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc. -# see www.strftime.org for more information -# %Y%m%d expands to YYYYMMDD -VALID_TIME_FMT = %Y%m%d -# Start time for METplus run - must match VALID_TIME_FMT +VALID_TIME_FMT = %Y%m%d VALID_BEG = 20001201 - -# End time for METplus run - must match VALID_TIME_FMT VALID_END = 20170228 +STAT_ANALYSIS_CONFIG_FILE = {PARM_BASE}/met_config/STATAnalysisConfig_wrapped + MODEL1 = GFS MODEL1_OBTYPE = ADPUPA -# Location of MET config file to pass to StatAnalysis -# References CONFIG_DIR from the [dir] section -STAT_ANALYSIS_CONFIG_FILE = {CONFIG_DIR}/STATAnalysisConfig_wrapped - -# stat_analysis job info STAT_ANALYSIS_JOB_NAME = aggregate_stat -# if using -dump_row, put in JOBS_ARGS "-dump_row [dump_row_file]" -# if using -out_stat, put in JOBS_ARGS "-out_stat [out_stat_file]" -# METplus will fill in filename STAT_ANALYSIS_JOB_ARGS = -out_line_type CTS -out_thresh ==1 -out_stat [out_stat_file] -# Optional variables for further filtering -# can be blank, single, or multiple values -# if more than one use comma separated list -# -# (FCST)(OBS)_(VALID)(INIT)_HOUR_LIST: HH format (ex. 00, 06, 12) -# (FCST)(OBS)_LEAD_LIST: HH[H][MMSS] format (ex. 00, 06, 120) MODEL_LIST = {MODEL1} FCST_LEAD_LIST = 24 LINE_TYPE_LIST = MPR -# how to treat items listed in above _LIST variables -# GROUP_LIST_ITEMS: items listed in a given _LIST variable -# will be grouped together -# LOOP_LIST_ITEMS: items listed in a give _LIST variable -# will be looped over -# if not listed METplus will treat the list as a group + GROUP_LIST_ITEMS = MODEL_LIST LOOP_LIST_ITEMS = FCST_LEAD_LIST MODEL1_STAT_ANALYSIS_LOOKIN_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/mpr/Blocks -# Output data directory STAT_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking -CONFIG_DIR = {PARM_BASE}/met_config - -# Optional settings to create templated directory and file name information -# to save files as stat_analysis output as, this is appended to STAT_ANALYSIS_OUTPUT_DIR -# if no template is provided a default filename set in the code will be used -# Use: -# string templates can be set for all the lists being looped over, just -# use and a lower case version of the list, ex. {fcst_valid_hour?fmt=%H} -# or {fcst_var?fmt=%s} -# For looping over models: -# can set MODELn_STAT_ANALYSIS_[DUMP_ROW/OUT_STAT]_TEMPLATE for individual models -# or STAT_ANALYSIS_[DUMP_ROW/OUT_STAT] with {model?fmt=%s} MODEL1_STAT_ANALYSIS_OUT_STAT_TEMPLATE = {model?fmt=%s}_ERA_Blocks_{lead?fmt=%H%M%S}L_CTS.stat diff --git a/parm/use_cases/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime.conf b/parm/use_cases/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime.conf index 5a69011610..4d74927724 100644 --- a/parm/use_cases/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime.conf +++ b/parm/use_cases/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime.conf @@ -1,82 +1,69 @@ -# UserScript wrapper for Weather Regime Analysis [config] + +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + # All steps, including pre-processing: # PROCESS_LIST = RegridDataPlane(regrid_obs), PcpCombine(daily_mean_obs), UserScript(script_wr), StatAnalysis(sanal_wrclass), StatAnalysis(sanal_wrfreq) # Weather Regime Analysis and stat_analysis: + PROCESS_LIST = UserScript(script_wr), StatAnalysis(sanal_wrclass), StatAnalysis(sanal_wrfreq) -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match VALID_TIME_FMT #VALID_BEG = 1979120100 VALID_BEG = 2000120100 - -# End time for METplus run - must match VALID_TIME_FMT VALID_END = 2017022800 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds VALID_INCREMENT = 86400 -# 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 = 0 # Only Process DJF SKIP_TIMES = "%m:begin_end_incr(3,11,1)", "%m%d:1201,0229" -# 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 = processes -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/use_cases/model_applications/s2s_mid_lat +### +# RegridDataPlane(regrid_obs) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### # Regridding Pre-Processing Step [regrid_obs] -# Start time for METplus run - must match VALID_TIME_FMT -VALID_BEG = 2000120200 -# End time for METplus run - must match VALID_TIME_FMT +VALID_BEG = 2000120200 VALID_END = 2017022818 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 21600 # REGRID_DATA_PLANE (Pre Processing Step 1), currently turned off # Run regrid_data_plane on forecast data OBS_REGRID_DATA_PLANE_RUN = True -# If true, process each field individually and write a file for each -# If false, run once per run time passing in all fields specified OBS_DATA_PLANE_ONCE_PER_FIELD = False -# Name of input field to process OBS_REGRID_DATA_PLANE_VAR1_INPUT_FIELD_NAME = Z - -# Level of input field to process OBS_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = P500 - -# Name of output field to create OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = Z500 # Mask to use for regridding @@ -90,33 +77,30 @@ REGRID_DATA_PLANE_METHOD = BILIN # Regridding width used in regrid_data_plane, not setting this will default to 1 REGRID_DATA_PLANE_WIDTH = 2 -# input and output data directories for each application in PROCESS_LIST OBS_REGRID_DATA_PLANE_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/ERA/OrigData OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/ERA/Regrid -# format of filenames -# Input and output ERA Interim OBS_REGRID_DATA_PLANE_INPUT_TEMPLATE = {valid?fmt=%Y%m}/ei.oper.an.pl.regn128sc.{valid?fmt=%Y%m%d%H} OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/Z500_6hourly_{init?fmt=%Y%m%d%H}_NH.nc +### +# PCPCombine(daily_mean_obs) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Daily Mean Pre-Processing Step [daily_mean_obs] -# Start time for METplus run -VALID_BEG = 2000120218 -# End time for METplus run +VALID_BEG = 2000120218 VALID_END = 2017022818 -# run pcp_combine on obs data OBS_PCP_COMBINE_RUN = True -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, DERIVE, and USER_DEFINED + OBS_PCP_COMBINE_METHOD = DERIVE OBS_PCP_COMBINE_STAT_LIST = MEAN -# field name and level of 1 hr accumulation in forecast files OBS_PCP_COMBINE_INPUT_ACCUMS = 6 OBS_PCP_COMBINE_INPUT_NAMES = Z500 OBS_PCP_COMBINE_INPUT_LEVELS = "(*,*)" @@ -129,11 +113,9 @@ OBS_PCP_COMBINE_DERIVE_LOOKBACK = 24 # Name output variable Z500 OBS_PCP_COMBINE_OUTPUT_NAME = Z500 -# input and output data directories for each application in PROCESS_LIST OBS_PCP_COMBINE_INPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/ERA/Regrid OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/ERA/Daily -# Input ERA Interim OBS_PCP_COMBINE_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/Z500_6hourly_{valid?fmt=%Y%m%d%H}_NH.nc OBS_PCP_COMBINE_OUTPUT_TEMPLATE = Z500_daily_{valid?fmt=%Y%m%d?shift=-64800}_NH.nc @@ -227,12 +209,16 @@ MASK_NAME = FULL WR_MPR_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/mpr +### +# UserScript(script_wr) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Run the Weather Regime Script [script_wr] -# Timing Information + LEAD_SEQ = 24 -# Run the user script once USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_PER_LEAD # Template of filenames to input to the user-script @@ -248,133 +234,67 @@ USER_SCRIPT_INPUT_TEMPLATE_LABELS = OBS_INPUT, FCST_INPUT USER_SCRIPT_COMMAND = {METPLUS_BASE}/parm/use_cases/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/WeatherRegime_driver.py +### +# StatAnalysis(sanal_wrclass) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#statanalysis +### + [sanal_wrclass] -# Format of VALID_BEG and VALID_END using % items -# Note, you cannot have hour, minutes, or seconds here -# %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc. -# see www.strftime.org for more information -# %Y%m%d expands to YYYYMMDD -VALID_TIME_FMT = %Y%m%d -# Start time for METplus run - must match VALID_TIME_FMT +VALID_TIME_FMT = %Y%m%d VALID_BEG = 20001202 - -# End time for METplus run - must match VALID_TIME_FMT VALID_END = 20170228 +STAT_ANALYSIS_CONFIG_FILE = {PARM_BASE}/met_config/STATAnalysisConfig_wrapped + MODEL1 = GFS MODEL1_OBTYPE = ADPUPA -# Location of MET config file to pass to StatAnalysis -# References CONFIG_DIR from the [dir] section -STAT_ANALYSIS_CONFIG_FILE = {CONFIG_DIR}/STATAnalysisConfig_wrapped - -# stat_analysis job info STAT_ANALYSIS_JOB_NAME = aggregate_stat -# if using -dump_row, put in JOBS_ARGS "-dump_row [dump_row_file]" -# if using -out_stat, put in JOBS_ARGS "-out_stat [out_stat_file]" -# METplus will fill in filename STAT_ANALYSIS_JOB_ARGS = -out_line_type MCTS -out_thresh >=1,>=2,>=3,>=4,>=5 -out_stat [out_stat_file] -# Optional variables for further filtering -# can be blank, single, or multiple values -# if more than one use comma separated list -# -# (FCST)(OBS)_(VALID)(INIT)_HOUR_LIST: HH format (ex. 00, 06, 12) -# (FCST)(OBS)_LEAD_LIST: HH[H][MMSS] format (ex. 00, 06, 120) MODEL_LIST = {MODEL1} FCST_LEAD_LIST = 24 LINE_TYPE_LIST = MPR -# how to treat items listed in above _LIST variables -# GROUP_LIST_ITEMS: items listed in a given _LIST variable -# will be grouped together -# LOOP_LIST_ITEMS: items listed in a give _LIST variable -# will be looped over -# if not listed METplus will treat the list as a group + GROUP_LIST_ITEMS = MODEL_LIST LOOP_LIST_ITEMS = FCST_LEAD_LIST MODEL1_STAT_ANALYSIS_LOOKIN_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/mpr/WeatherRegime -# Output data directory STAT_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime -CONFIG_DIR = {PARM_BASE}/met_config - -# Optional settings to create templated directory and file name information -# to save files as stat_analysis output as, this is appended to STAT_ANALYSIS_OUTPUT_DIR -# if no template is provided a default filename set in the code will be used -# Use: -# string templates can be set for all the lists being looped over, just -# use and a lower case version of the list, ex. {fcst_valid_hour?fmt=%H} -# or {fcst_var?fmt=%s} -# For looping over models: -# can set MODELn_STAT_ANALYSIS_[DUMP_ROW/OUT_STAT]_TEMPLATE for individual models -# or STAT_ANALYSIS_[DUMP_ROW/OUT_STAT] with {model?fmt=%s} MODEL1_STAT_ANALYSIS_OUT_STAT_TEMPLATE = {model?fmt=%s}_ERA_WRClass_{lead?fmt=%H%M%S}L_MCTS.stat +### +# StatAnalysis(sanal_wrfreq) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#statanalysis +### + [sanal_wrfreq] -# Format of VALID_BEG and VALID_END using % items -# Note, you cannot have hour, minutes, or seconds here -# %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc. -# see www.strftime.org for more information -# %Y%m%d expands to YYYYMMDD -VALID_TIME_FMT = %Y%m%d -# Start time for METplus run - must match VALID_TIME_FMT +VALID_TIME_FMT = %Y%m%d VALID_BEG = 20001202 - -# End time for METplus run - must match VALID_TIME_FMT VALID_END = 20170228 +STAT_ANALYSIS_CONFIG_FILE = {PARM_BASE}/met_config/STATAnalysisConfig_wrapped + MODEL1 = GFS MODEL1_OBTYPE = ADPUPA -# Location of MET config file to pass to StatAnalysis -# References CONFIG_DIR from the [dir] section -STAT_ANALYSIS_CONFIG_FILE = {CONFIG_DIR}/STATAnalysisConfig_wrapped - -# stat_analysis job info STAT_ANALYSIS_JOB_NAME = aggregate_stat -# if using -dump_row, put in JOBS_ARGS "-dump_row [dump_row_file]" -# if using -out_stat, put in JOBS_ARGS "-out_stat [out_stat_file]" -# METplus will fill in filename STAT_ANALYSIS_JOB_ARGS = -out_line_type CNT -by DESC -out_stat [out_stat_file] -# Optional variables for further filtering -# can be blank, single, or multiple values -# if more than one use comma separated list -# -# (FCST)(OBS)_(VALID)(INIT)_HOUR_LIST: HH format (ex. 00, 06, 12) -# (FCST)(OBS)_LEAD_LIST: HH[H][MMSS] format (ex. 00, 06, 120) MODEL_LIST = {MODEL1} FCST_LEAD_LIST = 24 LINE_TYPE_LIST = MPR -# how to treat items listed in above _LIST variables -# GROUP_LIST_ITEMS: items listed in a given _LIST variable -# will be grouped together -# LOOP_LIST_ITEMS: items listed in a give _LIST variable -# will be looped over -# if not listed METplus will treat the list as a group + GROUP_LIST_ITEMS = MODEL_LIST LOOP_LIST_ITEMS = FCST_LEAD_LIST MODEL1_STAT_ANALYSIS_LOOKIN_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/mpr/freq -# Output data directory STAT_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime -CONFIG_DIR = {PARM_BASE}/met_config - -# Optional settings to create templated directory and file name information -# to save files as stat_analysis output as, this is appended to STAT_ANALYSIS_OUTPUT_DIR -# if no template is provided a default filename set in the code will be used -# Use: -# string templates can be set for all the lists being looped over, just -# use and a lower case version of the list, ex. {fcst_valid_hour?fmt=%H} -# or {fcst_var?fmt=%s} -# For looping over models: -# can set MODELn_STAT_ANALYSIS_[DUMP_ROW/OUT_STAT]_TEMPLATE for individual models -# or STAT_ANALYSIS_[DUMP_ROW/OUT_STAT] with {model?fmt=%s} MODEL1_STAT_ANALYSIS_OUT_STAT_TEMPLATE = {model?fmt=%s}_ERA_WR_freq_{lead?fmt=%H%M%S}L_CNT.stat diff --git a/parm/use_cases/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_Blocking.conf b/parm/use_cases/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_Blocking.conf index 1b35aa2e51..0b4a32cca6 100644 --- a/parm/use_cases/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_Blocking.conf +++ b/parm/use_cases/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_Blocking.conf @@ -1,155 +1,136 @@ -# UserScript wrapper example - [config] + +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_Blocking.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + # All steps, including pre-processing: # PROCESS_LIST = RegridDataPlane(regrid_obs), PcpCombine(daily_mean_obs), PcpCombine(running_mean_obs), PcpCombine(anomaly_obs), UserScript(script_blocking) # Only Blocking Analysis script for the observations + PROCESS_LIST = UserScript(script_blocking) -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run VALID_BEG = 1979120100 - -# End time for METplus run VALID_END = 2017022800 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 86400 -# 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 = 0 # Only Process DJF SKIP_TIMES = "%m:begin_end_incr(3,11,1)", "%m%d:0229" -# 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 = processes -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/use_cases/model_applications/s2s_mid_lat # Run the obs data # A variable set to be used in the pre-processing steps OBS_RUN = True +### +# RegridDataPlane(regrid_obs) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + # Regrid the observations to 1 degree using regrid_data_plane [regrid_obs] -# End time for METplus run -VALID_END = 2017022818 -# Increment between METplus runs in seconds. Must be >= 60 +VALID_END = 2017022818 VALID_INCREMENT = 21600 -# Run regrid_data_plane on forecast data OBS_REGRID_DATA_PLANE_RUN = {OBS_RUN} -# If true, process each field individually and write a file for each -# If false, run once per run time passing in all fields specified OBS_DATA_PLANE_ONCE_PER_FIELD = False -# Name of input field to process OBS_REGRID_DATA_PLANE_VAR1_INPUT_FIELD_NAME = Z - -# Level of input field to process OBS_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = P500 - -# Name of output field to create OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = Z500 -# Mask to use for regridding REGRID_DATA_PLANE_VERIF_GRID = latlon 360 90 89 0 -1.0 1.0 -# Method to run regrid_data_plane, not setting this will default to NEAREST REGRID_DATA_PLANE_METHOD = BILIN -# Regridding width used in regrid_data_plane, not setting this will default to 1 REGRID_DATA_PLANE_WIDTH = 2 -# input and output data directories for each application in PROCESS_LIST OBS_REGRID_DATA_PLANE_INPUT_DIR = /gpfs/fs1/collections/rda/data/ds627.0/ei.oper.an.pl OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Regrid -# format of filenames -# Input ERA Interim OBS_REGRID_DATA_PLANE_INPUT_TEMPLATE = {valid?fmt=%Y%m}/ei.oper.an.pl.regn128sc.{valid?fmt=%Y%m%d%H} OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/Z500_6hourly_{init?fmt=%Y%m%d%H}_NH.nc +### +# PCPCombine(daily_mean_obs) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Perform a sum over the 4 daily times that have been regridded using pcp_combine # 00, 06, 12, 18 UTC [daily_mean_obs] -# Start time for METplus run -VALID_BEG = 1979120118 -# End time for METplus run +VALID_BEG = 1979120118 VALID_END = 2017022818 -# run pcp_combine on obs data OBS_PCP_COMBINE_RUN = {OBS_RUN} -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, DERIVE, and USER_DEFINED OBS_PCP_COMBINE_METHOD = DERIVE OBS_PCP_COMBINE_STAT_LIST = MEAN -# field name and level of 1 hr accumulation in forecast files OBS_PCP_COMBINE_INPUT_ACCUMS = 6 OBS_PCP_COMBINE_INPUT_NAMES = Z500 OBS_PCP_COMBINE_INPUT_LEVELS = "(*,*)" OBS_PCP_COMBINE_INPUT_OPTIONS = convert(x) = x / 9.81; set_attr_valid = "{valid?fmt=%Y%m%d_%H%M%S?shift=-64800}"; -# Convert output and set 24 hours as the accumulation OBS_PCP_COMBINE_OUTPUT_ACCUM = 24 OBS_PCP_COMBINE_DERIVE_LOOKBACK = 24 -# Name output variable Z500 OBS_PCP_COMBINE_OUTPUT_NAME = Z500 -# Input and output Data directories for each application in PROCESS_LIST OBS_PCP_COMBINE_INPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Regrid OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Daily -# Input and Output filename templates, ERA Interim OBS_PCP_COMBINE_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/Z500_6hourly_{valid?fmt=%Y%m%d%H}_NH.nc OBS_PCP_COMBINE_OUTPUT_TEMPLATE = Z500_daily_{valid?fmt=%Y%m%d?shift=-64800}_NH.nc +### +# PCPCombine(running_mean_obs) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Perform a 5 day running mean on the data using pcp_combine + [running_mean_obs] + # Add the first/last 2 days to the skip times to compute the running mean SKIP_TIMES = "%m:begin_end_incr(3,11,1)", "%m%d:1201,1202,1203,1204,0229" -# run pcp_combine on obs data OBS_PCP_COMBINE_RUN = {OBS_RUN} -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, DERIVE, and USER_DEFINED OBS_PCP_COMBINE_METHOD = DERIVE OBS_PCP_COMBINE_STAT_LIST = MEAN -# field name, level and setting time attribute of 1 hr accumulation in forecast files OBS_PCP_COMBINE_INPUT_ACCUMS = 24 OBS_PCP_COMBINE_INPUT_NAMES = Z500 OBS_PCP_COMBINE_INPUT_LEVELS = "(*,*)" @@ -159,40 +140,36 @@ OBS_PCP_COMBINE_INPUT_OPTIONS = set_attr_valid = "{valid?fmt=%Y%m%d_%H%M%S?shift OBS_PCP_COMBINE_OUTPUT_ACCUM = 120 OBS_PCP_COMBINE_DERIVE_LOOKBACK = 120 -# Set output variable name OBS_PCP_COMBINE_OUTPUT_NAME = Z500 -# input and output data directories for each application in PROCESS_LIST OBS_PCP_COMBINE_INPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Daily OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Rmean5d -# format of filenames -# Input ERA Interim OBS_PCP_COMBINE_INPUT_TEMPLATE = Z500_daily_{valid?fmt=%Y%m%d}_NH.nc OBS_PCP_COMBINE_OUTPUT_TEMPLATE = Z500_5daymean_{valid?fmt=%Y%m%d?shift=-172800}_NH.nc +### +# PCPCombine(anomaly_obs) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Compute anomalies using the daily means and 5 day running mean using pcp_combine + [anomaly_obs] + # Add the first/last 2 days to the skip times to compute the running mean SKIP_TIMES = "%m:begin_end_incr(3,11,1)", "%m%d:1201,1202,0227,0228,0229" -# run pcp_combine on obs data OBS_PCP_COMBINE_RUN = {OBS_RUN} -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, DERIVE, and USER_DEFINED OBS_PCP_COMBINE_METHOD = USER_DEFINED -# User defined pcp_combine command OBS_PCP_COMBINE_COMMAND = -subtract {OBS_PCP_COMBINE_INPUT_DIR}/Daily/Z500_daily_{valid?fmt=%Y%m%d}_NH.nc {OBS_PCP_COMBINE_INPUT_DIR}/Rmean5d/Z500_5daymean_{valid?fmt=%Y%m%d}_NH.nc -field 'name="Z500"; level="(*,*)";' -# input and output data directories for each application in PROCESS_LIST OBS_PCP_COMBINE_INPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking/ERA/Anomaly -# format of filenames -# Input ERA Interim OBS_PCP_COMBINE_INPUT_TEMPLATE = Z500_daily_{valid?fmt=%Y%m%d}_NH.nc OBS_PCP_COMBINE_OUTPUT_TEMPLATE = Z500_anomaly_{valid?fmt=%Y%m%d}_NH.nc @@ -264,12 +241,18 @@ OBS_BLOCKING_PLOT_TITLE = DJF ERA Blocking Frequency OBS_BLOCKING_PLOT_OUTPUT_NAME = ERA_Block_Freq_DJF +### +# UserScript(script_blocking) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Run the Blocking Analysis Script [script_blocking] + # Skip the days on the edges that are not available due to the running mean SKIP_TIMES = "%m:begin_end_incr(3,11,1)", "%m%d:1201,1202,0227,0228,0229" -# Run the user script once pler lead +# Run the user script once per lead USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_PER_LEAD # Template of filenames to input to the user-script diff --git a/parm/use_cases/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_WeatherRegime.conf b/parm/use_cases/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_WeatherRegime.conf index 6f1a60d786..1d0583ea44 100644 --- a/parm/use_cases/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_WeatherRegime.conf +++ b/parm/use_cases/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_WeatherRegime.conf @@ -1,81 +1,69 @@ -# UserScript wrapper for Weather Regime Analysis [config] + +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_WeatherRegime.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + # All steps, including pre-processing: # PROCESS_LIST = RegridDataPlane(regrid_obs), PcpCombine(daily_mean_obs), UserScript(script_wr) # Weather Regime Analysis only: PROCESS_LIST = UserScript(script_wr) -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match VALID_TIME_FMT VALID_BEG = 1979120100 - -# End time for METplus run - must match VALID_TIME_FMT VALID_END = 2017022800 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds VALID_INCREMENT = 86400 -# 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 = 0 # Only Process DJF SKIP_TIMES = "%m:begin_end_incr(3,11,1)", "%m%d:0229" -# 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 +USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_PER_LEAD + LOOP_ORDER = processes -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/use_cases/model_applications/s2s_mid_lat +### +# RegridDataPlane(regrid_obs) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### # Regridding Pre-Processing Step [regrid_obs] -# Start time for METplus run - must match VALID_TIME_FMT -VALID_BEG = 1979120100 -# End time for METplus run - must match VALID_TIME_FMT +VALID_BEG = 1979120100 VALID_END = 2017022818 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 21600 # REGRID_DATA_PLANE (Pre Processing Step 1), currently turned off -# Run regrid_data_plane on forecast data + OBS_REGRID_DATA_PLANE_RUN = True -# If true, process each field individually and write a file for each -# If false, run once per run time passing in all fields specified OBS_DATA_PLANE_ONCE_PER_FIELD = False -# Name of input field to process OBS_REGRID_DATA_PLANE_VAR1_INPUT_FIELD_NAME = Z - -# Level of input field to process OBS_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = P500 - -# Name of output field to create OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = Z500 # Mask to use for regridding @@ -83,39 +71,33 @@ OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = Z500 # and 230 to 300 degrees longitude REGRID_DATA_PLANE_VERIF_GRID = latlon 71 31 54 230 -1.0 1.0 -# Method to run regrid_data_plane, not setting this will default to NEAREST REGRID_DATA_PLANE_METHOD = BILIN -# Regridding width used in regrid_data_plane, not setting this will default to 1 REGRID_DATA_PLANE_WIDTH = 2 -# input and output data directories for each application in PROCESS_LIST OBS_REGRID_DATA_PLANE_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/ERA/OrigData OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/ERA/Regrid -# format of filenames -# Input and output ERA Interim OBS_REGRID_DATA_PLANE_INPUT_TEMPLATE = {valid?fmt=%Y%m}/ei.oper.an.pl.regn128sc.{valid?fmt=%Y%m%d%H} OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/Z500_6hourly_{init?fmt=%Y%m%d%H}_NH.nc +### +# PCPCombine(daily_mean_obs) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Daily Mean Pre-Processing Step [daily_mean_obs] -# Start time for METplus run -VALID_BEG = 1979120118 -# End time for METplus run +VALID_BEG = 1979120118 VALID_END = 2017022818 -# run pcp_combine on obs data OBS_PCP_COMBINE_RUN = True -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, DERIVE, and USER_DEFINED OBS_PCP_COMBINE_METHOD = DERIVE OBS_PCP_COMBINE_STAT_LIST = MEAN -# field name and level of 1 hr accumulation in forecast files OBS_PCP_COMBINE_INPUT_ACCUMS = 6 OBS_PCP_COMBINE_INPUT_NAMES = Z500 OBS_PCP_COMBINE_INPUT_LEVELS = "(*,*)" @@ -125,14 +107,11 @@ OBS_PCP_COMBINE_INPUT_OPTIONS = convert(x) = x / 9.81; set_attr_valid = "{valid? OBS_PCP_COMBINE_OUTPUT_ACCUM = 24 OBS_PCP_COMBINE_DERIVE_LOOKBACK = 24 -# Name output variable Z500 OBS_PCP_COMBINE_OUTPUT_NAME = Z500 -# input and output data directories for each application in PROCESS_LIST OBS_PCP_COMBINE_INPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/ERA/Regrid OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/ERA/Daily -# Input ERA Interim OBS_PCP_COMBINE_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/Z500_6hourly_{valid?fmt=%Y%m%d%H}_NH.nc OBS_PCP_COMBINE_OUTPUT_TEMPLATE = Z500_daily_{valid?fmt=%Y%m%d?shift=-64800}_NH.nc @@ -200,10 +179,13 @@ MASK_NAME = FULL WR_MPR_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/mpr +### +# UserScript(script_wr) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Run the Weather Regime Script [script_wr] -# Run the user script once -USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_PER_LEAD # Template of filenames to input to the user-script USER_SCRIPT_INPUT_TEMPLATE = {INPUT_BASE}/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime/ERA/Daily/Z500_daily_{valid?fmt=%Y%m%d}_NH.nc diff --git a/parm/use_cases/model_applications/s2s_mjo/UserScript_fcstGFS_obsERA_OMI.conf b/parm/use_cases/model_applications/s2s_mjo/UserScript_fcstGFS_obsERA_OMI.conf index 99fc2cc2a7..63fd483b91 100644 --- a/parm/use_cases/model_applications/s2s_mjo/UserScript_fcstGFS_obsERA_OMI.conf +++ b/parm/use_cases/model_applications/s2s_mjo/UserScript_fcstGFS_obsERA_OMI.conf @@ -1,63 +1,50 @@ -# OMI UserScript wrapper [config] + +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s_mjo/UserScript_fcstGFS_obsERA_OMI.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + # All steps, including pre-processing: #PROCESS_LIST = PcpCombine(daily_mean_fcst), RegridDataPlane(regrid_obs_olr), RegridDataPlane(regrid_fcst_olr), UserScript(create_eof_filelist), UserScript(script_omi) # Finding EOF files and OMI Analysis script for the observations + PROCESS_LIST = UserScript(create_eof_filelist), UserScript(script_omi) -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run VALID_BEG = 2017010100 - -# End time for METplus run VALID_END = 2018123100 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 86400 -# 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 = 0 -# 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 = processes -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/use_cases/model_applications/s2s_mjo +# variables referenced in other sections # Run the obs for these cases OBS_RUN = True FCST_RUN = True -# Mask to use for regridding -REGRID_DATA_PLANE_VERIF_GRID = latlon 144 17 -20 0 2.5 2.5 - -# Method to run regrid_data_plane, not setting this will default to NEAREST -REGRID_DATA_PLANE_METHOD = NEAREST - -# Regridding width used in regrid_data_plane, not setting this will default to 1 -REGRID_DATA_PLANE_WIDTH = 1 - # Input and Output Directories for the OBS OLR Files and output text file containing the file list OBS_OLR_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_mjo/UserScript_fcstGFS_obsERA_OMI/ERA/Regrid OBS_OLR_INPUT_TEMPLATE = OLR_{valid?fmt=%Y%m%d}.nc @@ -67,13 +54,28 @@ FCST_OLR_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_mjo/UserScript_fcstGFS_ FCST_OLR_INPUT_TEMPLATE = OLR_{valid?fmt=%Y%m%d}.nc +### +# RegridDataPlane Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + +REGRID_DATA_PLANE_VERIF_GRID = latlon 144 17 -20 0 2.5 2.5 + +REGRID_DATA_PLANE_METHOD = NEAREST + +REGRID_DATA_PLANE_WIDTH = 1 + + +### +# PCPCombine(daily_mean_fcst) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Configurations for pcp_combine: Create daily means for the GFS [daily_mean_fcst] -# run pcp_combine on obs data + FCST_PCP_COMBINE_RUN = {FCST_RUN} -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, DERIVE, and USER_DEFINED FCST_PCP_COMBINE_METHOD = USER_DEFINED FCST_PCP_COMBINE_COMMAND = -derive mean {FCST_PCP_COMBINE_INPUT_DIR}/{valid?fmt=%Y}/{valid?fmt=%Y%m%d}/gfs.0p25.{valid?fmt=%Y%m%d%H}.f{lead?fmt=%HHH?shift=86400}.grib2 {FCST_PCP_COMBINE_INPUT_DIR}/{valid?fmt=%Y}/{valid?fmt=%Y%m%d}/gfs.0p25.{valid?fmt=%Y%m%d%H}.f{lead?fmt=%HHH?shift=75600}.grib2 {FCST_PCP_COMBINE_INPUT_DIR}/{valid?fmt=%Y}/{valid?fmt=%Y%m%d}/gfs.0p25.{valid?fmt=%Y%m%d%H}.f{lead?fmt=%HHH?shift=64800}.grib2 {FCST_PCP_COMBINE_INPUT_DIR}/{init?fmt=%Y}/{init?fmt=%Y%m%d}/gfs.0p25.{init?fmt=%Y%m%d%H}.f{lead?fmt=%HHH?shift=54000}.grib2 {FCST_PCP_COMBINE_INPUT_DIR}/{init?fmt=%Y}/{init?fmt=%Y%m%d}/gfs.0p25.{init?fmt=%Y%m%d%H}.f{lead?fmt=%HHH?shift=43200}.grib2 {FCST_PCP_COMBINE_INPUT_DIR}/{init?fmt=%Y}/{init?fmt=%Y%m%d}/gfs.0p25.{init?fmt=%Y%m%d%H}.f{lead?fmt=%HHH?shift=32400}.grib2 {FCST_PCP_COMBINE_INPUT_DIR}/{init?fmt=%Y}/{init?fmt=%Y%m%d}/gfs.0p25.{init?fmt=%Y%m%d%H}.f{lead?fmt=%HHH?shift=21600}.grib2 {FCST_PCP_COMBINE_INPUT_DIR}/{init?fmt=%Y}/{init?fmt=%Y%m%d}/gfs.0p25.{init?fmt=%Y%m%d%H}.f{lead?fmt=%HHH?shift=10800}.grib2 -field 'name="ULWRF"; level="L0"; set_attr_valid = "{valid?fmt=%Y%m%d_%H%M%S}"; GRIB2_ipdtmpl_index = 9; GRIB2_ipdtmpl_val = 8;' @@ -85,68 +87,64 @@ FCST_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mjo/UserScript_fcstGFS_obsERA_OM FCST_PCP_COMBINE_OUTPUT_TEMPLATE = GFS_mean_{valid?fmt=%Y%m%d}.nc +### +# RegridDataPlane(regrid_obs_olr) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + # Configurations for regrid_data_plane: Regrid ERA OLR to -20 to 20 latitude [regrid_obs_olr] + LEAD_SEQ = 0 -# Run regrid_data_plane on forecast data OBS_REGRID_DATA_PLANE_RUN = {OBS_RUN} -# If true, process each field individually and write a file for each -# If false, run once per run time passing in all fields specified OBS_DATA_PLANE_ONCE_PER_FIELD = False -# Name of input field to process OBS_REGRID_DATA_PLANE_VAR1_NAME = olr - -# Level of input field to process OBS_REGRID_DATA_PLANE_VAR1_LEVELS = "({valid?fmt=%Y%m%d_%H%M%S},*,*)" - OBS_REGRID_DATA_PLANE_VAR1_OPTIONS = file_type=NETCDF_NCCF; censor_thresh=eq-999.0; censor_val=-9999.0; -# Name of output field to create OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = olr -# input and output data directories for each application in PROCESS_LIST OBS_REGRID_DATA_PLANE_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_mjo/UserScript_fcstGFS_obsERA_OMI/ERA/daily_mean OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {OBS_OLR_INPUT_DIR} -# format of filenames -# Input ERA Interim OBS_REGRID_DATA_PLANE_INPUT_TEMPLATE = olr.1x.7920.nc OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = {OBS_OLR_INPUT_TEMPLATE} +### +# RegridDataPlane(regrid_fcst_olr) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + # Configurations for regrid_data_plane: Regrid GFS OLR to -20 to 20 latitude [regrid_fcst_olr] -# Run regrid_data_plane on forecast data + FCST_REGRID_DATA_PLANE_RUN = {FCST_RUN} -# If true, process each field individually and write a file for each -# If false, run once per run time passing in all fields specified REGRID_DATA_PLANE_ONCE_PER_FIELD = False -# Name of input field to process FCST_REGRID_DATA_PLANE_VAR1_NAME = ULWRF_L0_mean - -# Level of input field to process FCST_REGRID_DATA_PLANE_VAR1_LEVELS = "(*,*)" - -# Name of output field to create FCST_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = olr -# input and output data directories for each application in PROCESS_LIST FCST_REGRID_DATA_PLANE_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_mjo/UserScript_fcstGFS_obsERA_OMI/GFS/daily_mean FCST_REGRID_DATA_PLANE_OUTPUT_DIR = {FCST_OLR_INPUT_DIR} -# format of filenames -# Input ERA Interim FCST_REGRID_DATA_PLANE_INPUT_TEMPLATE = GFS_mean_{valid?fmt=%Y%m%d}.nc FCST_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = {FCST_OLR_INPUT_TEMPLATE} +### +# UserScript(create_eof_filelist) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Create the EOF filelists [create_eof_filelist] + # Find the files for each time to create the time list USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE @@ -194,6 +192,11 @@ FCST_PHASE_PLOT_OUTPUT_NAME = fcst_OMI_comp_phase FCST_PHASE_PLOT_OUTPUT_FORMAT = png +### +# UserScript(script_omi) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Configurations for UserScript: Run the RMM Analysis driver [script_omi] # Run the script once per lead time diff --git a/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_OMI.conf b/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_OMI.conf index 19d97d361b..8f7a87db21 100644 --- a/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_OMI.conf +++ b/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_OMI.conf @@ -1,100 +1,79 @@ # OMI UserScript wrapper [config] + + # All steps, including pre-processing: #PROCESS_LIST = RegridDataPlane(regrid_obs_olr), UserScript(create_eof_filelist), UserScript(script_omi) # Finding EOF files and OMI Analysis script for the observations PROCESS_LIST = UserScript(create_eof_filelist), UserScript(script_omi) -# 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 = VALID -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run VALID_BEG = 1979010100 - -# End time for METplus run VALID_END = 2012123000 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 86400 -# 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 = 0 -# 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 = processes -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/use_cases/model_applications/s2s_mjo + +# variables referenced in other sections # Run the obs for these cases OBS_RUN = True FCST_RUN = False -# Mask to use for regridding +OBS_OLR_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_OMI/ERA +OBS_OLR_INPUT_TEMPLATE = OLR_{valid?fmt=%Y%m%d}.nc + + +### +# RegridDataPlane(regrid_obs_olr) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + REGRID_DATA_PLANE_VERIF_GRID = latlon 144 17 -20 0 2.5 2.5 -# Method to run regrid_data_plane, not setting this will default to NEAREST REGRID_DATA_PLANE_METHOD = NEAREST -# Regridding width used in regrid_data_plane, not setting this will default to 1 REGRID_DATA_PLANE_WIDTH = 1 -# Input and Output Directories for the OBS OLR Files and output text file containing the file list -OBS_OLR_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_OMI/ERA -OBS_OLR_INPUT_TEMPLATE = OLR_{valid?fmt=%Y%m%d}.nc +### +# RegridDataPlane(regrid_obs_olr) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### # Configurations for regrid_data_plane: Regrid OLR to -20 to 20 latitude [regrid_obs_olr] -# Run regrid_data_plane on forecast data + OBS_REGRID_DATA_PLANE_RUN = {OBS_RUN} -# If true, process each field individually and write a file for each -# If false, run once per run time passing in all fields specified OBS_DATA_PLANE_ONCE_PER_FIELD = False -# Name of input field to process OBS_REGRID_DATA_PLANE_VAR1_NAME = olr - -# Level of input field to process OBS_REGRID_DATA_PLANE_VAR1_LEVELS = "({valid?fmt=%Y%m%d_%H%M%S},*,*)" - OBS_REGRID_DATA_PLANE_VAR1_OPTIONS = file_type=NETCDF_NCCF; censor_thresh=eq-999.0; censor_val=-9999.0; -# Name of output field to create OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = olr -# input and output data directories for each application in PROCESS_LIST OBS_REGRID_DATA_PLANE_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_OMI OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {OBS_OLR_INPUT_DIR} -# format of filenames -# Input ERA Interim OBS_REGRID_DATA_PLANE_INPUT_TEMPLATE = olr.1x.7920.nc OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = {OBS_OLR_INPUT_TEMPLATE} +### +# UserScript(create_eof_filelist) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Create the EOF filelists [create_eof_filelist] + # Find the files for each time to create the time list USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE @@ -140,6 +119,11 @@ OBS_PHASE_PLOT_OUTPUT_NAME = obs_OMI_comp_phase OBS_PHASE_PLOT_OUTPUT_FORMAT = png +### +# UserScript(script_omi) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Configurations for UserScript: Run the RMM Analysis driver [script_omi] # Run the script once per lead time diff --git a/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_PhaseDiagram.conf b/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_PhaseDiagram.conf index e4617cf895..ed50889f35 100644 --- a/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_PhaseDiagram.conf +++ b/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_PhaseDiagram.conf @@ -1,47 +1,41 @@ -# OMI UserScript wrapper [config] -# Steps + +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_PhaseDiagram.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = UserScript(obs_time_filelist), UserScript(script_PhaseDiagram) -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run VALID_BEG = 2012010100 - -# End time for METplus run VALID_END = 2012033100 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 86400 -# 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 = 0 -# 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 = processes -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/use_cases/model_applications/s2s_mjo +# variables referenced in other sections # Run the obs for these cases OBS_RUN = True @@ -54,8 +48,14 @@ OBS_PDTIME_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/s2s_mjo/UserScript_obsE OBS_PDTIME_OUTPUT_TEMPLATE = time_list_lead{lead?fmt=%HHH}.txt +### +# UserScript(obs_time_filelist) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Create a time file that contains the times we want to filter for plotting [obs_time_filelist] + # Find the files for each time USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_FOR_EACH @@ -92,6 +92,11 @@ PHASE_DIAGRAM_PLOT_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_ OBS_PHASE_PLOT_OUTPUT_NAME = RMM_phase_diagram +### +# UserScript(script_PhaseDiagram) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Configurations for UserScript: Run the RMM Analysis driver [script_PhaseDiagram] # list of strings to loop over for each run time. diff --git a/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_RMM.conf b/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_RMM.conf index 8f6b64b8c4..add8fae514 100644 --- a/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_RMM.conf +++ b/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_RMM.conf @@ -1,91 +1,78 @@ -# RMM UserScript wrapper [config] + +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_RMM.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + # All steps, including creating daily means and mean daily annual cycle #PROCESS_LIST = PcpCombine(mean_daily_annual_cycle_obs_wind), PcpCombine(mean_daily_annual_cycle_obs_olr), PcpCombine(daily_mean_obs_wind), PcpCombine(daily_mean_obs_olr), UserScript(create_mda_filelist), UserScript(harmonic_anomalies_olr), UserScript(harmonic_anomalies_u850), UserScript(harmonic_anomalies_u200), RegridDataPlane(regrid_obs_olr), RegridDataPlane(regrid_obs_u850), RegridDataPlane(regrid_obs_u200), UserScript(script_rmm) # Computing anomalies, regridding, and RMM Analysis script + PROCESS_LIST = UserScript(create_mda_filelist), UserScript(harmonic_anomalies_olr), UserScript(harmonic_anomalies_u850), UserScript(harmonic_anomalies_u200), RegridDataPlane(regrid_obs_olr), RegridDataPlane(regrid_obs_u850), RegridDataPlane(regrid_obs_u200), UserScript(script_rmm) -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run VALID_BEG = 2000010100 - -# End time for METplus run VALID_END = 2002123000 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 86400 -# 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 = 0 -# 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 = processes -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/use_cases/model_applications/s2s_mjo +# variables referenced in other sections # Run the obs for these cases OBS_RUN = True FCST_RUN = False -# Mask to use for regridding -REGRID_DATA_PLANE_VERIF_GRID = latlon 144 13 -15 0 2.5 2.5 -# Method to run regrid_data_plane, not setting this will default to NEAREST -REGRID_DATA_PLANE_METHOD = NEAREST +### +# RegridDataPlane Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### -# Regridding width used in regrid_data_plane, not setting this will default to 1 +REGRID_DATA_PLANE_VERIF_GRID = latlon 144 13 -15 0 2.5 2.5 +REGRID_DATA_PLANE_METHOD = NEAREST REGRID_DATA_PLANE_WIDTH = 1 +### +# PCPCombine(mean_daily_annual_cycle_obs_wind) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Configurations for creating U200 and U850 mean daily annual cycle obs # Mean daily annual cycle anomalies are computed for 1979 - 2001 [mean_daily_annual_cycle_obs_wind] -LOOP_BY = VALID -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run -# Set to one year, since we want a mean daily across all years -# Using 2012 because leap day will be included VALID_BEG = 2012010100 - -# End time for METplus run VALID_END = 2012123100 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 86400 -# run pcp_combine on obs data OBS_PCP_COMBINE_RUN = {OBS_RUN} -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, DERIVE, and USER_DEFINED OBS_PCP_COMBINE_METHOD = USER_DEFINED OBS_PCP_COMBINE_COMMAND = -derive mean {OBS_PCP_COMBINE_INPUT_DIR}/{OBS_PCP_COMBINE_INPUT_TEMPLATE} -field 'name="U_P850_mean"; level="(*,*)"; set_attr_valid = "{valid?fmt=%Y%m%d_%H%M%S}";' -field 'name="U_P200_mean"; level="(*,*)"; set_attr_valid = "{valid?fmt=%Y%m%d_%H%M%S}";' -name U_P850_mean,U_P200_mean @@ -97,33 +84,23 @@ OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM OBS_PCP_COMBINE_OUTPUT_TEMPLATE = ERA_wind_daily_annual_{valid?fmt=%m%d}.nc +### +# PCPCombine(mean_daily_annual_cycle_obs_olr) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Configurations for creating OLR mean daily annual cycle obs # Mean daily annual cycle anomalies are computed for 1979 - 2001 [mean_daily_annual_cycle_obs_olr] -LOOP_BY = VALID -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run -# Set to one year, since we want a mean daily across all years -# Using 2012 because leap day will be included VALID_BEG = 2012010100 - -# End time for METplus run VALID_END = 2012123100 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 86400 -# run pcp_combine on obs data OBS_PCP_COMBINE_RUN = {OBS_RUN} -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, DERIVE, and USER_DEFINED OBS_PCP_COMBINE_METHOD = USER_DEFINED OBS_PCP_COMBINE_COMMAND = -derive mean {OBS_PCP_COMBINE_INPUT_DIR}/{OBS_PCP_COMBINE_INPUT_TEMPLATE} -field 'name="olr"; level="(*,*)";' @@ -135,30 +112,22 @@ OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM OBS_PCP_COMBINE_OUTPUT_TEMPLATE = ERA_OLR_daily_annual_{valid?fmt=%m%d}.nc +### +# PCPCombine(daily_mean_obs_wind) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Configurations for creating U200 and U850 daily mean obs [daily_mean_obs_wind] -LOOP_BY = VALID -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run VALID_BEG = 1979010100 - -# End time for METplus run VALID_END = 2002123100 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 86400 -# run pcp_combine on obs data OBS_PCP_COMBINE_RUN = {OBS_RUN} -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, DERIVE, and USER_DEFINED OBS_PCP_COMBINE_METHOD = USER_DEFINED OBS_PCP_COMBINE_COMMAND = -derive mean {OBS_PCP_COMBINE_INPUT_DIR}/{OBS_PCP_COMBINE_INPUT_TEMPLATE} -field 'name="U"; level="P850"; set_attr_valid = "{valid?fmt=%Y%m%d_%H%M%S}";' -field 'name="U"; level="P200"; set_attr_valid = "{valid?fmt=%Y%m%d_%H%M%S}";' @@ -170,30 +139,22 @@ OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM OBS_PCP_COMBINE_OUTPUT_TEMPLATE = ERA_wind_daily_mean_{valid?fmt=%Y%m%d}.nc +### +# PCPCombine(daily_mean_obs_olr) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### + # Configurations for creating mean daily annual cycle obs OLR [daily_mean_obs_olr] -LOOP_BY = VALID -# 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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run VALID_BEG = 1979010100 - -# End time for METplus run VALID_END = 2002123100 - -# Increment between METplus runs in seconds. Must be >= 60 VALID_INCREMENT = 86400 -# run pcp_combine on obs data OBS_PCP_COMBINE_RUN = {OBS_RUN} -# method to run pcp_combine on forecast data -# Options are ADD, SUM, SUBTRACT, DERIVE, and USER_DEFINED OBS_PCP_COMBINE_METHOD = USER_DEFINED OBS_PCP_COMBINE_COMMAND = -add {OBS_PCP_COMBINE_INPUT_DIR}/{OBS_PCP_COMBINE_INPUT_TEMPLATE} -field 'name="olr"; level="({valid?fmt=%Y%m%d_%H%M%S},*,*)"; file_type=NETCDF_NCCF;' @@ -205,9 +166,15 @@ OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM OBS_PCP_COMBINE_OUTPUT_TEMPLATE = ERA_OLR_daily_mean_{valid?fmt=%Y%m%d}.nc +### +# UserScript(create_mda_filelist) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Creating a file list of the mean daily annual cycle files # This is run separately since it has different start/end times [create_mda_filelist] + # Find the files for each lead time USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_PER_LEAD @@ -228,8 +195,14 @@ USER_SCRIPT_INPUT_TEMPLATE_LABELS = input_mean_daily_annual_infiles_olr,input_me USER_SCRIPT_COMMAND = echo Populated file list for Mean daily annual cycle Input +### +# UserScript(harmonic_anomalies_olr) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Configurations to create anomalies for OLR [harmonic_anomalies_olr] + # list of strings to loop over for each run time. # Run the user script once per lead USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_PER_LEAD @@ -246,8 +219,14 @@ USER_SCRIPT_INPUT_TEMPLATE_LABELS = input_daily_mean_infiles USER_SCRIPT_COMMAND = {METPLUS_BASE}/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_RMM/compute_harmonic_anomalies.py 'METPLUS_FILELIST_INPUT_MEAN_DAILY_ANNUAL_INFILES_OLR' 'olr' 'olr_NA_mean' '{OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM/ERA/Anomaly' 'ERA_OLR_anom' +### +# UserScript(harmonic_anomalies_u850) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Configurations to create anomalies for U850 [harmonic_anomalies_u850] + # list of strings to loop over for each run time. # Run the user script once per lead USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_PER_LEAD @@ -264,8 +243,14 @@ USER_SCRIPT_INPUT_TEMPLATE_LABELS = input_daily_mean_infiles USER_SCRIPT_COMMAND = {METPLUS_BASE}/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_RMM/compute_harmonic_anomalies.py 'METPLUS_FILELIST_INPUT_MEAN_DAILY_ANNUAL_INFILES_WIND' 'U_P850_mean' 'U_P850_mean' '{OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM/ERA/Anomaly' 'ERA_U850_anom' +### +# UserScript(harmonic_anomalies_u200) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Configurations to create anomalies for U200 [harmonic_anomalies_u200] + # list of strings to loop over for each run time. # Run the user script once per lead USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_PER_LEAD @@ -282,86 +267,71 @@ USER_SCRIPT_INPUT_TEMPLATE_LABELS = input_daily_mean_infiles USER_SCRIPT_COMMAND = {METPLUS_BASE}/parm/use_cases/model_applications/s2s_mjo/UserScript_obsERA_obsOnly_RMM/compute_harmonic_anomalies.py 'METPLUS_FILELIST_INPUT_MEAN_DAILY_ANNUAL_INFILES_WIND' 'U_P200_mean' 'U_P200_mean' '{OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM/ERA/Anomaly' 'ERA_U200_anom' +### +# RegridDataPlane(regrid_obs_olr) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + # Configurations for regrid_data_plane: Regrid OLR to -15 to 15 latitude [regrid_obs_olr] -# Run regrid_data_plane on forecast data + OBS_REGRID_DATA_PLANE_RUN = {OBS_RUN} -# If true, process each field individually and write a file for each -# If false, run once per run time passing in all fields specified REGRID_DATA_PLANE_ONCE_PER_FIELD = False -# Name of input field to process OBS_REGRID_DATA_PLANE_VAR1_NAME = olr_anom - -# Level of input field to process OBS_REGRID_DATA_PLANE_VAR1_LEVELS = "(*,*)" - -# Name of output field to create OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = OLR_anom -# input and output data directories for each application in PROCESS_LIST OBS_REGRID_DATA_PLANE_INPUT_DIR = {OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM/ERA/Anomaly OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM/ERA/Regrid -# format of filenames -# Input ERA Interim OBS_REGRID_DATA_PLANE_INPUT_TEMPLATE = ERA_OLR_anom_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = ERA_OLR_{valid?fmt=%Y%m%d}.nc +### +# RegridDataPlane(regrid_obs_u850) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + # Configurations for regrid_data_plane: Regrid u850 to -15 to 15 latitude [regrid_obs_u850] -# Run regrid_data_plane on forecast data + OBS_REGRID_DATA_PLANE_RUN = {OBS_RUN} -# If true, process each field individually and write a file for each -# If false, run once per run time passing in all fields specified REGRID_DATA_PLANE_ONCE_PER_FIELD = False -# Name of input field to process OBS_REGRID_DATA_PLANE_VAR1_NAME = U_P850_mean_anom - -# Level of input field to process OBS_REGRID_DATA_PLANE_VAR1_LEVELS = "(*,*)" - -# Name of output field to create OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = U_P850_anom -# input and output data directories for each application in PROCESS_LIST OBS_REGRID_DATA_PLANE_INPUT_DIR = {OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM/ERA/Anomaly OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM/ERA/Regrid -# format of filenames -# Input ERA Interim OBS_REGRID_DATA_PLANE_INPUT_TEMPLATE = ERA_U850_anom_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = ERA_U850_{valid?fmt=%Y%m%d}.nc +### +# RegridDataPlane(regrid_obs_u200) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + # Configurations for regrid_data_plane: Regrid u200 to -15 to 15 latitude [regrid_obs_u200] -# Run regrid_data_plane on forecast data + OBS_REGRID_DATA_PLANE_RUN = {OBS_RUN} -# If true, process each field individually and write a file for each -# If false, run once per run time passing in all fields specified REGRID_DATA_PLANE_ONCE_PER_FIELD = False -# Name of input field to process OBS_REGRID_DATA_PLANE_VAR1_NAME = U_P200_mean_anom - -# Level of input field to process OBS_REGRID_DATA_PLANE_VAR1_LEVELS = "(*,*)" - -# Name of output field to create OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = U_P200_anom -# input and output data directories for each application in PROCESS_LIST OBS_REGRID_DATA_PLANE_INPUT_DIR = {OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM/ERA/Anomaly OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_mjo/UserScript_obsERA_obsOnly_RMM/ERA/Regrid -# format of filenames -# Input ERA Interim OBS_REGRID_DATA_PLANE_INPUT_TEMPLATE = ERA_U200_anom_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = ERA_U200_{valid?fmt=%Y%m%d}.nc @@ -418,6 +388,11 @@ OBS_TIMESERIES_PLOT_OUTPUT_NAME = obs_RMM_time_series OBS_TIMESERIES_PLOT_OUTPUT_FORMAT = png +### +# UserScript(script_rmm) Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + # Configurations for UserScript: Run the RMM Analysis driver [script_rmm] # list of strings to loop over for each run time. diff --git a/parm/use_cases/model_applications/short_range/EnsembleStat_fcstHRRRE_obsHRRRE_Sfc_MultiField.conf b/parm/use_cases/model_applications/short_range/EnsembleStat_fcstHRRRE_obsHRRRE_Sfc_MultiField.conf index 0506c7d588..830276b6d6 100644 --- a/parm/use_cases/model_applications/short_range/EnsembleStat_fcstHRRRE_obsHRRRE_Sfc_MultiField.conf +++ b/parm/use_cases/model_applications/short_range/EnsembleStat_fcstHRRRE_obsHRRRE_Sfc_MultiField.conf @@ -1,77 +1,130 @@ [config] -## Configuration-related settings such as the process list, begin and end times, etc. +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/short_range/EnsembleStat_fcstHRRRE_obsHRRRE_Sfc_MultiField.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = PB2NC, EnsembleStat -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Format of INIT_BEG and INT_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 +LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT INIT_BEG=2018070912 - -# End time for METplus run - must match INIT_TIME_FMT INIT_END=2018070912 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds INIT_INCREMENT=3600 -# 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 = 0,1,2 -# 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 -# Name to identify model (forecast) data in output -MODEL = HRRRE_ens +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +# PB2NC + +PB2NC_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/hrrr_ensemble_sfc/prepbufr +PB2NC_INPUT_TEMPLATE = {da_init?fmt=%Y%m%d}/{da_init?fmt=%Y%j%H%M}.rap.t{da_init?fmt=%H}z.prepbufr.tm{offset?fmt=%2H}.{da_init?fmt=%Y%m%d} + +PB2NC_SKIP_IF_OUTPUT_EXISTS = True + +PB2NC_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/short_range/EnsembleStat_fcstHRRRE_obsHRRRE_Sfc_MultiField/rap +PB2NC_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/{valid?fmt=%Y%m%d%H}.rap.nc + + +# EnsembleStat + +FCST_ENSEMBLE_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/hrrr_ensemble_sfc/fcst +FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = + {init?fmt=%Y%m%d%H}/postprd_mem0001/wrfprs_conus_mem0001_{lead?fmt=%HH}.grib2, + {init?fmt=%Y%m%d%H}/postprd_mem0002/wrfprs_conus_mem0002_{lead?fmt=%HH}.grib2 + +OBS_ENSEMBLE_STAT_POINT_INPUT_DIR = {PB2NC_OUTPUT_DIR} +OBS_ENSEMBLE_STAT_POINT_INPUT_TEMPLATE = {PB2NC_OUTPUT_TEMPLATE} + +ENSEMBLE_STAT_VERIFICATION_MASK_TEMPLATE = + {INPUT_BASE}/model_applications/short_range/mask/EAST.nc, + {INPUT_BASE}/model_applications/short_range/mask/WEST.nc, + {INPUT_BASE}/model_applications/short_range/mask/CONUS.nc, + {INPUT_BASE}/model_applications/short_range/mask/LMV.nc + +ENSEMBLE_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/short_range/EnsembleStat_fcstHRRRE_obsHRRRE_Sfc_MultiField/EnsembleStat +ENSEMBLE_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H%M} + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + +MODEL = HRRRE_ens OBTYPE = ANALYS -# The MET ensemble_stat logging level -# 0 quiet to 5 loud, Verbosity setting for MET output, 2 is default. -# This takes precendence over the general MET logging level set in metplus_logging.conf -#LOG_ENSEMBLE_STAT_VERBOSITY = 3 +ENS_VAR1_NAME = TMP +ENS_VAR1_LEVELS = Z02 +ENS_VAR1_THRESH = >=283, >=288, >=293, >=298, >=303 + +ENS_VAR2_NAME = DPT +ENS_VAR2_LEVELS = Z2 +ENS_VAR2_THRESH = >=278, >=283, >=288, >=293, >=298 + +ENS_VAR3_NAME = UGRD +ENS_VAR3_LEVELS = Z10 +ENS_VAR3_THRESH = <=-10, <=-5, <=-2, >=2, >=5, >=10 + +ENS_VAR4_NAME = VGRD +ENS_VAR4_LEVELS = Z10 +ENS_VAR4_THRESH = <=-10, <=-5, <=-2, >=2, >=5, >=10 + +ENS_VAR5_NAME = WIND +ENS_VAR5_LEVELS = Z10 +ENS_VAR5_THRESH = >=2, >=4, >=6, >=8, >=10 + +FCST_VAR1_NAME = TMP +FCST_VAR1_LEVELS = Z2 +BOTH_VAR1_THRESH = >=283, >=288, >=293, >=298, >=303 + +OBS_VAR1_NAME = {FCST_VAR1_NAME} +OBS_VAR1_LEVELS = {FCST_VAR1_LEVELS} +OBS_VAR1_OPTIONS = ens_ssvar_bin_size = 1.0; ens_phist_bin_size = 0.05; wind_thresh = >2.572; + -# MET Configuration files for pb2nc -PB2NC_CONFIG_FILE = {PARM_BASE}/met_config/PB2NCConfig_wrapped +### +# PB2NC Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pb2nc +### PB2NC_LEVEL_RANGE_END = 255 PB2NC_QUALITY_MARK_THRESH = 3 -# if True, pb2nc will skip processing a file if the output already exists -# used to speed up runs and reduce redundancy -PB2NC_SKIP_IF_OUTPUT_EXISTS = True - -# These are appended with PB2NC to differentiate the GRID, POLY, and MESSAGE_TYPE for point_stat. PB2NC_GRID = PB2NC_POLY = PB2NC_STATION_ID = PB2NC_MESSAGE_TYPE = ADPUPA, ADPSFC, AIRCFT, PROFLR -# Leave empty to process all PB2NC_OBS_BUFR_VAR_LIST = POB, QOB, TOB, ZOB, UOB, VOB, D_DPT, D_WDIR, D_WIND, D_RH, D_MIXR, D_PRMSL -# False for no time summary, True otherwise PB2NC_TIME_SUMMARY_FLAG = False PB2NC_TIME_SUMMARY_RAW_DATA = False PB2NC_TIME_SUMMARY_BEG = 000000 @@ -87,18 +140,19 @@ PB2NC_TIME_SUMMARY_VALID_THRESH = 0.0 PB2NC_OBS_WINDOW_BEGIN = -900 PB2NC_OBS_WINDOW_END = 900 + +### +# EnsembleStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#ensemblestat +### + ENSEMBLE_STAT_OBS_WINDOW_BEGIN = -900 ENSEMBLE_STAT_OBS_WINDOW_END = 900 -# number of expected members for ensemble. Should correspond with the -# number of items in the list for FCST_ENSEMBLE_STAT_INPUT_TEMPLATE ENSEMBLE_STAT_N_MEMBERS = 2 -# ens.ens_thresh value in the MET config file -# threshold for ratio of valid files to expected files to allow app to run ENSEMBLE_STAT_ENS_THRESH = 1.0 -# Used in the MET config file for: regrid to_grid field ENSEMBLE_STAT_REGRID_TO_GRID = FCST ENSEMBLE_STAT_REGRID_METHOD = BILIN ENSEMBLE_STAT_REGRID_WIDTH = 2 @@ -140,90 +194,7 @@ ENSEMBLE_STAT_ENSEMBLE_FLAG_NMEP = FALSE ENSEMBLE_STAT_ENSEMBLE_FLAG_RANK = FALSE ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE -ENSEMBLE_STAT_CONFIG_FILE = {PARM_BASE}/met_config/EnsembleStatConfig_wrapped - - -# MET_OBS_ERR_TABLE is not required. -# If the variable is not defined, or the value is not set -# than the MET default is used. +CONFIG_DIR={PARM_BASE}/use_cases/model_applications/short_range/EnsembleStat_fcstHRRRE_obsHRRRE_Sfc_MultiField ENSEMBLE_STAT_MET_OBS_ERR_TABLE = {CONFIG_DIR}/obs_error_table_V8.0.txt -# Variables and levels as specified in the field dictionary of the MET -# configuration file. Specify as FCST_VARn_NAME, FCST_VARn_LEVELS, -# (optional) FCST_VARn_OPTION - -ENS_VAR1_NAME = TMP -ENS_VAR1_LEVELS = Z02 -ENS_VAR1_THRESH = >=283, >=288, >=293, >=298, >=303 - -ENS_VAR2_NAME = DPT -ENS_VAR2_LEVELS = Z2 -ENS_VAR2_THRESH = >=278, >=283, >=288, >=293, >=298 - -ENS_VAR3_NAME = UGRD -ENS_VAR3_LEVELS = Z10 -ENS_VAR3_THRESH = <=-10, <=-5, <=-2, >=2, >=5, >=10 - -ENS_VAR4_NAME = VGRD -ENS_VAR4_LEVELS = Z10 -ENS_VAR4_THRESH = <=-10, <=-5, <=-2, >=2, >=5, >=10 - -ENS_VAR5_NAME = WIND -ENS_VAR5_LEVELS = Z10 -ENS_VAR5_THRESH = >=2, >=4, >=6, >=8, >=10 - - -FCST_VAR1_NAME = TMP -FCST_VAR1_LEVELS = Z2 -BOTH_VAR1_THRESH = >=283, >=288, >=293, >=298, >=303 - -OBS_VAR1_NAME = {FCST_VAR1_NAME} -OBS_VAR1_LEVELS = {FCST_VAR1_LEVELS} -OBS_VAR1_OPTIONS = ens_ssvar_bin_size = 1.0; ens_phist_bin_size = 0.05; wind_thresh = >2.572; - ENSEMBLE_STAT_OUTPUT_PREFIX = HRRRE_F{lead?fmt=%3H}_ADPSFC - -[dir] -# Use case config directory -CONFIG_DIR={PARM_BASE}/use_cases/model_applications/short_range/EnsembleStat_fcstHRRRE_obsHRRRE_Sfc_MultiField - -# input and output directories for pb2nc -PB2NC_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/hrrr_ensemble_sfc/prepbufr -PB2NC_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/short_range/EnsembleStat_fcstHRRRE_obsHRRRE_Sfc_MultiField/rap - -# input directory for ensemble_stat -FCST_ENSEMBLE_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/hrrr_ensemble_sfc/fcst - -# point observation input dir for ensemble_stat (can also set grid obs) -OBS_ENSEMBLE_STAT_POINT_INPUT_DIR = {PB2NC_OUTPUT_DIR} - -# output directory for ensemble_stat -ENSEMBLE_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/short_range/EnsembleStat_fcstHRRRE_obsHRRRE_Sfc_MultiField/EnsembleStat - - -[filename_templates] - -# input and output templates for pb2nc -PB2NC_INPUT_TEMPLATE = {da_init?fmt=%Y%m%d}/{da_init?fmt=%Y%j%H%M}.rap.t{da_init?fmt=%H}z.prepbufr.tm{offset?fmt=%2H}.{da_init?fmt=%Y%m%d} - -PB2NC_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d}/{valid?fmt=%Y%m%d%H}.rap.nc - -# input ensemble template - comma separated list of ensemble members -FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = - {init?fmt=%Y%m%d%H}/postprd_mem0001/wrfprs_conus_mem0001_{lead?fmt=%HH}.grib2, - {init?fmt=%Y%m%d%H}/postprd_mem0002/wrfprs_conus_mem0002_{lead?fmt=%HH}.grib2 - -# input template for EnsembleStat can also be defined using a single -# member with wildcard characters to find multiple files -#FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = -# {init?fmt=%Y%m%d%H}/postprd_mem000?/wrfprs_conus_mem000?_{lead?fmt=%HH}.grib2 - -OBS_ENSEMBLE_STAT_POINT_INPUT_TEMPLATE = {PB2NC_OUTPUT_TEMPLATE} - -ENSEMBLE_STAT_VERIFICATION_MASK_TEMPLATE = - {INPUT_BASE}/model_applications/short_range/mask/EAST.nc, - {INPUT_BASE}/model_applications/short_range/mask/WEST.nc, - {INPUT_BASE}/model_applications/short_range/mask/CONUS.nc, - {INPUT_BASE}/model_applications/short_range/mask/LMV.nc - -ENSEMBLE_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H%M} diff --git a/parm/use_cases/model_applications/short_range/EnsembleStat_fcstHRRR_fcstOnly_SurrogateSevere.conf b/parm/use_cases/model_applications/short_range/EnsembleStat_fcstHRRR_fcstOnly_SurrogateSevere.conf index 732e9b8997..2566dd2421 100644 --- a/parm/use_cases/model_applications/short_range/EnsembleStat_fcstHRRR_fcstOnly_SurrogateSevere.conf +++ b/parm/use_cases/model_applications/short_range/EnsembleStat_fcstHRRR_fcstOnly_SurrogateSevere.conf @@ -1,7 +1,30 @@ [config] +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/short_range/EnsembleStat_fcstHRRR_fcstOnly_SurrogateSevere.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = PCPCombine, EnsembleStat, RegridDataPlane + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H INIT_BEG=2020020500 @@ -13,6 +36,11 @@ LEAD_SEQ = 36 LOOP_ORDER = processes +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + FCST_PCP_COMBINE_RUN = True FCST_PCP_COMBINE_METHOD = DERIVE FCST_PCP_COMBINE_STAT_LIST = MAX @@ -39,9 +67,42 @@ FCST_REGRID_DATA_PLANE_OUTPUT_DIR = {FCST_PCP_COMBINE_OUTPUT_DIR} FCST_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = surrogate_severe_{init?fmt=%Y%m%d}_{lead?fmt=%HHH}V_regrid.nc +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + MODEL = FCST_ens OBTYPE = ANALYS +ENS_VAR1_NAME = {FCST_PCP_COMBINE_OUTPUT_NAME} +ENS_VAR1_LEVELS = "(*,*)" +ENS_VAR1_THRESH = >=14.2, >=19.0, >=26.0, >=38.0, >=61.0 + + +FCST_REGRID_DATA_PLANE_VAR1_INPUT_FIELD_NAME = MXUPHL_24_A1_ENS_FREQ_ge14.2 +FCST_REGRID_DATA_PLANE_VAR2_INPUT_FIELD_NAME = MXUPHL_24_A1_ENS_FREQ_ge19.0 +FCST_REGRID_DATA_PLANE_VAR3_INPUT_FIELD_NAME = MXUPHL_24_A1_ENS_FREQ_ge26.0 +FCST_REGRID_DATA_PLANE_VAR4_INPUT_FIELD_NAME = MXUPHL_24_A1_ENS_FREQ_ge38.0 +FCST_REGRID_DATA_PLANE_VAR5_INPUT_FIELD_NAME = MXUPHL_24_A1_ENS_FREQ_ge61.0 + +FCST_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = "(*,*)" +FCST_REGRID_DATA_PLANE_VAR2_INPUT_LEVEL = "(*,*)" +FCST_REGRID_DATA_PLANE_VAR3_INPUT_LEVEL = "(*,*)" +FCST_REGRID_DATA_PLANE_VAR4_INPUT_LEVEL = "(*,*)" +FCST_REGRID_DATA_PLANE_VAR5_INPUT_LEVEL = "(*,*)" + +FCST_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = MXUPHL_prob_75 +FCST_REGRID_DATA_PLANE_VAR2_OUTPUT_FIELD_NAME = MXUPHL_prob_80 +FCST_REGRID_DATA_PLANE_VAR3_OUTPUT_FIELD_NAME = MXUPHL_prob_85 +FCST_REGRID_DATA_PLANE_VAR4_OUTPUT_FIELD_NAME = MXUPHL_prob_90 +FCST_REGRID_DATA_PLANE_VAR5_OUTPUT_FIELD_NAME = MXUPHL_prob_95 + + +### +# PCPCombine Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### FCST_PCP_COMBINE_INPUT_ACCUMS = 1 FCST_PCP_COMBINE_INPUT_NAMES = MXUPHL @@ -52,7 +113,10 @@ FCST_PCP_COMBINE_DERIVE_LOOKBACK = 24 FCST_PCP_COMBINE_INPUT_DATATYPE = GRIB -ENSEMBLE_STAT_CONFIG_FILE = {PARM_BASE}/met_config/EnsembleStatConfig_wrapped +### +# EnsembleStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#ensemblestat +### ENSEMBLE_STAT_N_MEMBERS = 1 ENSEMBLE_STAT_ENS_THRESH = 1.0 @@ -98,30 +162,10 @@ ENSEMBLE_STAT_ENSEMBLE_FLAG_RANK = FALSE ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE -ENS_VAR1_NAME = {FCST_PCP_COMBINE_OUTPUT_NAME} -ENS_VAR1_LEVELS = "(*,*)" -ENS_VAR1_THRESH = >=14.2, >=19.0, >=26.0, >=38.0, >=61.0 - - -FCST_REGRID_DATA_PLANE_VAR1_INPUT_FIELD_NAME = MXUPHL_24_A1_ENS_FREQ_ge14.2 -FCST_REGRID_DATA_PLANE_VAR2_INPUT_FIELD_NAME = MXUPHL_24_A1_ENS_FREQ_ge19.0 -FCST_REGRID_DATA_PLANE_VAR3_INPUT_FIELD_NAME = MXUPHL_24_A1_ENS_FREQ_ge26.0 -FCST_REGRID_DATA_PLANE_VAR4_INPUT_FIELD_NAME = MXUPHL_24_A1_ENS_FREQ_ge38.0 -FCST_REGRID_DATA_PLANE_VAR5_INPUT_FIELD_NAME = MXUPHL_24_A1_ENS_FREQ_ge61.0 - -FCST_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = "(*,*)" -FCST_REGRID_DATA_PLANE_VAR2_INPUT_LEVEL = "(*,*)" -FCST_REGRID_DATA_PLANE_VAR3_INPUT_LEVEL = "(*,*)" -FCST_REGRID_DATA_PLANE_VAR4_INPUT_LEVEL = "(*,*)" -FCST_REGRID_DATA_PLANE_VAR5_INPUT_LEVEL = "(*,*)" - -FCST_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = MXUPHL_prob_75 -FCST_REGRID_DATA_PLANE_VAR2_OUTPUT_FIELD_NAME = MXUPHL_prob_80 -FCST_REGRID_DATA_PLANE_VAR3_OUTPUT_FIELD_NAME = MXUPHL_prob_85 -FCST_REGRID_DATA_PLANE_VAR4_OUTPUT_FIELD_NAME = MXUPHL_prob_90 -FCST_REGRID_DATA_PLANE_VAR5_OUTPUT_FIELD_NAME = MXUPHL_prob_95 - - +### +# RegridDataPlane Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### REGRID_DATA_PLANE_ONCE_PER_FIELD = False diff --git a/parm/use_cases/model_applications/short_range/GridStat_fcstFV3_obsGOES_BrightnessTempDmap.conf b/parm/use_cases/model_applications/short_range/GridStat_fcstFV3_obsGOES_BrightnessTempDmap.conf index 1413acf396..2deafe1408 100644 --- a/parm/use_cases/model_applications/short_range/GridStat_fcstFV3_obsGOES_BrightnessTempDmap.conf +++ b/parm/use_cases/model_applications/short_range/GridStat_fcstFV3_obsGOES_BrightnessTempDmap.conf @@ -1,28 +1,60 @@ [config] -# Loop by model initialization -LOOP_BY = init -INIT_TIME_FMT = %Y%m%d%H +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/short_range/GridStat_fcstFV3_obsGOES_BrightnessTempDmap.html -# Start time for METplus run -INIT_BEG = 2019052100 +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -# End time for METplus run -INIT_END = 2019052100 +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + +PROCESS_LIST = GridStat(lsm1), GridStat(mp1) + + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Increment between METplus runs in seconds. Must be >= 60 +LOOP_BY = init +INIT_TIME_FMT = %Y%m%d%H +INIT_BEG = 2019052100 +INIT_END = 2019052100 INIT_INCREMENT = 3600 +LEAD_SEQ = 1,2 + LOOP_ORDER = processes -PROCESS_LIST = GridStat(lsm1), GridStat(mp1) -# Sequence of leads to process -LEAD_SEQ = 1,2 +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/brightness_temperature +FCST_GRID_STAT_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/core_{instance}/core_{instance}_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_f{lead?fmt=%HH}.nc + +OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/brightness_temperature +OBS_GRID_STAT_INPUT_TEMPLATE = {valid?fmt=%Y_%m_%d}_141/remap_GOES-16.{valid?fmt=%Y%m%d}.{valid?fmt=%H%M%S}.nc + +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/short_range/brightness_temperature/grid_stat -FCST_IS_PROB = false -# Grid stat variables +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + FCST_GRID_STAT_VAR1_NAME = SBTA1613_topofatmosphere FCST_GRID_STAT_VAR1_LEVELS = "(*,*)" FCST_GRID_STAT_VAR1_THRESH = le235 @@ -33,31 +65,17 @@ OBS_GRID_STAT_VAR1_LEVELS = "(*,*)" OBS_GRID_STAT_VAR1_THRESH = le235 OBS_GRID_STAT_VAR1_OPTIONS = file_type = NETCDF_MET; +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### + GRID_STAT_NEIGHBORHOOD_WIDTH = 1 GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - GRID_STAT_OUTPUT_PREFIX = FV3_core_{instance} GRID_STAT_OUTPUT_FLAG_DMAP = BOTH GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE GRID_STAT_NC_PAIRS_FLAG_DISTANCE_MAP = TRUE - - -[dir] -# Input and Output Diretory of the object data -FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/brightness_temperature -OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/brightness_temperature - -#Grid Stat output data location -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/short_range/brightness_temperature/grid_stat - - -[filename_templates] -# Forecast Filename Template -FCST_GRID_STAT_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/core_{instance}/core_{instance}_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_f{lead?fmt=%HH}.nc - -# Obs Filename Template -OBS_GRID_STAT_INPUT_TEMPLATE = {valid?fmt=%Y_%m_%d}_141/remap_GOES-16.{valid?fmt=%Y%m%d}.{valid?fmt=%H%M%S}.nc diff --git a/parm/use_cases/model_applications/short_range/GridStat_fcstHRRR_obsPracPerfect_SurrogateSevere.conf b/parm/use_cases/model_applications/short_range/GridStat_fcstHRRR_obsPracPerfect_SurrogateSevere.conf index c72fffc792..0301941e0f 100644 --- a/parm/use_cases/model_applications/short_range/GridStat_fcstHRRR_obsPracPerfect_SurrogateSevere.conf +++ b/parm/use_cases/model_applications/short_range/GridStat_fcstHRRR_obsPracPerfect_SurrogateSevere.conf @@ -1,40 +1,64 @@ -# HRRR Surrogate Severe verified against Practically Perfect - [config] -# time looping - options are INIT, VALID, RETRO, and REALTIME -LOOP_BY = VALID -# Format of INIT_BEG and INIT_END -VALID_TIME_FMT = %Y%m%d%H +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/short_range/GridStat_fcstHRRR_obsPracPerfect_SurrogateSevere.html -# Start time for METplus run -VALID_BEG=2020020612 +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -# End time for METplus run -VALID_END=2020020612 +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + +PROCESS_LIST = GridStat + + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Increment between METplus runs in seconds. Must be >= 60 +LOOP_BY = VALID +VALID_TIME_FMT = %Y%m%d%H +VALID_BEG=2020020612 +VALID_END=2020020612 VALID_INCREMENT=86400 -# forecast leads to process INIT_SEQ = 0 LEAD_SEQ_MIN = 36 LEAD_SEQ_MAX = 36 -# Options are times, processes -# times = run all items in the PROCESS_LIST for a single initialization -# time, then repeat until all times have been evaluated. -# processes = run each item in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST. LOOP_ORDER = times -# List of applications to run -PROCESS_LIST = GridStat +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/surrogate_severe_prac_perfect +FCST_GRID_STAT_INPUT_TEMPLATE = surrogate_severe_{init?fmt=%Y%m%d}_{lead?fmt=%HHH}V_regrid.nc + +OBS_GRID_STAT_INPUT_DIR = {FCST_GRID_STAT_INPUT_DIR} +OBS_GRID_STAT_INPUT_TEMPLATE = StormReps_211_Probs.{init?fmt=%Y%m%d}.nc + +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/short_range/surrogate_severe_prac_perfect/grid_stat + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### MODEL = HRRR OBTYPE = PP -# Forecast Variables FCST_VAR1_NAME = MXUPHL_prob_75 FCST_VAR1_LEVELS = "(*,*)" FCST_VAR1_THRESH = ge0.02, ge0.05, ge0.10, ge0.10, ge0.15, ge0.30, ge0.45, ge0.60 @@ -55,7 +79,6 @@ FCST_VAR5_NAME = MXUPHL_prob_95 FCST_VAR5_LEVELS = {FCST_VAR1_LEVELS} FCST_VAR5_THRESH = {FCST_VAR1_THRESH} -# Obs Variables OBS_VAR1_NAME = PP_probs OBS_VAR1_LEVELS = "(*,*)" OBS_VAR1_THRESH = ge0.02, ge0.05, ge0.10, ge0.10, ge0.15, ge0.30, ge0.45, ge0.60 @@ -76,9 +99,11 @@ OBS_VAR5_NAME = {OBS_VAR1_NAME} OBS_VAR5_LEVELS = {OBS_VAR1_LEVELS} OBS_VAR5_THRESH = {OBS_VAR1_THRESH} -FCST_IS_PROB = false -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### GRID_STAT_OUTPUT_FLAG_CTC = BOTH GRID_STAT_OUTPUT_FLAG_CTS = BOTH @@ -88,20 +113,3 @@ GRID_STAT_NC_PAIRS_FLAG_RAW = FALSE GRID_STAT_NC_PAIRS_FLAG_DIFF = FALSE GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE - -[dir] - -# input and output data directories for each application in PROCESS_LIST -FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/surrogate_severe_prac_perfect - -OBS_GRID_STAT_INPUT_DIR = {FCST_GRID_STAT_INPUT_DIR} - -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/short_range/surrogate_severe_prac_perfect/grid_stat - -[filename_templates] -# format of filenames -# Surrogate Severe -FCST_GRID_STAT_INPUT_TEMPLATE = surrogate_severe_{init?fmt=%Y%m%d}_{lead?fmt=%HHH}V_regrid.nc - -# Practically Perfect -OBS_GRID_STAT_INPUT_TEMPLATE = StormReps_211_Probs.{init?fmt=%Y%m%d}.nc diff --git a/parm/use_cases/model_applications/short_range/GridStat_fcstHRRR_obsPracPerfect_SurrogateSevereProb.conf b/parm/use_cases/model_applications/short_range/GridStat_fcstHRRR_obsPracPerfect_SurrogateSevereProb.conf index b4aba49ff1..24c3be3533 100644 --- a/parm/use_cases/model_applications/short_range/GridStat_fcstHRRR_obsPracPerfect_SurrogateSevereProb.conf +++ b/parm/use_cases/model_applications/short_range/GridStat_fcstHRRR_obsPracPerfect_SurrogateSevereProb.conf @@ -1,40 +1,67 @@ -# HRRR Surrogate Severe verified against Practically Perfect - [config] -# time looping - options are INIT, VALID, RETRO, and REALTIME -LOOP_BY = VALID -# Format of INIT_BEG and INIT_END -VALID_TIME_FMT = %Y%m%d%H +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/short_range/GridStat_fcstHRRR_obsPracPerfect_SurrogateSevereProb.html -# Start time for METplus run -VALID_BEG=2020020612 +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -# End time for METplus run -VALID_END=2020020612 +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### -# Increment between METplus runs in seconds. Must be >= 60 +PROCESS_LIST = GridStat + + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + +LOOP_BY = VALID +VALID_TIME_FMT = %Y%m%d%H +VALID_BEG=2020020612 +VALID_END=2020020612 VALID_INCREMENT=86400 -# forecast leads to process INIT_SEQ = 0 LEAD_SEQ_MIN = 36 LEAD_SEQ_MAX = 36 -# Options are times, processes -# times = run all items in the PROCESS_LIST for a single initialization -# time, then repeat until all times have been evaluated. -# processes = run each item in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST. LOOP_ORDER = times -# List of applications to run -PROCESS_LIST = GridStat +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/surrogate_severe_prac_perfect +FCST_GRID_STAT_INPUT_TEMPLATE = surrogate_severe_{init?fmt=%Y%m%d}_{lead?fmt=%HHH}V_regrid.nc + +OBS_GRID_STAT_INPUT_DIR = {FCST_GRID_STAT_INPUT_DIR} +OBS_GRID_STAT_INPUT_TEMPLATE = StormReps_211.{init?fmt=%Y%m%d}.nc + +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/short_range/surrogate_severe_prac_perfect/grid_stat/prob + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### MODEL = HRRR OBTYPE = PP -# Forecast Variables +FCST_IS_PROB = true +FCST_GRID_STAT_INPUT_DATATYPE = NETCDF + FCST_VAR1_NAME = MXUPHL_prob_75 FCST_VAR1_LEVELS = "(*,*)" FCST_VAR1_THRESH = ge0.02 @@ -56,7 +83,6 @@ FCST_VAR5_NAME = MXUPHL_prob_95 FCST_VAR5_LEVELS = {FCST_VAR1_LEVELS} FCST_VAR5_THRESH = {FCST_VAR1_THRESH} -# Obs Variables OBS_VAR1_NAME = Fscale_mask OBS_VAR1_LEVELS = "(*,*)" OBS_VAR1_THRESH = ge1.0 @@ -77,11 +103,11 @@ OBS_VAR5_NAME = {OBS_VAR1_NAME} OBS_VAR5_LEVELS = {OBS_VAR1_LEVELS} OBS_VAR5_THRESH = {OBS_VAR1_THRESH} -FCST_IS_PROB = true -FCST_GRID_STAT_INPUT_DATATYPE = NETCDF - -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### GRID_STAT_OUTPUT_FLAG_PCT = BOTH GRID_STAT_OUTPUT_FLAG_PSTD = BOTH @@ -93,20 +119,3 @@ GRID_STAT_NC_PAIRS_FLAG_RAW = FALSE GRID_STAT_NC_PAIRS_FLAG_DIFF = FALSE GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE - -[dir] - -# input and output data directories for each application in PROCESS_LIST -FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/surrogate_severe_prac_perfect - -OBS_GRID_STAT_INPUT_DIR = {FCST_GRID_STAT_INPUT_DIR} - -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/short_range/surrogate_severe_prac_perfect/grid_stat/prob - -[filename_templates] -# format of filenames -# Surrogate Severe -FCST_GRID_STAT_INPUT_TEMPLATE = surrogate_severe_{init?fmt=%Y%m%d}_{lead?fmt=%HHH}V_regrid.nc - -# Practically Perfect -OBS_GRID_STAT_INPUT_TEMPLATE = StormReps_211.{init?fmt=%Y%m%d}.nc diff --git a/parm/use_cases/model_applications/short_range/METdbLoad_fcstFV3_obsGoes_BrightnessTemp.conf b/parm/use_cases/model_applications/short_range/METdbLoad_fcstFV3_obsGoes_BrightnessTemp.conf index 0874966bba..79ef5d57fb 100644 --- a/parm/use_cases/model_applications/short_range/METdbLoad_fcstFV3_obsGoes_BrightnessTemp.conf +++ b/parm/use_cases/model_applications/short_range/METdbLoad_fcstFV3_obsGoes_BrightnessTemp.conf @@ -1,8 +1,30 @@ [config] -# METdbLoad for grid_stat distance maps and MODE +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/short_range/METdbLoad_fcstFV3_obsGoes_BrightnessTemp.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = METDbLoad + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H @@ -14,6 +36,20 @@ LOOP_ORDER = processes MET_DB_LOAD_RUNTIME_FREQ = RUN_ONCE + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +MET_DB_LOAD_INPUT_TEMPLATE = {INPUT_BASE}/model_applications/short_range/METdbLoad_fcstFV3_obsGoes_BrightnessTemp/grid_stat,{INPUT_BASE}/model_applications/short_range/METdbLoad_fcstFV3_obsGoes_BrightnessTemp/grid_stat_obj,{INPUT_BASE}/model_applications/short_range/METdbLoad_fcstFV3_obsGoes_BrightnessTemp/mode + + +### +# METdbLoad Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#metdbload +### + MET_DATA_DB_DIR = {METPLUS_BASE}/../METdataio # XML file with settings for @@ -41,6 +77,3 @@ MET_DB_LOAD_MV_LOAD_STAT = true MET_DB_LOAD_MV_LOAD_MODE = true MET_DB_LOAD_MV_LOAD_MTD = false MET_DB_LOAD_MV_LOAD_MPR = false - -# Location of input files -MET_DB_LOAD_INPUT_TEMPLATE = {INPUT_BASE}/model_applications/short_range/METdbLoad_fcstFV3_obsGoes_BrightnessTemp/grid_stat,{INPUT_BASE}/model_applications/short_range/METdbLoad_fcstFV3_obsGoes_BrightnessTemp/grid_stat_obj,{INPUT_BASE}/model_applications/short_range/METdbLoad_fcstFV3_obsGoes_BrightnessTemp/mode diff --git a/parm/use_cases/model_applications/short_range/MODE_fcstFV3_obsGOES_BrightnessTemp.conf b/parm/use_cases/model_applications/short_range/MODE_fcstFV3_obsGOES_BrightnessTemp.conf index 7da3455855..d85396cee9 100644 --- a/parm/use_cases/model_applications/short_range/MODE_fcstFV3_obsGOES_BrightnessTemp.conf +++ b/parm/use_cases/model_applications/short_range/MODE_fcstFV3_obsGOES_BrightnessTemp.conf @@ -1,28 +1,85 @@ [config] -# Loop by model initialization -LOOP_BY = init -INIT_TIME_FMT = %Y%m%d%H +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/short_range/MODE_fcstFV3_obsGOES_BrightnessTemp.html -# Start time for METplus run -INIT_BEG = 2019052100 +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -# End time for METplus run -INIT_END = 2019052100 +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + +PROCESS_LIST = MODE(lsm1), MODE(mp1) + + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Increment between METplus runs in seconds. Must be >= 60 +LOOP_BY = init +INIT_TIME_FMT = %Y%m%d%H +INIT_BEG = 2019052100 +INIT_END = 2019052100 INIT_INCREMENT = 3600 +LEAD_SEQ = 1,2 + LOOP_ORDER = processes -PROCESS_LIST = MODE(lsm1), MODE(mp1) -# Sequence of leads to process -LEAD_SEQ = 1,2 +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -FCST_IS_PROB = false +FCST_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/brightness_temperature +FCST_MODE_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/core_{instance}/core_{instance}_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_f{lead?fmt=%HH}.nc + +OBS_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/brightness_temperature +OBS_MODE_INPUT_TEMPLATE = {valid?fmt=%Y_%m_%d}_141/remap_GOES-16.{valid?fmt=%Y%m%d}.{valid?fmt=%H%M%S}.nc + +MODE_OUTPUT_DIR = {OUTPUT_BASE}/short_range/brightness_temperature + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + +MODEL = FV3_core + +FCST_VAR1_NAME = SBTA1613_topofatmosphere +FCST_VAR1_LEVELS = "(*,*)" +FCST_VAR1_OPTIONS = file_type = NETCDF_MET; + +MODE_FCST_CENSOR_THRESH = <=0 +MODE_FCST_CENSOR_VAL = 9999 + + +OBTYPE = GOES + +OBS_VAR1_NAME = channel_13_brightness_temperature +OBS_VAR1_LEVELS = "(*,*)" +OBS_VAR1_OPTIONS = file_type = NETCDF_MET; + +MODE_OBS_CENSOR_THRESH = <=0 +MODE_OBS_CENSOR_VAL = 9999 + + +### +# MODE Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#mode +### -# MODE variables for the forecast and observations MODE_QUILT = FALSE MODE_CONV_RADIUS = 5 @@ -41,54 +98,14 @@ MODE_INTEREST_FUNCTION_CENTROID_DIST = ( ( 0.0, 1.0 ) ( 60.0/grid_res, 1.0 ) ( MODE_MASK_MISSING_FLAG = BOTH -MODE_FCST_CENSOR_THRESH = <=0 -MODE_FCST_CENSOR_VAL = 9999 - -MODE_OBS_CENSOR_THRESH = <=0 -MODE_OBS_CENSOR_VAL = 9999 - - MODE_WEIGHT_CENTROID_DIST = 4.0 MODE_WEIGHT_BOUNDARY_DIST = 3.0 MODE_WEIGHT_CONVEX_HULL_DIST = 1.0 MODE_WEIGHT_AREA_RATIO = 4.0 MODE_WEIGHT_INT_AREA_RATIO = 3.0 - MODE_TOTAL_INTEREST_THRESH = 0.65 - -# Forecast Brightness Temperature Variable Information -MODEL = FV3_core -FCST_VAR1_NAME = SBTA1613_topofatmosphere -FCST_VAR1_LEVELS = "(*,*)" -FCST_VAR1_OPTIONS = file_type = NETCDF_MET; - -# Obs GOES Brightness Temperature Variable Information -OBTYPE = GOES -OBS_VAR1_NAME = channel_13_brightness_temperature -OBS_VAR1_LEVELS = "(*,*)" -OBS_VAR1_OPTIONS = file_type = NETCDF_MET; - -#CONFIG_DIR={PARM_BASE}/use_cases/model_applications/short_range/MODE_fcstFV3_obsGOES_BrightnessTemp -MODE_CONFIG_FILE = {PARM_BASE}/met_config/MODEConfig_wrapped MODE_REGRID_TO_GRID = NONE MODE_OUTPUT_PREFIX = FV3_core_{instance} - -[dir] -# Directory for FV3 data -FCST_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/brightness_temperature - -# Directory of the GOES obs -OBS_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/brightness_temperature - -# Output Data Location -MODE_OUTPUT_DIR = {OUTPUT_BASE}/short_range/brightness_temperature - -[filename_templates] -# Forecast Filename Template -FCST_MODE_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/core_{instance}/core_{instance}_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_f{lead?fmt=%HH}.nc - -# Obs Filename Template -OBS_MODE_INPUT_TEMPLATE = {valid?fmt=%Y_%m_%d}_141/remap_GOES-16.{valid?fmt=%Y%m%d}.{valid?fmt=%H%M%S}.nc diff --git a/parm/use_cases/model_applications/short_range/MODE_fcstFV3_obsGOES_BrightnessTempObjs.conf b/parm/use_cases/model_applications/short_range/MODE_fcstFV3_obsGOES_BrightnessTempObjs.conf index 19f84437c2..86723c215d 100644 --- a/parm/use_cases/model_applications/short_range/MODE_fcstFV3_obsGOES_BrightnessTempObjs.conf +++ b/parm/use_cases/model_applications/short_range/MODE_fcstFV3_obsGOES_BrightnessTempObjs.conf @@ -1,54 +1,114 @@ [config] -# Loop by model initialization -LOOP_BY = init -INIT_TIME_FMT = %Y%m%d%H +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/short_range/MODE_fcstFV3_obsGOES_BrightnessTempObjs.html -# Start time for METplus run -INIT_BEG = 2019052100 +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + +PROCESS_LIST = MODE(lsm1), MODE(mp1), GridStat(lsm1), GridStat(mp1) -# End time for METplus run -INIT_END = 2019052100 -# Increment between METplus runs in seconds. Must be >= 60 +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + +LOOP_BY = init +INIT_TIME_FMT = %Y%m%d%H +INIT_BEG = 2019052100 +INIT_END = 2019052100 INIT_INCREMENT = 3600 +LEAD_SEQ = 1,2 + LOOP_ORDER = processes -PROCESS_LIST = MODE(lsm1), MODE(mp1), GridStat(lsm1), GridStat(mp1) +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# Sequence of leads to process -LEAD_SEQ = 1,2 +# MODE -FCST_IS_PROB = false +FCST_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/brightness_temperature +FCST_MODE_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/core_{instance}/core_{instance}_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_f{lead?fmt=%HH}.nc -# MODE variables for the forecast and observations -MODE_QUILT = FALSE +OBS_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/brightness_temperature +OBS_MODE_INPUT_TEMPLATE = {valid?fmt=%Y_%m_%d}_141/remap_GOES-16.{valid?fmt=%Y%m%d}.{valid?fmt=%H%M%S}.nc -MODE_CONV_RADIUS = 5 +MODE_OUTPUT_DIR = {OUTPUT_BASE}/short_range/brightness_temperature/mode -MODE_CONV_THRESH = <=235 +# GridStat -MODE_MERGE_THRESH = <=235 +FCST_GRID_STAT_INPUT_DIR = {MODE_OUTPUT_DIR} +FCST_GRID_STAT_INPUT_TEMPLATE = mode_{MODE_OUTPUT_PREFIX}_{lead?fmt=%HH}0000L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V_NAA_obj.nc -MODE_MERGE_FLAG = NONE +OBS_GRID_STAT_INPUT_DIR = {FCST_GRID_STAT_INPUT_DIR} +OBS_GRID_STAT_INPUT_TEMPLATE = {FCST_GRID_STAT_INPUT_TEMPLATE} + +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/short_range/brightness_temperature/grid_stat_obj -MODE_MASK_POLY = {INPUT_BASE}/model_applications/short_range/brightness_temperature/CentUS.nc -# Forecast Brightness Temperature Variable Information +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + MODEL = FV3_core +OBTYPE = GOES + FCST_MODE_VAR1_NAME = SBTA1613_topofatmosphere FCST_MODE_VAR1_LEVELS = "(*,*)" FCST_MODE_VAR1_OPTIONS = file_type = NETCDF_MET; +MODE_FCST_CENSOR_THRESH = <=0 +MODE_FCST_CENSOR_VAL = 9999 -# Obs GOES Brightness Temperature Variable Information -OBTYPE = GOES OBS_MODE_VAR1_NAME = channel_13_brightness_temperature OBS_MODE_VAR1_LEVELS = "(*,*)" OBS_MODE_VAR1_OPTIONS = file_type = NETCDF_MET; +MODE_OBS_CENSOR_THRESH = <=0 +MODE_OBS_CENSOR_VAL = 9999 + + +FCST_GRID_STAT_VAR1_NAME = fcst_obj_raw +FCST_GRID_STAT_VAR1_LEVELS = "(*,*)" +FCST_GRID_STAT_VAR1_THRESH = lt999 +FCST_GRID_STAT_VAR1_OPTIONS = file_type = NETCDF_MET; censor_thresh = eq-9999; censor_val = 999; + +OBS_GRID_STAT_VAR1_NAME = obs_obj_raw +OBS_GRID_STAT_VAR1_LEVELS = "(*,*)" +OBS_GRID_STAT_VAR1_THRESH = lt999 +OBS_GRID_STAT_VAR1_OPTIONS = file_type = NETCDF_MET; censor_thresh = eq-9999; censor_val = 999; + +### +# MODE Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#mode +### + +MODE_QUILT = FALSE -MODE_CONFIG_FILE = {PARM_BASE}/met_config/MODEConfig_wrapped +MODE_CONV_RADIUS = 5 + +MODE_CONV_THRESH = <=235 + +MODE_MERGE_THRESH = <=235 + +MODE_MERGE_FLAG = NONE + +MODE_MASK_POLY = {INPUT_BASE}/model_applications/short_range/brightness_temperature/CentUS.nc MODE_GRID_RES = 3 @@ -56,12 +116,6 @@ MODE_MAX_CENTROID_DIST = 600.0/grid_res MODE_INTEREST_FUNCTION_CENTROID_DIST = ( ( 0.0, 1.0 ) ( 60.0/grid_res, 1.0 ) ( 450.0/grid_res, 0.0 ) ) -MODE_FCST_CENSOR_THRESH = <=0 -MODE_FCST_CENSOR_VAL = 9999 - -MODE_OBS_CENSOR_THRESH = <=0 -MODE_OBS_CENSOR_VAL = 9999 - MODE_MASK_MISSING_FLAG = BOTH MODE_MASK_POLY_FLAG = BOTH @@ -72,67 +126,26 @@ MODE_WEIGHT_CONVEX_HULL_DIST = 1.0 MODE_WEIGHT_AREA_RATIO = 4.0 MODE_WEIGHT_INT_AREA_RATIO = 3.0 - MODE_TOTAL_INTEREST_THRESH = 0.65 MODE_NC_PAIRS_FLAG_POLYLINES = False - MODE_REGRID_TO_GRID = NONE MODE_OUTPUT_PREFIX = FV3_core_{instance} -# Grid stat variables -FCST_GRID_STAT_VAR1_NAME = fcst_obj_raw -FCST_GRID_STAT_VAR1_LEVELS = "(*,*)" -FCST_GRID_STAT_VAR1_THRESH = lt999 -FCST_GRID_STAT_VAR1_OPTIONS = file_type = NETCDF_MET; censor_thresh = eq-9999; censor_val = 999; - -OBS_GRID_STAT_VAR1_NAME = obs_obj_raw -OBS_GRID_STAT_VAR1_LEVELS = "(*,*)" -OBS_GRID_STAT_VAR1_THRESH = lt999 -OBS_GRID_STAT_VAR1_OPTIONS = file_type = NETCDF_MET; censor_thresh = eq-9999; censor_val = 999; +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### GRID_STAT_NEIGHBORHOOD_WIDTH = 1 GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - GRID_STAT_OUTPUT_FLAG_NBRCTC = BOTH GRID_STAT_OUTPUT_FLAG_DMAP = BOTH GRID_STAT_NC_PAIRS_FLAG_DISTANCE_MAP = TRUE GRID_STAT_OUTPUT_PREFIX = FV3_core_{instance} - -[dir] -# Directory for FV3 data -FCST_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/brightness_temperature - -# Directory of the GOES obs -OBS_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/brightness_temperature - -# MODE Output Data Location -MODE_OUTPUT_DIR = {OUTPUT_BASE}/short_range/brightness_temperature/mode - -# Input and Output Diretory of the object data -FCST_GRID_STAT_INPUT_DIR = {MODE_OUTPUT_DIR} -OBS_GRID_STAT_INPUT_DIR = {FCST_GRID_STAT_INPUT_DIR} - -#Grid Stat output data location -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/short_range/brightness_temperature/grid_stat_obj - - -[filename_templates] -# Forecast Filename Template -FCST_MODE_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/core_{instance}/core_{instance}_{init?fmt=%Y%m%d}_{init?fmt=%H%M}_f{lead?fmt=%HH}.nc - -# Obs Filename Template -OBS_MODE_INPUT_TEMPLATE = {valid?fmt=%Y_%m_%d}_141/remap_GOES-16.{valid?fmt=%Y%m%d}.{valid?fmt=%H%M%S}.nc - -# Grid stat forecast filename template -FCST_GRID_STAT_INPUT_TEMPLATE = mode_{MODE_OUTPUT_PREFIX}_{lead?fmt=%HH}0000L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V_NAA_obj.nc - -# Grid stat obs filename template -OBS_GRID_STAT_INPUT_TEMPLATE = {FCST_GRID_STAT_INPUT_TEMPLATE} diff --git a/parm/use_cases/model_applications/short_range/MODE_fcstHRRR_obsMRMS_Hail_GRIB2.conf b/parm/use_cases/model_applications/short_range/MODE_fcstHRRR_obsMRMS_Hail_GRIB2.conf index f7d9fabdf1..16f73d3674 100644 --- a/parm/use_cases/model_applications/short_range/MODE_fcstHRRR_obsMRMS_Hail_GRIB2.conf +++ b/parm/use_cases/model_applications/short_range/MODE_fcstHRRR_obsMRMS_Hail_GRIB2.conf @@ -1,47 +1,97 @@ [config] -LOOP_BY = valid -VALID_TIME_FMT = %Y%m%d%H -# Start time for METplus run -VALID_BEG = 2019052902 +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/short_range/MODE_fcstHRRR_obsMRMS_Hail_GRIB2.html -# End time for METplus run -VALID_END = 2019052903 +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -# Increment between METplus runs in seconds. Must be >= 60 -VALID_INCREMENT = 3600 +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + +PROCESS_LIST = MODE -LOOP_ORDER = processes -PROCESS_LIST = Mode +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + +LOOP_BY = valid +VALID_TIME_FMT = %Y%m%d%H +VALID_BEG = 2019052902 +VALID_END = 2019052903 +VALID_INCREMENT = 3600 +INIT_SEQ = 0 LEAD_SEQ_MAX = 36 LEAD_SEQ_MIN = 12 -FCST_IS_PROB = false -# list of forecast generation to process -INIT_SEQ = 0 +LOOP_ORDER = processes -MODE_QUILT = True -MODE_CONV_RADIUS = 4 +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -MODE_CONV_THRESH = >=0.5 +FCST_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/hrrr_esrl +FCST_MODE_INPUT_TEMPLATE = {init?fmt=%Y%m%d}/hrrr_esrl_{init?fmt=%Y%m%d%H}f{lead?fmt=%HHH}.grib2 -MODE_MERGE_THRESH = >=0.0 +OBS_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/hrrr_esrl +OBS_MODE_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/mrms.MESH_Max_60min.{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}.grib2 + +MODE_OUTPUT_DIR = {OUTPUT_BASE}/hailtest +MODE_VERIFICATION_MASK_TEMPLATE = {FCST_MODE_INPUT_DIR}/{init?fmt=%Y%m%d}_hrefv2_subdomainmask.nc -MODE_MERGE_FLAG = NONE +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + +MODEL = HRRRv4_HAILCAST +FCST_VAR1_NAME = HAIL +FCST_VAR1_LEVELS = L0 +FCST_VAR1_OPTIONS = convert(x) = x / 0.0254 MODE_FCST_CENSOR_THRESH = >0&&<0.75 MODE_FCST_CENSOR_VAL = -9999.0 MODE_FCST_FILTER_ATTR_NAME = AREA MODE_FCST_FILTER_ATTR_THRESH = >=4 +OBTYPE = MRMS +OBS_VAR1_NAME = MESHMax60min +OBS_VAR1_LEVELS = Z500 +OBS_VAR1_OPTIONS = convert(x) = MM_to_IN(x); MODE_OBS_CENSOR_THRESH = >0&&<0.75 MODE_OBS_CENSOR_VAL = -9999.0 MODE_OBS_FILTER_ATTR_NAME = AREA MODE_OBS_FILTER_ATTR_THRESH = >=4 + +### +# MODE Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#mode +### + +MODE_QUILT = True + +MODE_CONV_RADIUS = 4 + +MODE_CONV_THRESH = >=0.5 + +MODE_MERGE_THRESH = >=0.0 + +MODE_MERGE_FLAG = NONE + MODE_MATCH_FLAG = NO_MERGE MODE_MAX_CENTROID_DIST = 400.0/grid_res @@ -54,44 +104,6 @@ MODE_WEIGHT_INTEN_PERC_VALUE = 99 MODE_TOTAL_INTEREST_THRESH = 0.5 -# Forecast Reflectivity Variable Information -MODEL = HRRRv4_HAILCAST -FCST_VAR1_NAME = HAIL -FCST_VAR1_LEVELS = L0 -FCST_VAR1_OPTIONS = convert(x) = x / 0.0254 - -# MRMS Reflecivitiy Variable Information -OBTYPE = MRMS -OBS_VAR1_NAME = MESHMax60min -OBS_VAR1_LEVELS = Z500 -OBS_VAR1_OPTIONS = convert(x) = MM_to_IN(x); - -#CONFIG_DIR={PARM_BASE}/use_cases/model_applications/short_range/MODE_fcstHRRR_obsMRMS_Hail_GRIB2 -#MODE_CONFIG_FILE = {CONFIG_DIR}/MODEConfig_hailcast -MODE_CONFIG_FILE = {PARM_BASE}/met_config/MODEConfig_wrapped - MODE_REGRID_TO_GRID = FCST MODE_REGRID_METHOD = MAX MODE_REGRID_WIDTH = 2 - -[dir] - -# Directory for HRRR data -FCST_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/hrrr_esrl - -# Directory of the MRMS obs -OBS_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/hrrr_esrl - -# Output Data -MODE_OUTPUT_DIR = {OUTPUT_BASE}/hailtest - -METPLUS_CONF = {MODE_OUTPUT_DIR}/metplus_final.conf - -[filename_templates] -# Forecast Filename Templates: -FCST_MODE_INPUT_TEMPLATE = {init?fmt=%Y%m%d}/hrrr_esrl_{init?fmt=%Y%m%d%H}f{lead?fmt=%HHH}.grib2 -#OBS_MODE_INPUT_TEMPLATE = {valid?fmt=%Y}/{valid?fmt=%m}/{valid?fmt=%d}/mrms.MESH_Max_60min.{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}.grib2 -OBS_MODE_INPUT_TEMPLATE = {valid?fmt=%Y%m%d}/mrms.MESH_Max_60min.{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}.grib2 -MODE_VERIFICATION_MASK_TEMPLATE = {FCST_MODE_INPUT_DIR}/{init?fmt=%Y%m%d}_hrefv2_subdomainmask.nc - - diff --git a/parm/use_cases/model_applications/short_range/Point2Grid_obsLSR_ObsOnly_PracticallyPerfect.conf b/parm/use_cases/model_applications/short_range/Point2Grid_obsLSR_ObsOnly_PracticallyPerfect.conf index affb8768f1..5255814797 100644 --- a/parm/use_cases/model_applications/short_range/Point2Grid_obsLSR_ObsOnly_PracticallyPerfect.conf +++ b/parm/use_cases/model_applications/short_range/Point2Grid_obsLSR_ObsOnly_PracticallyPerfect.conf @@ -1,58 +1,84 @@ [config] -## Configuration-related settings such as the process list, begin and end times, etc. -# List of applications to run - Ascii2nc and Point2Grid +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/short_range/Point2Grid_obsLSR_ObsOnly_PracticallyPerfect.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = ASCII2NC, Point2Grid, RegridDataPlane -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 +LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT INIT_BEG = 2020020500 - -# End time for METplus run - must match INIT_TIME_FMT INIT_END = 2020020500 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds INIT_INCREMENT = 24H -# List of forecast leads to process for each run time (init or valid) -# If unset, defaults to 0 (don't loop through forecast leads LEAD_SEQ = 12H -# 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 -# Time relative to valid time (in seconds if no units are specified) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the filename -# Not used in this example. -ASCII2NC_FILE_WINDOW_BEGIN = 0 -ASCII2NC_FILE_WINDOW_END = 0 -# Time relative to each input file's valid time (in seconds if no units are specified) for data within the file to be -# considered valid. +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/short_range/Point2Grid_obsLSR_ObsOnly_PracticallyPerfect + + +# ASCII2NC + +ASCII2NC_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/practically_perfect +ASCII2NC_INPUT_TEMPLATE = "{CONFIG_DIR}/read_ascii_storm.py {ASCII2NC_INPUT_DIR}/200205_rpts_filtered.csv" + +ASCII2NC_OUTPUT_TEMPLATE = {OUTPUT_BASE}/model_applications/short_range/practically_perfect/StormReps.{init?fmt=%Y%m%d%H}.nc + + +# Point2Grid + +POINT2GRID_INPUT_DIR = {OUTPUT_BASE}/model_applications/short_range/practically_perfect +POINT2GRID_INPUT_TEMPLATE = {OUTPUT_BASE}/model_applications/short_range/practically_perfect/StormReps.{init?fmt=%Y%m%d%H}.nc + +POINT2GRID_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/short_range/practically_perfect + + +# RegridDataPlane + +OBS_REGRID_DATA_PLANE_INPUT_DIR = {POINT2GRID_OUTPUT_DIR} +OBS_REGRID_DATA_PLANE_INPUT_TEMPLATE = StormReps_211.{init?fmt=%Y%m%d%H}.nc + +OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {POINT2GRID_OUTPUT_DIR} +OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = StormReps_211_Probs.{init?fmt=%Y%m%d}.nc + +POINT2GRID_OUTPUT_TEMPLATE = {OUTPUT_BASE}/model_applications/short_range/practically_perfect/StormReps_211.{init?fmt=%Y%m%d%H}.nc + + +### +# ASCII2NC Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#ascii2nc +### + ASCII2NC_WINDOW_BEGIN = 0 ASCII2NC_WINDOW_END = 0 -# Value to pass with the -format argument to ascii2nc. See MET User's Guide for more information ASCII2NC_INPUT_FORMAT = python ASCII2NC_TIME_SUMMARY_FLAG = False ASCII2NC_TIME_SUMMARY_RAW_DATA = False @@ -67,100 +93,48 @@ ASCII2NC_TIME_SUMMARY_VALID_FREQ = 0 ASCII2NC_TIME_SUMMARY_VALID_THRESH = 0.0 +### +# Point2Grid Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#point2grid +### -# Verbosity of MET output - overrides LOG_VERBOSITY for Point2Grid only -# POINT2GRID_VERBOSITY = 1 - -# Time relative to valid time (in seconds if no units are specified) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the filename -# Not used in this example. -POINT2GRID_FILE_WINDOW_BEGIN = 0 -POINT2GRID_FILE_WINDOW_END = 0 - -# Value to pass with the -to_grid See MET User's Guide for more information -POINT2GRID_REGRID_TO_GRID = G211 +POINT2GRID_REGRID_TO_GRID = G211 -# Value to pass with the -field string. See MET User's Guide for more information -# FIELD and LEVEL both end up in the -field string POINT2GRID_INPUT_FIELD =Fscale POINT2GRID_INPUT_LEVEL = -# Value to pass with the -qc argument POINT2GRID_QC_FLAGS = 0 -# Value to pass with the -adp argument - This is a file name with GOES Aerosol Detection Product data POINT2GRID_ADP = -# Value to pass with the -method argumen - Default is UW_MEAN, other examples are -POINT2GRID_REGRID_METHOD = MAX +POINT2GRID_REGRID_METHOD = MAX -# Value to pass with the -gaussian-dx argument - Distance interval for gaussian smoothing -# Default is 81.271 POINT2GRID_GAUSSIAN_DX = 81.271 +POINT2GRID_GAUSSIAN_RADIUS = 120 -# Value to pass with the -gaussian-radius argument - radius of influence for the gaussian smoothing -# Default is 120 -POINT2GRID_GAUSSIAN_RADIUS = 120 - -# Value to pass with the -prob_cat_thresh argument - threshold for probability of occurrence POINT2GRID_PROB_CAT_THRESH = -# Value to pass with the -vld_thresh argument - threshold for percentage of valid data .5 default POINT2GRID_VLD_THRESH = -# Regrid Data Plane +### +# RegridDataPlane Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane +### + OBS_REGRID_DATA_PLANE_RUN = True REGRID_DATA_PLANE_ONCE_PER_FIELD = False -# Name of input field to process OBS_REGRID_DATA_PLANE_VAR1_INPUT_FIELD_NAME = Fscale_mask - -# Level of input field to process OBS_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = "(*,*)" - -# Name of output field to create OBS_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = PP_probs -# Mask to use for regridding REGRID_DATA_PLANE_VERIF_GRID = G211 -# Method to run regrid_data_plane, not setting this will default to NEAREST REGRID_DATA_PLANE_METHOD = MAXGAUSS -# Regridding width used in regrid_data_plane, not setting this will default to 1 REGRID_DATA_PLANE_WIDTH = 1 -# Set Gaussian dx value to add as command line argument - not added if unset or blank REGRID_DATA_PLANE_GAUSSIAN_DX = 81.271 - -# Set Gaussian filter radius value to add as command line argument - not added if unset or blank -REGRID_DATA_PLANE_GAUSSIAN_RADIUS = 120 - -# End of [config] section and start of [dir] section -[dir] - -# Input/Output directories can be left empty if the corresponding template contains the full path to the files -ASCII2NC_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/practically_perfect -POINT2GRID_INPUT_DIR = {OUTPUT_BASE}/model_applications/short_range/practically_perfect -POINT2GRID_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/short_range/practically_perfect -OBS_REGRID_DATA_PLANE_INPUT_DIR = {POINT2GRID_OUTPUT_DIR} -OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {POINT2GRID_OUTPUT_DIR} - -CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/short_range/Point2Grid_obsLSR_ObsOnly_PracticallyPerfect - -# End of [dir] section and start of [filename_templates] section -[filename_templates] - -# Template to look for input to ASCII2NC input storm reports -ASCII2NC_INPUT_TEMPLATE = "{CONFIG_DIR}/read_ascii_storm.py {ASCII2NC_INPUT_DIR}/200205_rpts_filtered.csv" -ASCII2NC_OUTPUT_TEMPLATE = {OUTPUT_BASE}/model_applications/short_range/practically_perfect/StormReps.{init?fmt=%Y%m%d%H}.nc - -# Templates to use for input to Point2Grid from the output of ASCII2NC and output from Point2Grid -POINT2GRID_INPUT_TEMPLATE = {OUTPUT_BASE}/model_applications/short_range/practically_perfect/StormReps.{init?fmt=%Y%m%d%H}.nc -POINT2GRID_OUTPUT_TEMPLATE = {OUTPUT_BASE}/model_applications/short_range/practically_perfect/StormReps_211.{init?fmt=%Y%m%d%H}.nc - -#Regrid data plane templates -OBS_REGRID_DATA_PLANE_INPUT_TEMPLATE = StormReps_211.{init?fmt=%Y%m%d%H}.nc -OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = StormReps_211_Probs.{init?fmt=%Y%m%d}.nc +REGRID_DATA_PLANE_GAUSSIAN_RADIUS = 120 diff --git a/parm/use_cases/model_applications/space_weather/GenVxMask_fcstGloTEC_FcstOnly_solar_altitude.conf b/parm/use_cases/model_applications/space_weather/GenVxMask_fcstGloTEC_FcstOnly_solar_altitude.conf index 2948166cee..a2f6d992ba 100644 --- a/parm/use_cases/model_applications/space_weather/GenVxMask_fcstGloTEC_FcstOnly_solar_altitude.conf +++ b/parm/use_cases/model_applications/space_weather/GenVxMask_fcstGloTEC_FcstOnly_solar_altitude.conf @@ -1,119 +1,62 @@ -# GenVxMask METplus Configuration for the GenVxMask_glotec_solar_altitude space weather use case: -# Creating masks based on the solar altitude angle for GloTEC model data (id: vx12) -# -# Author: Jonathan Vigh (NCAR/RAL/JNTP) -# -# Description: This use case illustrates the use of the gen_vx_mask tool for the space weather domain. -# It creates a mask for region where the solar altitude angle is less than 45 degrees -# (low sun angle or sun below the horizon), only letting data through for the region -# where the sun is high in the sky (i.e., solar altitude angle greater than 45 degrees). -# -# In this use case, the input data is the GloTEC model run assimilated with COSMIC-1 RO data. -# -# This use case runs gen_vx_mask for a couple forecast times from a -# space weather event known as the St. Patricks Day Storm (Mar 17, 2015). -# -# Novel aspects of this use case: -# - First example use case to run gen_vx_mask on a space weather model (GloTEC) -# - Example of how to run gen_vx_mask on NetCDF input data which do not strictly conform to the -# Climate Forecasts (CF) conventions -# - Example of constructing a mask based on the solar altitude angle. -# - Changing the mask condition to solar alt <= 0 will mask out the night region. -# - Changing the mask condition to solar alt > 0 will mask the day region. -# -# Background: The solar altitude angle is the angle of the sun relative to the Earth's horizon, -# and is measured in degrees. The altitude is zero at sunrise and sunset, and can reach a -# maximum of 90 degrees (directly overhead) at noon at latitudes near the equator. -# [Source: https://sciencing.com/solar-altitude-23364.html] -# - -# section heading for [config] variables - all items below this line and -# before the next section heading correspond to the [config] section [config] -## Configuration-related settings such as the process list, begin and end times, etc. -# List of applications to run - only GenVxMask for this case +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/space_weather/GenVxMask_fcstGloTEC_FcstOnly_solar_altitude.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = GenVxMask -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 -VALID_TIME_FMT = %Y%m%d%H%M +# Just run the first two time points for this use case example +# replace with 201503172355 process the entire day -# Start time for METplus run - must match INIT_TIME_FMT +LOOP_BY = VALID +VALID_TIME_FMT = %Y%m%d%H%M VALID_BEG = 201503170005 - -# End time for METplus run - must match INIT_TIME_FMT VALID_END = 201503170015 - -# Just run the first two time points for this use case example -# replace with 201503172355 process the entire day - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds VALID_INCREMENT = 600 -# List of forecast leads to process for each run time (init or valid) -# If unset, defaults to 0 (don't loop through forecast leads LEAD_SEQ = 0 -# The above configuration will loop by valid time in increments of -# VALID_INCREMENT from VALID_BEG to VALID_END. Since LEAD_SEQ is set to 0, -# it will not loop over any forecast lead times. -# This will run: -# Valid: 2015-03-17_0005Z Forecast lead: 0 -# to 2015-03-17_0055Z Forecast lead: 0 - - -# 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 -# Verbosity of MET output - overrides LOG_VERBOSITY for GenVxMask only -LOG_GEN_VX_MASK_VERBOSITY = 2 - -GEN_VX_MASK_SKIP_IF_OUTPUT_EXISTS = False -# Time relative to valid time (in seconds if no units are specified) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the filename -# Not used in this example. -GEN_VX_MASK_FILE_WINDOW_BEGIN = 0 -GEN_VX_MASK_FILE_WINDOW_END = 0 +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# Command line arguments to add to the call to gen_vx_mask -GEN_VX_MASK_OPTIONS = -type solar_alt -thresh 'le45' -name TEC_with_solar_altitude_angle_le_45_masked_{valid?fmt=%Y_%m_%d_%H%M} -input_field 'name="TEC"; level="({valid?fmt=%Y%m%d_%H%M%S},*,*)"; file_type=NETCDF_NCCF;' -mask_field 'name="TEC"; level="({valid?fmt=%Y%m%d_%H%M%S},*,*)"; file_type=NETCDF_NCCF;' - -[filename_templates] - -# Template to look for input to GenVxMask relative to GEN_VX_MASK_INPUT_DIR +GEN_VX_MASK_INPUT_DIR = {INPUT_BASE}/model_applications/space_weather/glotec_vs_glotec/GLO_20190422_with_cosmic GEN_VX_MASK_INPUT_TEMPLATE = GloTEC_TEC_{valid?fmt=%Y_%m_%d}_cosmic.nc +GEN_VX_MASK_INPUT_MASK_DIR = {INPUT_BASE}/model_applications/space_weather/glotec_vs_glotec/GLO_20190422_with_cosmic GEN_VX_MASK_INPUT_MASK_TEMPLATE = GloTEC_TEC_{valid?fmt=%Y_%m_%d}_cosmic.nc -# Template to use to write output from GenVxMask +GEN_VX_MASK_OUTPUT_DIR={OUTPUT_BASE}/model_applications/space_weather/GenVxMask_glotec_solar_altitude GEN_VX_MASK_OUTPUT_TEMPLATE = GloTEC_TEC_solar_altitude_le_45_masked_{valid?fmt=%Y_%m_%d_%H%M}.nc -[dir] - -# Input/Output directories can be left empty if the corresponding template contains the full path to the files -GEN_VX_MASK_INPUT_DIR = {INPUT_BASE}/model_applications/space_weather/glotec_vs_glotec/GLO_20190422_with_cosmic - -GEN_VX_MASK_INPUT_MASK_DIR = {INPUT_BASE}/model_applications/space_weather/glotec_vs_glotec/GLO_20190422_with_cosmic - -GEN_VX_MASK_OUTPUT_DIR={OUTPUT_BASE}/model_applications/space_weather/GenVxMask_glotec_solar_altitude +### +# GenVxMask Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#genvxmask +### +GEN_VX_MASK_OPTIONS = -type solar_alt -thresh 'le45' -name TEC_with_solar_altitude_angle_le_45_masked_{valid?fmt=%Y_%m_%d_%H%M} -input_field 'name="TEC"; level="({valid?fmt=%Y%m%d_%H%M%S},*,*)"; file_type=NETCDF_NCCF;' -mask_field 'name="TEC"; level="({valid?fmt=%Y%m%d_%H%M%S},*,*)"; file_type=NETCDF_NCCF;' diff --git a/parm/use_cases/model_applications/space_weather/GridStat_fcstGloTEC_obsGloTEC_vx7.conf b/parm/use_cases/model_applications/space_weather/GridStat_fcstGloTEC_obsGloTEC_vx7.conf index c0b106b956..04e2575d10 100644 --- a/parm/use_cases/model_applications/space_weather/GridStat_fcstGloTEC_obsGloTEC_vx7.conf +++ b/parm/use_cases/model_applications/space_weather/GridStat_fcstGloTEC_obsGloTEC_vx7.conf @@ -1,93 +1,75 @@ -# GridStat METplus Configuration for the glotec_vs_glotec space weather use case: -# GloTEC initialized with and without COSMIC-1 RO data (id: vx7) -# -# Author: Jonathan Vigh (NCAR/RAL/JNTP) -# -# Description: This use case illustrates the use of grid_stat tool for the space weather domain. -# It compares Total Electron Content for a GloTEC model run initialized with COSMIC-1 -# radio occultation (RO) data to a GloTEC model run without such data. -# -# In this use case, the forecast is considered to be the run without COSMIC-1 RO data. -# The observations are considered to be the run with COSMIC-1 RO data. -# -# This use case runs grid_stat for all of the forecast times for one day for a -# space weather event known as the St. Patricks Day Storm (Mar 17, 2015). -# -# Novel aspects of this use case: -# - First example use case to run grid_stat on a space weather model (GloTEC) -# - Example of how to run with NetCDF input data which do not strictly conform to the -# Climate Forecasts (CF) conventions -# - Example of using masks covering latitudinal bands of interest to the space weather community: -# equatorial region, mid-latitude region, and polar region -# - Example of masking using the value of a quality flag at each time step and grid point -# -# - -# section heading for [config] variables - all items below this line and -# before the next section heading correspond to the [config] section [config] -# Masking poly for GridStat -MODEL_FILE={FCST_GRID_STAT_INPUT_DIR}/{FCST_GRID_STAT_INPUT_TEMPLATE} -MODEL_LEVEL=({valid?fmt=%Y%m%d_%H%M%S},*,*) -MASK_DIR={INPUT_BASE}/model_applications/space_weather/glotec_vs_glotec/masks -GRID_STAT_MASK_POLY = {MODEL_FILE} {name = "quality_flag"; level = "{MODEL_LEVEL}"; file_type=NETCDF_NCCF;} ==0, {MODEL_FILE} {name = "quality_flag"; level = "{MODEL_LEVEL}"; file_type=NETCDF_NCCF;} ==1, {MODEL_FILE} {name = "quality_flag"; level = "{MODEL_LEVEL}"; file_type=NETCDF_NCCF;} ==2, {MODEL_FILE} {name = "quality_flag"; level = "{MODEL_LEVEL}"; file_type=NETCDF_NCCF;} ==3, {MODEL_FILE} {name = "quality_flag"; level = "{MODEL_LEVEL}"; file_type=NETCDF_NCCF;} ==4, {MODEL_FILE} {name = "quality_flag"; level = "{MODEL_LEVEL}"; file_type=NETCDF_NCCF;} ==5, {MASK_DIR}/EQUATORIAL.nc, {MASK_DIR}/MIDLATITUDE.nc, {MASK_DIR}/POLAR.nc +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/space_weather/GridStat_fcstGloTEC_obsGloTEC_vx7.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### -# List of applications to run - only GridStat for this case PROCESS_LIST = GridStat -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# 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 -VALID_TIME_FMT = %Y%m%d%H%M - -# Start time for METplus run - must match VALID_TIME_FMT -VALID_BEG = 201503170005 - -# End time for METplus run - must match VALID_TIME_FMT -VALID_END = 201503170015 -# Just run the first two time points for this use case example +# Just run the first two time points for this use case example # replace with 201503172355 process the entire day -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds +LOOP_BY = VALID +VALID_TIME_FMT = %Y%m%d%H%M +VALID_BEG = 201503170005 +VALID_END = 201503170015 VALID_INCREMENT = 600 -# List of forecast leads to process for each run time (init or valid) LEAD_SEQ = 0 -# The above configuration will loop by valid time in increments of -# VALID_INCREMENT from VALID_BEG to VALID_END. Since LEAD_SEQ is set to 0, -# it will not loop over any forecast lead times. -# This will run: -# Valid: 2015-03-17_0005Z Forecast lead: 0 -# to 2015-03-17_0055Z Forecast lead: 0 - -# 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 -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/space_weather/glotec_vs_glotec/GLO_20190422_without_cosmic +FCST_GRID_STAT_INPUT_TEMPLATE = GloTEC_TEC_{valid?fmt=%Y_%m_%d}.nc + +OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/space_weather/glotec_vs_glotec/GLO_20190422_with_cosmic +OBS_GRID_STAT_INPUT_TEMPLATE = GloTEC_TEC_{valid?fmt=%Y_%m_%d}_cosmic.nc + +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/space_weather/glotec_vs_glotec +GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y_%m_%d} + -# Location of MET config file to pass to the GridStat -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + +MODEL = GloTEC_without_cosmic +OBTYPE = GloTEC_with_cosmic + +BOTH_VAR1_NAME = TEC +BOTH_VAR1_LEVELS = "({valid?fmt=%Y%m%d_%H%M%S},*,*)" + + +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### -# Override MET config file settings for this use case GRID_STAT_MET_CONFIG_OVERRIDES = file_type = NETCDF_NCCF; GRID_STAT_OUTPUT_FLAG_CTC = STAT @@ -100,123 +82,17 @@ GRID_STAT_OUTPUT_FLAG_SL1L2 = STAT GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE -# Name to identify model (forecast) data in output -MODEL = GloTEC_without_cosmic - -# Name to identify observation data in output (used in output file path) -OBTYPE = GloTEC_with_cosmic - -# List of variables to compare in GridStat - FCST_VAR1 variables correspond -# to OBS_VAR1 variables - -# Name of forecast variable 1 -BOTH_VAR1_NAME = TEC - -# List of levels to evaluate for forecast variable 1 -# NOTE: this uses the new capability in METplus v3.0 to specify levels with valid time -# Previously, a user would have had to provide a list, such as: -# FCST_VAR1_LEVELS = "(20150317_000500,*,*)", "(20150317_001500,*,*)", "( 20150317_002500,*,*)", "( 20150317_003500,*,*)", "( 20150317_004500,*,*)" -BOTH_VAR1_LEVELS = "({valid?fmt=%Y%m%d_%H%M%S},*,*)" - -# NOTE that if the values do not match exactly, one can specify a time offset, as follows: -#FCST_VAR1_LEVELS = "({valid?fmt=%Y%m%d_%H%M%S?shift=5M},*,*)" - -# List of thresholds to evaluate for each name/level combination for -# forecast variable 1 -# Not used for this example -#FCST_VAR1_THRESH = gt10.0, gt20.0, gt30.0, gt40.0 - -# Name of observation variable 1 (this is specified in the GridStat.conf file) -# Not used for this example -#OBS_VAR1_NAME = APCP_03 - -# List of levels to evaluate for observation variable 1 -# (*,*) is NetCDF notation - must include quotes around these values! -# must be the same lenght as FCST_VAR1_LEVELS -# Not used for this example -#OBS_VAR1_LEVELS = "(*,*)" - -# List of thresholds to evaluate for each name/level combination for -# forecast variable 1 - must be the same length as FCST_VAR1_THRESH -# Not used for this example -#OBS_VAR1_THRESH = gt10.0, gt20.0, gt30.0, gt40.0 - -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the filename -# Not used in this example. -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 -OBS_GRID_STAT_FILE_WINDOW_END = 0 - -# MET GridStat neighborhood values -# See the MET User's Guide GridStat section for more information - -# width value passed to nbrhd dictionary in the MET config file GRID_STAT_NEIGHBORHOOD_WIDTH = 1 - -# shape value passed to nbrhd dictionary in the MET config file GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE -# Set to true to run GridStat separately for each field specified -# Set to false to create one run of GridStat per run time that -# includes all fields specified. -# Not used for this example GRID_STAT_ONCE_PER_FIELD = False -# Set to true if forecast data is probabilistic -FCST_IS_PROB = false - -# Only used if FCST_IS_PROB is true - sets probabilistic threshold -# Not used for this example -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -# Set to true if observation data is probabilistic -# Only used if configuring forecast data as the 'OBS' input -OBS_IS_PROB = false - -# Only used if OBS_IS_PROB is true - sets probabilistic threshold -# Not used for this example -OBS_GRID_STAT_PROB_THRESH = ==0.1 - -# Output prefix set in grid_stat config file GRID_STAT_OUTPUT_PREFIX={MODEL}-vx7_{CURRENT_OBS_NAME}_vs_{OBTYPE} GRID_STAT_DESC = vx7 -# End of [config] section and start of [dir] section -[dir] - -# directory containing forecast input to GridStat -FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/space_weather/glotec_vs_glotec/GLO_20190422_without_cosmic - -# directory containing observation input to GridStat -OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/space_weather/glotec_vs_glotec/GLO_20190422_with_cosmic - -# directory containing climatology input to GridStat -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_DIR = - -# directory to write output from GridStat -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/space_weather/glotec_vs_glotec - -# End of [dir] section and start of [filename_templates] section -[filename_templates] - -# Template to look for forecast input to GridStat relative to FCST_GRID_STAT_INPUT_DIR -FCST_GRID_STAT_INPUT_TEMPLATE = GloTEC_TEC_{valid?fmt=%Y_%m_%d}.nc - -# Template to look for observation input to GridStat relative to OBS_GRID_STAT_INPUT_DIR -OBS_GRID_STAT_INPUT_TEMPLATE = GloTEC_TEC_{valid?fmt=%Y_%m_%d}_cosmic.nc - -# Optional subdirectories relative to GRID_STAT_OUTPUT_DIR to write output from GridStat -GRID_STAT_OUTPUT_TEMPLATE = {valid?fmt=%Y_%m_%d} - -# Template to look for climatology input to GridStat relative to GRID_STAT_CLIMO_MEAN_INPUT_DIR -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = - -# Used to specify one or more verification mask files for GridStat -# Not used for this example -GRID_STAT_VERIFICATION_MASK_TEMPLATE = - +# Masking poly for GridStat +MODEL_FILE={FCST_GRID_STAT_INPUT_DIR}/{FCST_GRID_STAT_INPUT_TEMPLATE} +MODEL_LEVEL=({valid?fmt=%Y%m%d_%H%M%S},*,*) +MASK_DIR={INPUT_BASE}/model_applications/space_weather/glotec_vs_glotec/masks +GRID_STAT_MASK_POLY = {MODEL_FILE} {name = "quality_flag"; level = "{MODEL_LEVEL}"; file_type=NETCDF_NCCF;} ==0, {MODEL_FILE} {name = "quality_flag"; level = "{MODEL_LEVEL}"; file_type=NETCDF_NCCF;} ==1, {MODEL_FILE} {name = "quality_flag"; level = "{MODEL_LEVEL}"; file_type=NETCDF_NCCF;} ==2, {MODEL_FILE} {name = "quality_flag"; level = "{MODEL_LEVEL}"; file_type=NETCDF_NCCF;} ==3, {MODEL_FILE} {name = "quality_flag"; level = "{MODEL_LEVEL}"; file_type=NETCDF_NCCF;} ==4, {MODEL_FILE} {name = "quality_flag"; level = "{MODEL_LEVEL}"; file_type=NETCDF_NCCF;} ==5, {MASK_DIR}/EQUATORIAL.nc, {MASK_DIR}/MIDLATITUDE.nc, {MASK_DIR}/POLAR.nc diff --git a/parm/use_cases/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC.conf b/parm/use_cases/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC.conf index 3549ba23c5..ef1344706e 100644 --- a/parm/use_cases/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC.conf +++ b/parm/use_cases/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC.conf @@ -1,169 +1,109 @@ -# -# CONFIGURATION -# [config] -# Looping by times: steps through each 'task' in the PROCESS_LIST for each -# defined time, and repeats until all times have been evaluated. -LOOP_ORDER = processes +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -# Configuration files -TC_PAIRS_CONFIG_FILE = {PARM_BASE}/met_config/TCPairsConfig_wrapped +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### -# 'Tasks' to be run PROCESS_LIST = UserScript, TCPairs, CyclonePlotter -LOOP_BY = INIT +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# The init time begin and end times, increment, and last init hour. +LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H INIT_BEG = 2020100700 INIT_END = 2020100700 - -# This is the step-size. Increment in seconds from the begin time to the end time -# set to 6 hours = 21600 seconds INIT_INCREMENT = 21600 USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_PER_INIT_OR_VALID -USER_SCRIPT_PATH = {PARM_BASE}/use_cases/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC/extract_opc_decks.py +LOOP_ORDER = processes -USER_SCRIPT_INPUT_PATH = {INPUT_BASE}/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC/trak.gfso.atcf_gen.glbl.{init?fmt=%Y} -USER_SCRIPT_COMMAND = {USER_SCRIPT_PATH} {USER_SCRIPT_INPUT_PATH} {USER_SCRIPT_OUTPUT_DIR} {init?fmt=%Y%m%d%H} +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# A list of times to include, in format YYYYMMDD_hh -TC_PAIRS_INIT_INCLUDE = - -# A list of times to exclude, in format YYYYMMDD_hh -TC_PAIRS_INIT_EXCLUDE = +USER_SCRIPT_OUTPUT_DIR = {OUTPUT_BASE}/decks -# Specify model init time window in format YYYYMM[DD[_hh]] -# Only tracks that fall within the initialization time window will be used -TC_PAIRS_INIT_BEG = -TC_PAIRS_INIT_END = +TC_PAIRS_ADECK_INPUT_DIR = {USER_SCRIPT_OUTPUT_DIR}/adeck +TC_PAIRS_ADECK_TEMPLATE = adeck.{init?fmt=%Y%m%d%H}.{cyclone}.dat -# Specify model valid time window in format YYYYMM[DD[_hh]] -# Only tracks that fall within the valid time window will be used -TC_PAIRS_VALID_BEG = -TC_PAIRS_VALID_END = +TC_PAIRS_BDECK_INPUT_DIR = {USER_SCRIPT_OUTPUT_DIR}/adeck +TC_PAIRS_BDECK_TEMPLATE = adeck.{init?fmt=%Y%m%d%H}.{cyclone}.dat -# -# Run MET tc_pairs by indicating the top-level directories for the A-deck and B-deck files. Set to 'yes' to -# run using top-level directories, 'no' if you want to run tc_pairs on files paired by the wrapper. -TC_PAIRS_READ_ALL_FILES = no +TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs +TC_PAIRS_OUTPUT_TEMPLATE = tc_pairs.{init?fmt=%Y%m%d%H}.{cyclone} -# set to true or yes to reformat track data into ATCF format expected by tc_pairs -TC_PAIRS_REFORMAT_DECK = no +CYCLONE_PLOTTER_INPUT_DIR = {TC_PAIRS_OUTPUT_DIR} +CYCLONE_PLOTTER_OUTPUT_DIR = {OUTPUT_BASE}/cyclone -# OVERWRITE OPTIONS -# Don't overwrite filter files if they already exist. -# Set to yes if you do NOT want to override existing files -# Set to no if you do want to override existing files -TC_PAIRS_SKIP_IF_OUTPUT_EXISTS = no -# -# MET TC-Pairs -# -# List of models to be used (white space or comma separated) eg: DSHP, LGEM, HWRF -# If no models are listed, then process all models in the input file(s). -MODEL = +### +# UserScript Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### -#TC_PAIRS_DESC = +USER_SCRIPT_PATH = {PARM_BASE}/use_cases/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC/extract_opc_decks.py -# List of storm ids of interest (space or comma separated) e.g.: AL112012, AL122012 -# If no storm ids are listed, then process all storm ids in the input file(s). -TC_PAIRS_STORM_ID = +USER_SCRIPT_INPUT_PATH = {INPUT_BASE}/model_applications/tc_and_extra_tc/CyclonePlotter_fcstGFS_obsGFS_UserScript_ExtraTC/trak.gfso.atcf_gen.glbl.{init?fmt=%Y} -# Basins (of origin/region). Indicate with space or comma-separated list of regions, eg. AL: for North Atlantic, -# WP: Western North Pacific, CP: Central North Pacific, SH: Southern Hemisphere, IO: North Indian Ocean, LS: Southern -# Hemisphere -TC_PAIRS_BASIN = +USER_SCRIPT_COMMAND = {USER_SCRIPT_PATH} {USER_SCRIPT_INPUT_PATH} {USER_SCRIPT_OUTPUT_DIR} {init?fmt=%Y%m%d%H} -# Cyclone, a space or comma-separated list of cyclone numbers. If left empty, all cyclones will be used. -TC_PAIRS_CYCLONE = -# Storm name, a space or comma-separated list of storm names to evaluate. If left empty, all storms will be used. -TC_PAIRS_STORM_NAME = +### +# TCPairs Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcpairs +### -# DLAND file, the full path of the file that contains the gridded representation of the -# minimum distance from land. TC_PAIRS_DLAND_FILE = MET_BASE/tc_data/dland_global_tenth_degree.nc -# setting this so that when verifying against analysis track, the union of points are written -TC_PAIRS_MET_CONFIG_OVERRIDES = match_points = FALSE; +TC_PAIRS_MATCH_POINTS = FALSE + + +### +# CyclonePlotter Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#cycloneplotter +### -## -# only 00, 06, 12, and 18z init times are supported in NOAA website, -# so for consistency, these are the only options for METplus. -# CYCLONE_PLOTTER_INIT_DATE={init?fmt=%Y%m%d} CYCLONE_PLOTTER_INIT_HR ={init?fmt=%H} CYCLONE_PLOTTER_MODEL = GFSO CYCLONE_PLOTTER_PLOT_TITLE = Model Forecast Storm Tracks -## -# Indicate the region (i.e. define a bounding box) to plot -# - -# Set to Y[y]es or True to plot entire global extent, N[n]o or False -# to generate a plot of a defined region of the world (and define lons and -# lats below). CYCLONE_PLOTTER_GLOBAL_PLOT = no -# ***IMPORTANT*** If CYCLONE_PLOTTER_GLOBAL_PLOT -# is set to False or N[n]o, then define the region of the world to plot. -# Longitudes can range from -180 to 180 degrees and latitudes from -90 to 90 degrees - -# -------------------------------- -# EXAMPLE OF BOUNDING BOX SETTINGS -# -------------------------------- -# NORTHERN HEMISPHERE CYCLONE_PLOTTER_WEST_LON = -180 CYCLONE_PLOTTER_EAST_LON = 179 CYCLONE_PLOTTER_SOUTH_LAT = 0 CYCLONE_PLOTTER_NORTH_LAT = 90 -## -# Indicate the size of symbol (point size) CYCLONE_PLOTTER_CIRCLE_MARKER_SIZE = 4 CYCLONE_PLOTTER_CROSS_MARKER_SIZE = 6 -## -# Indicate text size of annotation label CYCLONE_PLOTTER_ANNOTATION_FONT_SIZE = 3 -# Indicate the text size for the legend labels CYCLONE_PLOTTER_LEGEND_FONT_SIZE = 3 -## -# Resolution of saved plot in dpi (dots per inch) -# Set to 0 to allow Matplotlib to determine, based on your computer CYCLONE_PLOTTER_RESOLUTION_DPI = 400 CYCLONE_PLOTTER_GENERATE_TRACK_ASCII = yes CYCLONE_PLOTTER_ADD_WATERMARK = False - -# -# DIRECTORIES -# -[dir] -# Location of input track data directory -# for ADECK and BDECK data - -USER_SCRIPT_OUTPUT_DIR = {OUTPUT_BASE}/decks - -TC_PAIRS_ADECK_INPUT_DIR = {USER_SCRIPT_OUTPUT_DIR}/adeck -TC_PAIRS_BDECK_INPUT_DIR = {USER_SCRIPT_OUTPUT_DIR}/adeck - -TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs - -CYCLONE_PLOTTER_INPUT_DIR = {TC_PAIRS_OUTPUT_DIR} -CYCLONE_PLOTTER_OUTPUT_DIR = {OUTPUT_BASE}/cyclone - -[filename_templates] -TC_PAIRS_ADECK_TEMPLATE = adeck.{init?fmt=%Y%m%d%H}.{cyclone}.dat -TC_PAIRS_BDECK_TEMPLATE = adeck.{init?fmt=%Y%m%d%H}.{cyclone}.dat -TC_PAIRS_OUTPUT_TEMPLATE = tc_pairs.{init?fmt=%Y%m%d%H}.{cyclone} diff --git a/parm/use_cases/model_applications/tc_and_extra_tc/GridStat_fcstHAFS_obsTDR_NetCDF.conf b/parm/use_cases/model_applications/tc_and_extra_tc/GridStat_fcstHAFS_obsTDR_NetCDF.conf index 37cacb0c96..38b229e0f3 100644 --- a/parm/use_cases/model_applications/tc_and_extra_tc/GridStat_fcstHAFS_obsTDR_NetCDF.conf +++ b/parm/use_cases/model_applications/tc_and_extra_tc/GridStat_fcstHAFS_obsTDR_NetCDF.conf @@ -1,88 +1,62 @@ -# GridStat METplus Configuration - -# section heading for [config] variables - all items below this line and -# before the next section heading correspond to the [config] section [config] -# List of applications to run - only GridStat for this case +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/tc_and_extra_tc/GridStat_fcstHAFS_obsTDR_NetCDF.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = GridStat -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 = VALID +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Format of INIT_BEG and INT_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 +LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT VALID_BEG = 2019082912 - -# End time for METplus run - must match INIT_TIME_FMT VALID_END = 2019082912 +VALID_INCREMENT = 21600 -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds -VALID_INCREMENT = 21600 - -# 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 = 0,6,12,18 -# 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 - - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -LOG_GRID_STAT_VERBOSITY = 200 +CUSTOM_LOOP_LIST = 190829H1 -# Location of MET config file to pass to GridStat -# References CONFIG_DIR from the [dir] section -GRID_STAT_CONFIG_FILE = {CONFIG_DIR}/GridStatConfig_wrapped -GRID_STAT_OUTPUT_FLAG_FHO = BOTH -GRID_STAT_OUTPUT_FLAG_CTC = STAT -GRID_STAT_OUTPUT_FLAG_CTS = STAT -GRID_STAT_OUTPUT_FLAG_CNT = STAT -GRID_STAT_OUTPUT_FLAG_SL1L2 = STAT -GRID_STAT_OUTPUT_FLAG_ECLV = NONE +LOOP_ORDER = times -# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary -# See MET User's Guide for more information -GRID_STAT_REGRID_TO_GRID = OBS -# Name to identify model (forecast) data in output -MODEL = HAFS +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# Name to identify observation data in output -OBTYPE = TDR +FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/GridStat_fcstHAFS_obsTDR_NetCDF/hafs_height +FCST_GRID_STAT_INPUT_TEMPLATE = dorian05l.{init?fmt=%Y%m%d%H}.hafsprs.synoptic.0p03.f{lead?fmt=%HHH}.nc4 -# add list of missions separated by commas -CUSTOM_LOOP_LIST = 190829H1 +OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/GridStat_fcstHAFS_obsTDR_NetCDF/obs +OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY -# List of variables to compare in GridStat - FCST_VAR1 variables correspond -# to OBS_VAR1 variables -# Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations -# are needed for different tools +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/tc_and_extra_tc/tdr +GRID_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H} -FCST_VAR1_NAME = u -FCST_VAR1_OPTIONS = set_attr_init="{init?fmt=%Y%m%d_%H%M%S}"; set_attr_valid="{valid?fmt=%Y%m%d_%H%M%S}"; set_attr_lead="{lead?fmt=%H}"; -# FCST_VAR_LEVELS dimensions are (valid_time, lev, latitude, longitude) -FCST_VAR1_LEVELS = "(0,1,*,*)" -FCST_GRID_STAT_INPUT_DATATYPE = NETCDF_NCCF +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### # Location of the TDR file TC_RADAR_FILE = {OBS_GRID_STAT_INPUT_DIR}/merged_zonal_wind_tdr.nc @@ -90,96 +64,37 @@ TC_RADAR_FILE = {OBS_GRID_STAT_INPUT_DIR}/merged_zonal_wind_tdr.nc # Obs vertical level in km OBS_VERT_LEVEL_KM = 2 +MODEL = HAFS +OBTYPE = TDR -# Name of observation variable 1 -# In this example the variable is merged_zonal_wind -# -OBS_VAR1_NAME = {PARM_BASE}/use_cases/model_applications/tc_and_extra_tc/GridStat_fcstHAFS_obsTDR_NetCDF/read_tdr.py {TC_RADAR_FILE} merged_zonal_wind {custom?fmt=%s} {OBS_VERT_LEVEL_KM} - -#Thresholds for categorical statistics +FCST_VAR1_NAME = u +FCST_VAR1_LEVELS = "(0,1,*,*)" FCST_VAR1_THRESH = gt10.0, gt20.0, lt-10.0, lt-20.0 +FCST_VAR1_OPTIONS = set_attr_init="{init?fmt=%Y%m%d_%H%M%S}"; set_attr_valid="{valid?fmt=%Y%m%d_%H%M%S}"; set_attr_lead="{lead?fmt=%H}"; +FCST_GRID_STAT_INPUT_DATATYPE = NETCDF_NCCF + +OBS_VAR1_NAME = {PARM_BASE}/use_cases/model_applications/tc_and_extra_tc/GridStat_fcstHAFS_obsTDR_NetCDF/read_tdr.py {TC_RADAR_FILE} merged_zonal_wind {custom?fmt=%s} {OBS_VERT_LEVEL_KM} OBS_VAR1_THRESH = gt10.0, gt20.0, lt-10.0, lt-20.0 -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the filename -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -# MET GridStat neighborhood values -# See the MET User's Guide GridStat section for more information -# width value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_WIDTH = 1 +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### -# shape value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE +GRID_STAT_OUTPUT_FLAG_FHO = BOTH +GRID_STAT_OUTPUT_FLAG_CTC = STAT +GRID_STAT_OUTPUT_FLAG_CTS = STAT +GRID_STAT_OUTPUT_FLAG_CNT = STAT +GRID_STAT_OUTPUT_FLAG_SL1L2 = STAT +GRID_STAT_OUTPUT_FLAG_ECLV = NONE + +GRID_STAT_REGRID_TO_GRID = OBS -# cov thresh list passed to nbrhd dictionary in the MET config file +GRID_STAT_NEIGHBORHOOD_WIDTH = 1 +GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE GRID_STAT_NEIGHBORHOOD_COV_THRESH = >=0.5 -# Set to true to run GridStat separately for each field specified -# Set to false to create one run of GridStat per run time that -# includes all fields specified. GRID_STAT_ONCE_PER_FIELD = False -# Set to true if forecast data is probabilistic -FCST_IS_PROB = false - -# Only used if FCST_IS_PROB is true - sets probabilistic threshold -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -# Set to true if observation data is probabilistic -# Only used if configuring forecast data as the 'OBS' input -OBS_IS_PROB = false - -# Only used if OBS_IS_PROB is true - sets probabilistic threshold -OBS_GRID_STAT_PROB_THRESH = ==0.1 - GRID_STAT_OUTPUT_PREFIX = {MODEL}_vs_{OBTYPE} - -# End of [config] section and start of [dir] section -[dir] - -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/met_config - -# directory containing forecast input to GridStat -FCST_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/GridStat_fcstHAFS_obsTDR_NetCDF/hafs_height - -# directory containing observation input to GridStat -OBS_GRID_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/GridStat_fcstHAFS_obsTDR_NetCDF/obs - -# directory containing climatology mean input to GridStat -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_DIR = - -# directory containing climatology mean input to GridStat -# Not used in this example -GRID_STAT_CLIMO_STDEV_INPUT_DIR = - -# directory to write output from GridStat -GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/tc_and_extra_tc/tdr - -# End of [dir] section and start of [filename_templates] section -[filename_templates] - -# Template to look for forecast input to GridStat relative to FCST_GRID_STAT_INPUT_DIR -FCST_GRID_STAT_INPUT_TEMPLATE = dorian05l.{init?fmt=%Y%m%d%H}.hafsprs.synoptic.0p03.f{lead?fmt=%HHH}.nc4 - -# Template to look for observation input to GridStat relative to OBS_GRID_STAT_INPUT_DIR -OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY - - -# Optional subdirectories relative to GRID_STAT_OUTPUT_DIR to write output from GridStat -GRID_STAT_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H} - -# Template to look for climatology input to GridStat relative to GRID_STAT_CLIMO_MEAN_INPUT_DIR -# Not used in this example -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = - -# Template to look for climatology input to GridStat relative to GRID_STAT_CLIMO_STDEV_INPUT_DIR -# Not used in this example -GRID_STAT_CLIMO_STDEV_INPUT_TEMPLATE = - -# Used to specify one or more verification mask files for GridStat -# Not used for this example -GRID_STAT_VERIFICATION_MASK_TEMPLATE = diff --git a/parm/use_cases/model_applications/tc_and_extra_tc/Plotter_fcstGFS_obsGFS_ExtraTC.conf b/parm/use_cases/model_applications/tc_and_extra_tc/Plotter_fcstGFS_obsGFS_ExtraTC.conf index cd213f47ac..60bf71574c 100644 --- a/parm/use_cases/model_applications/tc_and_extra_tc/Plotter_fcstGFS_obsGFS_ExtraTC.conf +++ b/parm/use_cases/model_applications/tc_and_extra_tc/Plotter_fcstGFS_obsGFS_ExtraTC.conf @@ -1,144 +1,93 @@ -[dir] -## Dirs below used by tc_pairs_wrapper module. -# -------------------------------------------- -# track data, set to your data source +[config] -TC_PAIRS_ADECK_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/track_data -TC_PAIRS_BDECK_INPUT_DIR = {TC_PAIRS_ADECK_INPUT_DIR} +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/tc_and_extra_tc/Plotter_fcstGFS_obsGFS_ExtraTC.html -# Where modified track files are saved -TC_PAIRS_REFORMAT_DIR = {OUTPUT_BASE}/track_data_atcf -TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -## Dirs below used by cyclone_plotter_wrapper module. -# -------------------------------------------------- -CYCLONE_PLOTTER_INPUT_DIR = {OUTPUT_BASE}/tc_pairs -CYCLONE_PLOTTER_OUTPUT_DIR = {OUTPUT_BASE}/cyclone +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### -[filename_templates] -TC_PAIRS_ADECK_TEMPLATE = {date?fmt=%Y%m}/a{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} -TC_PAIRS_BDECK_TEMPLATE = {date?fmt=%Y%m}/b{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} -TC_PAIRS_OUTPUT_TEMPLATE = {date?fmt=%Y%m}/{basin?fmt=%s}q{date?fmt=%Y%m%d%H}.gfso.{cyclone?fmt=%s} - -[config] -# ================================================ -## -# EXTRA TROPICAL CYCLONE PLOT OPTIONS... -# PROCESS_LIST = TCPairs, CyclonePlotter -LOOP_ORDER = processes -LOOP_BY = init -## Config options below used by tc_pairs_wrapper module. -# ------------------------------------------------------- -## -# -# MET TC-Pairs -# -# -## - -# -# Generate the tc-pairs data of interest -# -# Configuration files -TC_PAIRS_CONFIG_FILE = {PARM_BASE}/met_config/TCPairsConfig_wrapped +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + +LOOP_BY = init INIT_TIME_FMT = %Y%m%d INIT_BEG = 20150301 INIT_END = 20150330 -INIT_INCREMENT = 21600 ;; 6 hours - +INIT_INCREMENT = 21600 TC_PAIRS_RUN_ONCE = True -# A list of times to include, in format YYYYMMDD_hh -INIT_INCLUDE = +LOOP_ORDER = processes + -# A list of times to exclude, in format YYYYMMDD_hh -INIT_EXCLUDE = +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# -# Specify model valid time window in format YYYYMM[DD[_hh]]. -# Only tracks that fall within the valid time window will -# be used. -VALID_BEG = -VALID_END = +# TCPairs -# -# Run MET tc_pairs by indicating the top-level directories for the A-deck and B-deck files. Set to 'yes' to -# run using top-level directories, 'no' if you want to run tc_pairs on files paired by the wrapper. -TC_PAIRS_READ_ALL_FILES = no +TC_PAIRS_ADECK_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/track_data +TC_PAIRS_ADECK_TEMPLATE = {date?fmt=%Y%m}/a{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} -# -# MET TC-Pairs -# -# List of models to be used (white space or comma separated) eg: DSHP, LGEM, HWRF -# If no models are listed, then process all models in the input file(s). -MODEL = +TC_PAIRS_BDECK_INPUT_DIR = {TC_PAIRS_ADECK_INPUT_DIR} +TC_PAIRS_BDECK_TEMPLATE = {date?fmt=%Y%m}/b{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} -# List of storm ids of interest (space or comma separated) e.g.: AL112012, AL122012 -# If no storm ids are listed, then process all storm ids in the input file(s). -TC_PAIRS_STORM_ID = +TC_PAIRS_REFORMAT_DIR = {OUTPUT_BASE}/track_data_atcf +TC_PAIRS_SKIP_IF_REFORMAT_EXISTS = yes -# Basins (of origin/region). Indicate with space or comma-separated list of regions, eg. AL: for North Atlantic, -# WP: Western North Pacific, CP: Central North Pacific, SH: Southern Hemisphere, IO: North Indian Ocean, LS: Southern -# Hemisphere -TC_PAIRS_BASIN = +TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs +TC_PAIRS_OUTPUT_TEMPLATE = {date?fmt=%Y%m}/{basin?fmt=%s}q{date?fmt=%Y%m%d%H}.gfso.{cyclone?fmt=%s} +TC_PAIRS_SKIP_IF_OUTPUT_EXISTS = yes -# Cyclone, a space or comma-separated list of cyclone numbers. If left empty, all cyclones will be used. -TC_PAIRS_CYCLONE = -# Storm name, a space or comma-separated list of storm names to evaluate. If left empty, all storms will be used. -TC_PAIRS_STORM_NAME = +# CyclonePlotter +CYCLONE_PLOTTER_INPUT_DIR = {OUTPUT_BASE}/tc_pairs +CYCLONE_PLOTTER_OUTPUT_DIR = {OUTPUT_BASE}/cyclone + + +### +# TCPairs Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcpairs +### -# DLAND file, the full path of the file that contains the gridded representation of the -# minimum distance from land. -# Setting this causes tc_pairs to run approx 4x slower TC_PAIRS_DLAND_FILE = {MET_INSTALL_DIR}/share/met/tc_data/dland_global_tenth_degree.nc -## tc-pairs filtering options TC_PAIRS_REFORMAT_DECK = yes TC_PAIRS_REFORMAT_TYPE = SBU TC_PAIRS_MISSING_VAL_TO_REPLACE = -99 TC_PAIRS_MISSING_VAL = -9999 -# SKIP OPTIONS -# Skip processing files if the output already exists. -# Set to yes if you do NOT want to override existing files -# Set to no if you do want to override existing files -TC_PAIRS_SKIP_IF_REFORMAT_EXISTS = yes -TC_PAIRS_SKIP_IF_OUTPUT_EXISTS = yes -## -# CYCLONE PLOTTER -# -## Config options below used by cyclone_plotter_wrapper module. -# ------------------------------------------------------------- -## +### +# CyclonePlotter Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#cycloneplotter +### -# -# Specify the YMD of tracks of interest -# CYCLONE_PLOTTER_INIT_DATE = 20150301 -## -# only 00, 06, 12, and 18z init times are supported in NOAA website, -# so for consistency, these are the only options for METplus. -# CYCLONE_PLOTTER_INIT_HR = 12 ;; hh format CYCLONE_PLOTTER_MODEL = GFSO CYCLONE_PLOTTER_PLOT_TITLE = Model Forecast Storm Tracks -## -# Indicate the region (i.e. define a bounding box) to plot -# - -# Set to Y[y]es or True to plot entire global extent, N[n]o or False -# to generate a plot of a defined region of the world (and define lons and -# lats below). CYCLONE_PLOTTER_GLOBAL_PLOT = no # ***IMPORTANT*** If CYCLONE_PLOTTER_GLOBAL_PLOT @@ -154,28 +103,15 @@ CYCLONE_PLOTTER_EAST_LON = 179 CYCLONE_PLOTTER_SOUTH_LAT = 0 CYCLONE_PLOTTER_NORTH_LAT = 90 -# Indicate the size of symbol (point size) + CYCLONE_PLOTTER_CIRCLE_MARKER_SIZE = 2 CYCLONE_PLOTTER_CROSS_MARKER_SIZE = 3 -## -# Indicate text size of annotation label CYCLONE_PLOTTER_ANNOTATION_FONT_SIZE = 3 - -# Indicate the text size for the legend labels CYCLONE_PLOTTER_LEGEND_FONT_SIZE = 3 -## -# Turn on/off the generation of an ASCII output file listing all the -# tracks that are in the plot. This can be helpful in debugging or verifying -# that what is plotted is consistent with the data. -# CYCLONE_PLOTTER_GENERATE_TRACK_ASCII = yes CYCLONE_PLOTTER_ADD_WATERMARK = False -## -# Resolution of saved plot in dpi (dots per inch) -# Set to 0 to allow Matplotlib to determine, based on your computer CYCLONE_PLOTTER_RESOLUTION_DPI = 400 - diff --git a/parm/use_cases/model_applications/tc_and_extra_tc/Plotter_fcstGFS_obsGFS_RPlotting.conf b/parm/use_cases/model_applications/tc_and_extra_tc/Plotter_fcstGFS_obsGFS_RPlotting.conf index 7ebe6f256c..dbd4e39267 100644 --- a/parm/use_cases/model_applications/tc_and_extra_tc/Plotter_fcstGFS_obsGFS_RPlotting.conf +++ b/parm/use_cases/model_applications/tc_and_extra_tc/Plotter_fcstGFS_obsGFS_RPlotting.conf @@ -1,78 +1,70 @@ -# -# PRECONDITION: REQUIRES INSTALLATION OF R on user system -# - -# -# CONFIGURATION -# [config] -# Loop over each process in the process list (set in PROCESS_LIST) for all times in the time window of -# interest. -LOOP_ORDER = processes -# Configuration files -TC_PAIRS_CONFIG_FILE = {PARM_BASE}/met_config/TCPairsConfig_wrapped +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/tc_and_extra_tc/Plotter_fcstGFS_obsGFS_RPlotting.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### PROCESS_LIST = TCPairs, TCMPRPlotter -# The init time begin and end times, increment +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d INIT_BEG = 20141214 INIT_END = 20141214 - -# This is the step-size. Increment in seconds from the begin time to the end -# time INIT_INCREMENT = 21600 ;; set to every 6 hours=21600 seconds -# A list of times to include, in format YYYYMMDD_hh -INIT_INCLUDE = - -# A list of times to exclude, in format YYYYMMDD_hh -INIT_EXCLUDE = - -# -# Specify model valid time window in format YYYYMM[DD[_hh]]. Only tracks -# that fall within the valid time window will -# be used. -# -VALID_BEG = -VALID_END = - -## -# -# MET TC-Pairs -# -## - -# -# Run MET tc_pairs by indicating the top-level directories for the A-deck -# and B-deck files. Set to 'yes' to run using top-level directories, 'no' -# if you want to run tc_pairs on files paired by the wrapper. -TC_PAIRS_READ_ALL_FILES = no - -# List of models to be used (white space or comma separated) eg: DSHP, LGEM, HWRF -# If no models are listed, then process all models in the input file(s). -MODEL = - -# List of storm ids of interest (space or comma separated) e.g.: AL112012, AL122012 -# If no storm ids are listed, then process all storm ids in the input file(s). -TC_PAIRS_STORM_ID = - -# Basins (of origin/region). Indicate with space or comma-separated list of regions, eg. AL: for North Atlantic, -# WP: Western North Pacific, CP: Central North Pacific, SH: Southern Hemisphere, IO: North Indian Ocean, LS: Southern -# Hemisphere -TC_PAIRS_BASIN = - -# Cyclone, a space or comma-separated list of cyclone numbers. If left empty, all cyclones will be used. -TC_PAIRS_CYCLONE = - -# Storm name, a space or comma-separated list of storm names to evaluate. If left empty, all storms will be used. -TC_PAIRS_STORM_NAME = - -# DLAND file, the full path of the file that contains the gridded representation of the -# minimum distance from land. +LOOP_ORDER = processes + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +# TCPairs + +TC_PAIRS_ADECK_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/track_data +TC_PAIRS_ADECK_TEMPLATE = {date?fmt=%Y%m}/a{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} + +TC_PAIRS_BDECK_INPUT_DIR = {TC_PAIRS_ADECK_INPUT_DIR} +TC_PAIRS_BDECK_TEMPLATE = {date?fmt=%Y%m}/b{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} + +TC_PAIRS_REFORMAT_DIR = {OUTPUT_BASE}/track_data_atcf +TC_PAIRS_SKIP_IF_REFORMAT_EXISTS = yes + +TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs +TC_PAIRS_OUTPUT_TEMPLATE = {date?fmt=%Y%m}/{basin?fmt=%s}q{date?fmt=%Y%m%d%H}.gfso.{cyclone?fmt=%s} +TC_PAIRS_SKIP_IF_OUTPUT_EXISTS = yes + + +# TCMPRPlotter + +TCMPR_PLOTTER_TCMPR_DATA_DIR = {TC_PAIRS_OUTPUT_DIR} +TCMPR_PLOTTER_PLOT_OUTPUT_DIR = {OUTPUT_BASE}/tcmpr_plots + + +### +# TCPairs Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcpairs +### + TC_PAIRS_DLAND_FILE = {MET_INSTALL_DIR}/share/met/tc_data/dland_global_tenth_degree.nc TC_PAIRS_REFORMAT_DECK = yes @@ -82,9 +74,14 @@ TC_PAIRS_MISSING_VAL_TO_REPLACE = -99 TC_PAIRS_MISSING_VAL = -9999 -# Plot_TCMPR options, if left unset, default values that are -# pre-defined in the R utility (packaged with MET) will be used. +### +# TCMPRPlotter Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcmprplotter +### + +CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/tc_and_extra_tc/Plotter_fcstGFS_obsGFS_RPlotting TCMPR_PLOTTER_CONFIG_FILE = {CONFIG_DIR}/TCMPRPlotterConfig_customize + TCMPR_PLOTTER_PREFIX = TCMPR_PLOTTER_TITLE = TCMPR_PLOTTER_SUBTITLE = Your subtitle goes here @@ -119,40 +116,3 @@ TCMPR_PLOTTER_SAVE_DATA = TCMPR_PLOTTER_NO_EE = no TCMPR_PLOTTER_NO_LOG = no TCMPR_PLOTTER_SAVE = no - - -# OVERWRITE OPTIONS -# Don't overwrite filter files if they already exist. -# Set to no if you do NOT want to override existing files -# Set to yes if you do want to override existing files - -# overwrite modified track data (non-ATCF to ATCF format) -TC_PAIRS_SKIP_IF_REFORMAT_EXISTS = yes - -# overwrite tc_pairs output -TC_PAIRS_SKIP_IF_OUTPUT_EXISTS = yes - -# FILENAME TEMPLATES -# -[filename_templates] -# Define the format of the filenames - -TC_PAIRS_ADECK_TEMPLATE = {date?fmt=%Y%m}/a{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} -TC_PAIRS_BDECK_TEMPLATE = {date?fmt=%Y%m}/b{basin?fmt=%s}q{date?fmt=%Y%m}*.gfso.{cyclone?fmt=%s} -TC_PAIRS_OUTPUT_TEMPLATE = {date?fmt=%Y%m}/{basin?fmt=%s}q{date?fmt=%Y%m%d%H}.gfso.{cyclone?fmt=%s} - -# -# DIRECTORIES -# -[dir] - -CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/tc_and_extra_tc/Plotter_fcstGFS_obsGFS_RPlotting - -# track data, set to your data source -TC_PAIRS_ADECK_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/track_data -TC_PAIRS_BDECK_INPUT_DIR = {TC_PAIRS_ADECK_INPUT_DIR} -TC_PAIRS_REFORMAT_DIR = {OUTPUT_BASE}/track_data_atcf -TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs - -TCMPR_PLOTTER_TCMPR_DATA_DIR = {TC_PAIRS_OUTPUT_DIR} -TCMPR_PLOTTER_PLOT_OUTPUT_DIR = {OUTPUT_BASE}/tcmpr_plots diff --git a/parm/use_cases/model_applications/tc_and_extra_tc/TCGen_fcstGFS_obsBDECK_2021season.conf b/parm/use_cases/model_applications/tc_and_extra_tc/TCGen_fcstGFS_obsBDECK_2021season.conf index 86b6251205..3ea343ac81 100644 --- a/parm/use_cases/model_applications/tc_and_extra_tc/TCGen_fcstGFS_obsBDECK_2021season.conf +++ b/parm/use_cases/model_applications/tc_and_extra_tc/TCGen_fcstGFS_obsBDECK_2021season.conf @@ -1,33 +1,45 @@ [config] -# Looping by times: steps through each 'task' in the PROCESS_LIST for each -# defined time, and repeats until all times have been evaluated. -LOOP_ORDER = times +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/tc_and_extra_tc/TCGen_fcstGFS_obsBDECK_2021season.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### -# 'Tasks' to be run PROCESS_LIST = TCGen -LOOP_BY = INIT -# The init time +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + +LOOP_BY = INIT INIT_TIME_FMT = %Y INIT_BEG = 2021 - -LOG_TC_GEN_VERBOSITY = 2 - -# optional list of strings to loop over and call the tool multiple times -# value of each item can be referenced in filename templates with {custom?fmt=%s} -TC_GEN_CUSTOM_LOOP_LIST = +LOOP_ORDER = times -# I/O Configurations +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# Location of input data directory for track data TC_GEN_TRACK_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/TCGen_fcstGFS_obsBDECK_2021season/abdeck/ TC_GEN_TRACK_INPUT_TEMPLATE = *.dat -# Location of input data directory for genesis data TC_GEN_GENESIS_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/TCGen_fcstGFS_obsBDECK_2021season/genesis/ TC_GEN_GENESIS_INPUT_TEMPLATE = genesis*.atcf_gen @@ -37,19 +49,14 @@ TC_GEN_EDECK_INPUT_TEMPLATE = edeck*.dat TC_GEN_SHAPE_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/TCGen_fcstGFS_obsBDECK_2021season/shape TC_GEN_SHAPE_INPUT_TEMPLATE = */{init?fmt=%Y}*/gtwo*.shp - -# directory to write output files generated by tc_gen TC_GEN_OUTPUT_DIR = {OUTPUT_BASE}/model_application/tc_and_extra_tc/TCGen TC_GEN_OUTPUT_TEMPLATE = tc_gen -# MET Configurations - -TC_GEN_CONFIG_FILE = {PARM_BASE}/met_config/TCGenConfig_wrapped - -# The following variables set values in the MET configuration file used by this example -# Leaving these values commented will use the value found in the default MET configuration file -# See the MET documentation for this tool for more information on the settings +### +# TCGen Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcgen +### TC_GEN_INIT_FREQ = 6 @@ -71,42 +78,10 @@ TC_GEN_BEST_GENESIS_MSLP_THRESH = NA TC_GEN_OPER_TECHNIQUE = CARQ -# TC_GEN_FILTER_ sets filter items in the MET configuration file -# quotation marks within quotation marks must be preceeded with \ -#TC_GEN_FILTER_1 = desc = "AL_BASIN"; vx_mask = "MET_BASE/tc_data/basin_global_tenth_degree.nc { name=\"basin\"; level=\"(*,*)\"; } ==1"; -#TC_GEN_FILTER_2 = desc = "AL_DLAND_300"; vx_mask = "MET_BASE/tc_data/basin_global_tenth_degree.nc { name=\"basin\"; level=\"(*,*)\"; } ==1"; dland_thresh = >0&&<300; -#TC_GEN_FILTER_3 = desc = "EP_CP_BASIN"; vx_mask = "MET_BASE/tc_data/basin_global_tenth_degree.nc { name=\"basin\"; level=\"(*,*)\";} ==2||==3"; -#TC_GEN_FILTER_4 = desc = "EP_BASIN"; genesis_window = { beg = -3*24; end = 3*24; }; genesis_radius = 300; -#TC_GEN_FILTER_5 = desc = "3DAY_300KM"; genesis_window = { beg = -3*24; end = 3*24; }; genesis_radius = 300; -#TC_GEN_FILTER_6 = desc = "3DAY_600KM"; genesis_window = { beg = -3*24; end = 3*24; }; genesis_radius = 600; -#TC_GEN_FILTER_7 = desc = "5DAY_300KM"; genesis_window = { beg = -5*24; end = 5*24; }; genesis_radius = 300; -#TC_GEN_FILTER_8 = desc = "5DAY_600KM"; genesis_window = { beg = -5*24; end = 5*24; }; genesis_radius = 600; - TC_GEN_DESC = ALL MODEL = GFS -TC_GEN_STORM_ID = - -TC_GEN_STORM_NAME = - -TC_GEN_INIT_BEG = -TC_GEN_INIT_END = -TC_GEN_INIT_INC = -TC_GEN_INIT_EXC = - -TC_GEN_VALID_BEG = -TC_GEN_VALID_END = - -TC_GEN_INIT_HOUR = - -# sets METPLUS_LEAD in the wrapped MET config file -LEAD_SEQ = - -TC_GEN_VX_MASK = - -TC_GEN_BASIN_MASK = - TC_GEN_DLAND_THRESH = NA TC_GEN_GENESIS_MATCH_RADIUS = 500 diff --git a/parm/use_cases/model_applications/tc_and_extra_tc/TCPairs_TCStat_fcstADECK_obsBDECK_ATCF_BasicExample.conf b/parm/use_cases/model_applications/tc_and_extra_tc/TCPairs_TCStat_fcstADECK_obsBDECK_ATCF_BasicExample.conf index b57696ae61..9847b29a18 100644 --- a/parm/use_cases/model_applications/tc_and_extra_tc/TCPairs_TCStat_fcstADECK_obsBDECK_ATCF_BasicExample.conf +++ b/parm/use_cases/model_applications/tc_and_extra_tc/TCPairs_TCStat_fcstADECK_obsBDECK_ATCF_BasicExample.conf @@ -1,89 +1,83 @@ -# -# CONFIGURATION -# [config] -# Looping by times: steps through each 'task' in the PROCESS_LIST for each -# defined time, and repeats until all times have been evaluated. +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/tc_and_extra_tc/TCPairs_TCStat_fcstADECK_obsBDECK_ATCF_BasicExample.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### -# 'Tasks' to be run PROCESS_LIST = TCPairs, TCStat -LOOP_BY = INIT +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# The init time begin and end times, increment, and last init hour. +LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H INIT_BEG = 2021082500 INIT_END = 2021083000 - -# This is the step-size. Increment in seconds from the begin time to the end time -# set to 6 hours = 21600 seconds INIT_INCREMENT = 21600 -# -# Run MET tc_pairs by indicating the top-level directories for the A-deck and B-deck files. Set to 'yes' to -# run using top-level directories, 'no' if you want to run tc_pairs on files paired by the wrapper. -TC_PAIRS_READ_ALL_FILES = no +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### +# TCPairs -# -# MET TC-Pairs -# -# List of models to be used (white space or comma separated) eg: DSHP, LGEM, HWRF -# If no models are listed, then process all models in the input file(s). -MODEL = OFCL, HWRF +TC_PAIRS_ADECK_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/TCPairs_TCStat_fcstADECK_obsBDECK_ATCF_BasicExample +TC_PAIRS_BDECK_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/TCPairs_TCStat_fcstADECK_obsBDECK_ATCF_BasicExample -# List of storm ids of interest (space or comma separated) e.g.: AL112012, AL122012 -# If no storm ids are listed, then process all storm ids in the input file(s). -#TC_PAIRS_STORM_ID = AL092021, AL102021 +TC_PAIRS_ADECK_TEMPLATE = a{basin}{cyclone}{init?fmt=%Y}.dat +TC_PAIRS_BDECK_TEMPLATE = b{basin}{cyclone}{init?fmt=%Y}.dat -# Basins (of origin/region). Indicate with space or comma-separated list of regions, eg. AL: for North Atlantic, -# WP: Western North Pacific, CP: Central North Pacific, SH: Southern Hemisphere, IO: North Indian Ocean, LS: Southern -# Hemisphere -TC_PAIRS_BASIN = AL +TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs +TC_PAIRS_OUTPUT_TEMPLATE = tc_pairs.{basin}{cyclone}{init?fmt=%Y} -# Cyclone, a space or comma-separated list of cyclone numbers. If left empty, all cyclones will be used. -TC_PAIRS_CYCLONE = 09, 10 +# TCStat -# DLAND file, the full path of the file that contains the gridded representation of the -# minimum distance from land. -TC_PAIRS_DLAND_FILE = MET_BASE/tc_data/dland_global_tenth_degree.nc +TC_STAT_LOOKIN_DIR = {TC_PAIRS_OUTPUT_DIR} +TC_STAT_OUTPUT_DIR = {OUTPUT_BASE}/tc_stat -# setting this so that when verifying against analysis track, the union of points are written -TC_PAIRS_MET_CONFIG_OVERRIDES = match_points = TRUE; -# -# MET TC-Stat -# -#The line_type field stratifies by the line_type column. -TC_STAT_LINE_TYPE = TCMPR +### +# TCPairs Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcpairs +### -#The column_str_name and column_str_val fields stratify by performing string matching on non-numeric data columns. -TC_STAT_COLUMN_STRING_NAME = LEVEL -TC_STAT_COLUMN_STRING_VAL = HU,SD,SS,TS,TD +MODEL = OFCL, HWRF -#The water_only flag stratifies by only using points where both the amodel and bmodel tracks are over water. -TC_STAT_WATER_ONLY = FALSE +TC_PAIRS_BASIN = AL +TC_PAIRS_CYCLONE = 09, 10 -# -# DIRECTORIES -# -# Location of input track data directory -# for ADECK and BDECK data +TC_PAIRS_DLAND_FILE = MET_BASE/tc_data/dland_global_tenth_degree.nc -TC_PAIRS_ADECK_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/TCPairs_TCStat_fcstADECK_obsBDECK_ATCF_BasicExample -TC_PAIRS_BDECK_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/TCPairs_TCStat_fcstADECK_obsBDECK_ATCF_BasicExample +TC_PAIRS_MATCH_POINTS = TRUE -TC_PAIRS_ADECK_TEMPLATE = a{basin}{cyclone}{init?fmt=%Y}.dat -TC_PAIRS_BDECK_TEMPLATE = b{basin}{cyclone}{init?fmt=%Y}.dat -TC_PAIRS_OUTPUT_DIR = {OUTPUT_BASE}/tc_pairs +### +# TCStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcstat +### -TC_PAIRS_OUTPUT_TEMPLATE = tc_pairs.{basin}{cyclone}{init?fmt=%Y} +TC_STAT_LINE_TYPE = TCMPR -TC_STAT_LOOKIN_DIR = {TC_PAIRS_OUTPUT_DIR} -TC_STAT_OUTPUT_DIR = {OUTPUT_BASE}/tc_stat +TC_STAT_COLUMN_STRING_NAME = LEVEL +TC_STAT_COLUMN_STRING_VAL = HU,SD,SS,TS,TD -TC_STAT_JOB_ARGS = -job filter -dump_row {TC_STAT_OUTPUT_DIR}/tc_stat_summary.tcst +TC_STAT_WATER_ONLY = FALSE +TC_STAT_JOB_ARGS = -job filter -dump_row {TC_STAT_OUTPUT_DIR}/tc_stat_summary.tcst diff --git a/parm/use_cases/model_applications/tc_and_extra_tc/TCRMW_fcstGFS_fcstOnly_gonzalo.conf b/parm/use_cases/model_applications/tc_and_extra_tc/TCRMW_fcstGFS_fcstOnly_gonzalo.conf index a9f8bce45e..f44ee2d2c0 100644 --- a/parm/use_cases/model_applications/tc_and_extra_tc/TCRMW_fcstGFS_fcstOnly_gonzalo.conf +++ b/parm/use_cases/model_applications/tc_and_extra_tc/TCRMW_fcstGFS_fcstOnly_gonzalo.conf @@ -1,73 +1,66 @@ -# TCRMW Gonzalo - METplus Configuration - -# section heading for [config] variables - all items below this line and -# before the next section heading correspond to the [config] section [config] -# List of applications to run - only TCRMW for this case +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/tc_and_extra_tc/TCRMW_fcstGFS_fcstOnly_gonzalo.html + +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + PROCESS_LIST = TCRMW -# time looping - options are INIT, VALID, RETRO, and REALTIME + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### -# Format of INIT_BEG and INT_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 +LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT INIT_BEG = 2014101312 - -# End time for METplus run - must match INIT_TIME_FMT INIT_END = 2014101312 - -# Increment between METplus runs (in seconds if no units are specified) -# Must be >= 60 seconds INIT_INCREMENT = 6H -# 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) -# begin_end_incr(x,y,z) expands to a list where -# x = begin, y = end (inclusive), and z = increment between each value -#LEAD_SEQ = begin_end_incr(0, 126, 6) LEAD_SEQ = begin_end_incr(0, 24, 6) +#LEAD_SEQ = begin_end_incr(0, 126, 6) -# 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 -# Verbosity of MET output - overrides LOG_VERBOSITY for TCRMW only -LOG_TC_RMW_VERBOSITY = 3 -# Location of MET config file to pass to TCRMW -# References CONFIG_DIR from the [dir] section -TC_RMW_CONFIG_FILE = {CONFIG_DIR}/TCRMWConfig_wrapped +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# type of data used for input to TCRMW data dictionary -# The value set here will be used to add 'data_type = ;' -# If this option is removed/commented out/empty, nothing will be set -TC_RMW_INPUT_DATATYPE = GRIB2 +TC_RMW_DECK_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/rmw/adeck +TC_RMW_DECK_TEMPLATE = gonzalo08l.{init?fmt=%Y%m%d%H}.f00-24.trak.hwrf.atcfunix.06hr + +TC_RMW_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/rmw/fcst +TC_RMW_INPUT_TEMPLATE = gonzalo08l.subset.{init?fmt=%Y%m%d%H}.hwrfprs.core.0p02.f{lead?fmt=%3H}.grb2 + +TC_RMW_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/tc_and_extra_tc/TCRMW_gonzalo +TC_RMW_OUTPUT_TEMPLATE = tc_rmw_gonzal09l.{init?fmt=%Y%m%d%H}.nc + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### MODEL = HCLT -# list of pressure values to be referenced by other config variables -# this is not a variable name known to METplus, but added to avoid repeating values PRESSURE_LEVELS = "P1000","P850","P700","P500","P300","P200","P150","P100" -# List of variables to process in TCRMW -# must use BOTH_ config variables regardless if input is forecast or observation BOTH_VAR1_NAME = PRMSL BOTH_VAR1_LEVELS = L0 @@ -86,77 +79,15 @@ BOTH_VAR5_LEVELS = {PRESSURE_LEVELS} BOTH_VAR5_NAME = VGRD BOTH_VAR5_LEVELS = {PRESSURE_LEVELS} -# The following variables set MET configuration variables of the same name, -# i.e. TC_RMW_BASIN sets basin, TC_RMW_STORM_NAME sets storm_name, etc. -TC_RMW_BASIN = -TC_RMW_STORM_ID = +### +# TCRMW Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#tcrmw +### -TC_RMW_CYCLONE = +TC_RMW_INPUT_DATATYPE = GRIB2 -# Regrid options in TCRMW config file -# If these options are removed/commented out/empty, they will use -# the values from default MET config file TC_RMW_REGRID_METHOD = BILIN - TC_RMW_REGRID_WIDTH = 2 - TC_RMW_REGRID_VLD_THRESH = 0.5 - TC_RMW_REGRID_SHAPE = SQUARE - -# The following variables set values in the MET -# configuration file used by this example -# Leaving these values commented will use the value -# found in the default MET configuration file -#TC_RMW_INIT_INCLUDE = -#TC_RMW_VALID_BEG = -#TC_RMW_VALID_END = -#TC_RMW_VALID_INCLUDE_LIST = -#TC_RMW_VALID_EXCLUDE_LIST = -#TC_RMW_VALID_HOUR_LIST = - - -# Other TCRMW config file options -# If these options are removed/commented out/empty, they will use -# the values from default MET config file - -#TC_RMW_N_RANGE = 100 - -#TC_RMW_N_AZIMUTH = 180 - -#TC_RMW_MAX_RANGE_KM = 1000.0 - -#TC_RMW_DELTA_RANGE_KM = 10.0 - -#TC_RMW_SCALE = 0.2 - - -# -# DIRECTORIES -# -[dir] - -# location of configuration files used by MET applications -CONFIG_DIR={PARM_BASE}/met_config - -# Location of input track data directory -# for DECK data -TC_RMW_DECK_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/rmw/adeck - -# directory containing input data files -TC_RMW_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/rmw/fcst - -# directory to write output files -TC_RMW_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/tc_and_extra_tc/TCRMW_gonzalo - -[filename_templates] - -# template to use to find DECK files relative to TC_RMW_DECK_INPUT_DIR -TC_RMW_DECK_TEMPLATE = gonzalo08l.{init?fmt=%Y%m%d%H}.f00-24.trak.hwrf.atcfunix.06hr - -# template to use to find input files relative to TC_RMW_INPUT_DIR -TC_RMW_INPUT_TEMPLATE = gonzalo08l.subset.{init?fmt=%Y%m%d%H}.hwrfprs.core.0p02.f{lead?fmt=%3H}.grb2 - -# template to use write output files relative to TC_RMW_OUTPUT_DIR -TC_RMW_OUTPUT_TEMPLATE = tc_rmw_gonzal09l.{init?fmt=%Y%m%d%H}.nc diff --git a/parm/use_cases/model_applications/tc_and_extra_tc/UserScript_ASCII2NC_PointStat_fcstHAFS_obsFRD_NetCDF.conf b/parm/use_cases/model_applications/tc_and_extra_tc/UserScript_ASCII2NC_PointStat_fcstHAFS_obsFRD_NetCDF.conf index 9a8d5f10a3..409c3422ca 100644 --- a/parm/use_cases/model_applications/tc_and_extra_tc/UserScript_ASCII2NC_PointStat_fcstHAFS_obsFRD_NetCDF.conf +++ b/parm/use_cases/model_applications/tc_and_extra_tc/UserScript_ASCII2NC_PointStat_fcstHAFS_obsFRD_NetCDF.conf @@ -1,34 +1,29 @@ [config] -## Configuration-related settings such as the process list, begin and end times, etc. -PROCESS_LIST = UserScript(untar_drop_file), Ascii2nc, PointStat +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/tc_and_extra_tc/UserScript_ASCII2NC_PointStat_fcstHAFS_obsFRD_NetCDF.html -USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_PER_INIT_OR_VALID -USER_SCRIPT_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/dropsonde/obs -USER_SCRIPT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/tc_and_extra_tc/dropsonde/obs -USER_SCRIPT_COMMAND = {PARM_BASE}/use_cases/model_applications/tc_and_extra_tc/UserScript_ASCII2NC_PointStat_fcstHAFS_obsFRD_NetCDF/hrd_frd_sonde_find_tar.py {USER_SCRIPT_ARGUMENTS} +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide -ASCII2NC_INPUT_FORMAT = python -ASCII2NC_TIME_SUMMARY_FLAG = False -ASCII2NC_TIME_SUMMARY_RAW_DATA = False -ASCII2NC_TIME_SUMMARY_BEG = 000000 -ASCII2NC_TIME_SUMMARY_END = 235959 -ASCII2NC_TIME_SUMMARY_STEP = 300 -ASCII2NC_TIME_SUMMARY_WIDTH = 600 -ASCII2NC_TIME_SUMMARY_GRIB_CODES = 11, 204, 211 -ASCII2NC_TIME_SUMMARY_VAR_NAMES = -ASCII2NC_TIME_SUMMARY_TYPES = min, max, range, mean, stdev, median, p80 -ASCII2NC_TIME_SUMMARY_VALID_FREQ = 0 -ASCII2NC_TIME_SUMMARY_VALID_THRESH = 0.0 +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### -## LOOP_ORDER -## Options are: processes, times -## Looping by time- runs all items in the PROCESS_LIST for each -## initialization time and repeats until all times have been evaluated. -## Looping by processes- run each item in the PROCESS_LIST for all -## specified initialization times then repeat for the next item in the -## PROCESS_LIST. -LOOP_ORDER = processes +PROCESS_LIST = UserScript(untar_drop_file), Ascii2nc, PointStat + + +### +# Time Info +# LOOP_BY 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 +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### LOOP_BY = VALID VALID_TIME_FMT = %Y%m%d%H @@ -38,44 +33,91 @@ VALID_INCREMENT = 21600 LEAD_SEQ = 0,6,12,18 +USER_SCRIPT_RUNTIME_FREQ = RUN_ONCE_PER_INIT_OR_VALID -# Logging levels: DEBUG, INFO, WARN, ERROR (most verbose is DEBUG) -LOG_LEVEL = DEBUG +LOOP_ORDER = processes -## MET Configuration files for point_stat -# Message types, if all message types are to be returned, leave this empty, -# otherwise indicate the message types of interest. -POINT_STAT_MESSAGE_TYPE = ADPUPA -POINT_STAT_STATION_ID = +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### -# Verification Masking regions -# Indicate which grid and polygon masking region, if applicable -POINT_STAT_GRID = FULL +# UserScript -# List of full path to poly masking files. NOTE: Only short lists of poly -# files work (those that fit on one line), a long list will result in an -# environment variable that is too long, resulting in an error. For long -# lists of poly masking files (i.e. all the mask files in the NCEP_mask -# directory), define these in the MET point_stat configuration file. -POINT_STAT_POLY = +USER_SCRIPT_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/dropsonde/obs +USER_SCRIPT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/tc_and_extra_tc/dropsonde/obs + + +# ASCII2NC + +ASCII2NC_INPUT_TEMPLATE = "{PARM_BASE}/use_cases/model_applications/tc_and_extra_tc/UserScript_ASCII2NC_PointStat_fcstHAFS_obsFRD_NetCDF/hrd_frd_sonde_for_ascii2nc.py {USER_SCRIPT_OUTPUT_DIR}/{valid?fmt=%Y%m%d}" + +ASCII2NC_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/tc_and_extra_tc/dropsonde/ascii2nc +ASCII2NC_OUTPUT_TEMPLATE = drop{valid?fmt=%Y%m%d}.nc + +# PointStat + +FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/dropsonde +FCST_POINT_STAT_INPUT_TEMPLATE = hafs.{valid?fmt=%Y%m%d%H}/dorian05l.{init?fmt=%Y%m%d%H}.hafsprs.synoptic.TMP600-900.0p03.f{lead?fmt=%3H}.grb2 + +OBS_POINT_STAT_INPUT_DIR = {OUTPUT_BASE}/model_applications/tc_and_extra_tc/dropsonde/ascii2nc +OBS_POINT_STAT_INPUT_TEMPLATE = {ASCII2NC_OUTPUT_TEMPLATE} + +POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE}/{OBTYPE} -# For both pb2nc and point_stat, the obs_window dictionary: -OBS_WINDOW_BEGIN = -5400 -OBS_WINDOW_END = 5400 -# Model/fcst and obs name, e.g. GFS, NAM, GDAS, etc. +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + MODEL = HAFS OBTYPE = drop -# Variables and levels as specified in the field dictionary of the MET -# point_stat configuration file. Specify as FCST_VARn_NAME, FCST_VARn_LEVELS, -# (optional) FCST_VARn_OPTION - BOTH_VAR1_NAME = TMP BOTH_VAR1_LEVELS = P925-950, P850-800, P700-650 -POINT_STAT_CONFIG_FILE ={PARM_BASE}/met_config/PointStatConfig_wrapped +OBS_WINDOW_BEGIN = -5400 +OBS_WINDOW_END = 5400 + + +### +# UserScript Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#userscript +### + +USER_SCRIPT_ARGUMENTS = {USER_SCRIPT_INPUT_DIR} {valid?fmt=%Y%m%d} {USER_SCRIPT_OUTPUT_DIR} +USER_SCRIPT_COMMAND = {PARM_BASE}/use_cases/model_applications/tc_and_extra_tc/UserScript_ASCII2NC_PointStat_fcstHAFS_obsFRD_NetCDF/hrd_frd_sonde_find_tar.py {USER_SCRIPT_ARGUMENTS} + + +### +# ASCII2NC Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#ascii2nc +### + +ASCII2NC_INPUT_FORMAT = python +ASCII2NC_TIME_SUMMARY_FLAG = False +ASCII2NC_TIME_SUMMARY_RAW_DATA = False +ASCII2NC_TIME_SUMMARY_BEG = 000000 +ASCII2NC_TIME_SUMMARY_END = 235959 +ASCII2NC_TIME_SUMMARY_STEP = 300 +ASCII2NC_TIME_SUMMARY_WIDTH = 600 +ASCII2NC_TIME_SUMMARY_GRIB_CODES = 11, 204, 211 +ASCII2NC_TIME_SUMMARY_VAR_NAMES = +ASCII2NC_TIME_SUMMARY_TYPES = min, max, range, mean, stdev, median, p80 +ASCII2NC_TIME_SUMMARY_VALID_FREQ = 0 +ASCII2NC_TIME_SUMMARY_VALID_THRESH = 0.0 + + +### +# PointStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pointstat +### + +POINT_STAT_MESSAGE_TYPE = ADPUPA + +POINT_STAT_GRID = FULL POINT_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = NEAREST @@ -91,24 +133,4 @@ POINT_STAT_OUTPUT_FLAG_CNT = BOTH POINT_STAT_OUTPUT_FLAG_ECLV = BOTH POINT_STAT_OUTPUT_FLAG_MPR = BOTH -# Regrid to specified grid. Indicate NONE if no regridding, or the grid id -# (e.g. G212) POINT_STAT_REGRID_TO_GRID = NONE - -LOG_POINT_STAT_VERBOSITY=5 - -[dir] -TAR_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/dropsonde/obs -FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/tc_and_extra_tc/dropsonde -OBS_POINT_STAT_INPUT_DIR = {OUTPUT_BASE}/model_applications/tc_and_extra_tc/dropsonde/ascii2nc -ASCII2NC_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/tc_and_extra_tc/dropsonde/ascii2nc -POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE}/{OBTYPE} - -[filename_templates] - -USER_SCRIPT_ARGUMENTS = {USER_SCRIPT_INPUT_DIR} {valid?fmt=%Y%m%d} {USER_SCRIPT_OUTPUT_DIR} -ASCII2NC_OUTPUT_TEMPLATE = drop{valid?fmt=%Y%m%d}.nc -FCST_POINT_STAT_INPUT_TEMPLATE = hafs.{valid?fmt=%Y%m%d%H}/dorian05l.{init?fmt=%Y%m%d%H}.hafsprs.synoptic.TMP600-900.0p03.f{lead?fmt=%3H}.grb2 -OBS_POINT_STAT_INPUT_TEMPLATE = {ASCII2NC_OUTPUT_TEMPLATE} -ASCII2NC_INPUT_TEMPLATE = "{PARM_BASE}/use_cases/model_applications/tc_and_extra_tc/UserScript_ASCII2NC_PointStat_fcstHAFS_obsFRD_NetCDF/hrd_frd_sonde_for_ascii2nc.py {USER_SCRIPT_OUTPUT_DIR}/{valid?fmt=%Y%m%d}" -