From 15cb970b27ef60b9c9dcb9dfb5593f7545b8ac99 Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Thu, 9 Sep 2021 15:03:02 -0600 Subject: [PATCH 01/18] fixed bug when number of fcst and obs objects differ --- metplus/wrappers/extract_tiles_wrapper.py | 36 +++++++++++++++-------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/metplus/wrappers/extract_tiles_wrapper.py b/metplus/wrappers/extract_tiles_wrapper.py index 13f9d664c7..bc863dfb04 100755 --- a/metplus/wrappers/extract_tiles_wrapper.py +++ b/metplus/wrappers/extract_tiles_wrapper.py @@ -300,26 +300,38 @@ def use_mtd_input(self, object_dict, idx_dict): # loop over corresponding CF### and CO### lines for index in indices: + fcst_data_list = self.get_cluster_data(object_dict[f'CF{index}'], + idx_dict) + obs_data_list = self.get_cluster_data(object_dict[f'CO{index}'], + idx_dict) - fcst_lines = object_dict[f'CF{index}'] - obs_lines = object_dict[f'CO{index}'] track_data = {} - for fcst_line, obs_line in zip(fcst_lines, obs_lines): - track_data['FCST'] = self.get_data_from_track_line(idx_dict, - fcst_line) - track_data['OBS'] = self.get_data_from_track_line(idx_dict, - obs_line) - - # only use lines where OBJECT_ID == OBJECT_CAT - if (not self.object_id_equals_cat(track_data['FCST']) or - not self.object_id_equals_cat(track_data['OBS'])): - continue + for fcst_data, obs_data in zip(fcst_data_list, obs_data_list): + if fcst_data.get('FCST_VALID') != obs_data.get('FCST_VALID'): + self.log_error("Time mismatch in valid time between " + f"CF{index} and CO{index}: " + f"({fcst_data.get('FCST_VALID')} vs " + f"{obs_data.get('FCST_VALID')}). " + "Wrapper assumes fcst and obs cluster data " + "are in the same order.") + return + + track_data['FCST'] = fcst_data + track_data['OBS'] = obs_data time_info = ( self.set_time_info_from_track_data(track_data['FCST']) ) self.call_regrid_data_plane(time_info, track_data, 'MTD') + def get_cluster_data(self, lines, idx_dict): + cluster_data = [] + for line in lines: + line_data = self.get_data_from_track_line(idx_dict, line) + if self.object_id_equals_cat(line_data): + cluster_data.append(line_data) + return cluster_data + @staticmethod def object_id_equals_cat(track_line): return track_line['OBJECT_CAT'] == track_line['OBJECT_ID'] From 7d54cb3cf84abeb177fc49f04bc6785a35a9a1af Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Fri, 10 Sep 2021 13:40:53 -0600 Subject: [PATCH 02/18] Conf file for MTD Feature Relative use case. --- ...S_obsGFS_FeatureRelative_SeriesByLead.conf | 208 ++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf 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 new file mode 100644 index 0000000000..f4fd5b988a --- /dev/null +++ b/parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf @@ -0,0 +1,208 @@ +# +# CONFIGURATION +# +[config] + +LOG_MTD_VERBOSITY = 10 + +# Loop over each process in the process list (set in PROCESS_LIST) for all times in the time window of +# interest. +LOOP_ORDER = processes +PROCESS_LIST = MTD, ExtractTiles, SeriesAnalysis + +# The init time begin and end times, increment +LOOP_BY = INIT +INIT_TIME_FMT = %Y%m%d%H +INIT_BEG = 2021071200 +INIT_END = 2021071318 + +# 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 second +LEAD_SEQ = begin_end_incr(0,198,6) + +# set to True if forecast data is probabilistic +FCST_IS_PROB = False + +# True if probabilistic information is in the GRIB Product Definition Section +FCST_PROB_IN_GRIB_PDS = False + +# list of variables to compare +#FCST_VAR1_NAME = MSLET +#FCST_VAR1_LEVELS = L0 +#FCST_VAR1_NAME = UGRD +#FCST_VAR1_LEVELS = L10 +FCST_VAR1_NAME = PWAT +FCST_VAR1_LEVELS = L0 +#FCST_VAR1_NAME = TMP +#FCST_VAR1_LEVELS = Z2 +#FCST_VAR1_NAME = TCDC +#FCST_VAR1_LEVELS = P850 + +#OBS_VAR1_NAME = MSLET +#OBS_VAR1_LEVELS = L0 +#OBS_VAR1_NAME = UGRD +#OBS_VAR1_LEVELS = L10 +OBS_VAR1_NAME = PWAT +OBS_VAR1_LEVELS = L0 +#OBS_VAR1_NAME = TMP +#OBS_VAR1_LEVELS = Z2 +#OBS_VAR1_NAME = TCDC +#OBS_VAR1_LEVELS = P850 + +# description of data to be processed +# used in output file path +MODEL = GFS +OBTYPE = GFS_ANLY + +####### +# MTD Configurations +####### +MTD_DESC = NA + +# if true, only process a single data set with MTD +MTD_SINGLE_RUN = False + +# forecast convolution radius list +FCST_MTD_CONV_RADIUS = 0 + +# forecast convolution threshold list +#FCST_MTD_CONV_THRESH = lt99600.0 +#FCST_MTD_CONV_THRESH = gt5.0 +FCST_MTD_CONV_THRESH = gt60.0 +#FCST_MTD_CONV_THRESH = gt303.15 +#FCST_MTD_CONV_THRESH = gt102400.0 +#FCST_MTD_CONV_THRESH = gt0.95 + +# observation convolution radius list +OBS_MTD_CONV_RADIUS = 0 + +# observation convolution threshold list +#OBS_MTD_CONV_THRESH = lt99600.0 +#OBS_MTD_CONV_THRESH = gt5.0 +OBS_MTD_CONV_THRESH = gt60.0 +#OBS_MTD_CONV_THRESH = gt303.15 +#OBS_MTD_CONV_THRESH = gt102400.0 +#OBS_MTD_CONV_THRESH = gt0.95 + +# 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 + +# Minimum volume +MTD_MIN_VOLUME = 2000 + +# output prefix to add to output filenames +MTD_OUTPUT_PREFIX = {MODEL}_{CURRENT_FCST_NAME}_vs_{OBTYPE}_{CURRENT_OBS_NAME}_{CURRENT_FCST_LEVEL} + +# input and output data directories for each application in PROCESS_LIST +FCST_MTD_INPUT_DIR = {INPUT_BASE} +OBS_MTD_INPUT_DIR = {FCST_MTD_INPUT_DIR} +MTD_OUTPUT_DIR = {OUTPUT_BASE}/mtd +FCST_MTD_INPUT_TEMPLATE= {init?fmt=%Y%m%d%H}/gfs.t{init?fmt=%H}z.pgrb2.1p00.f{lead?fmt=%HHH} +OBS_MTD_INPUT_TEMPLATE = {valid?fmt=%Y%m%d%H}/gfs.t{valid?fmt=%H}z.pgrb2.1p00.f000 +MTD_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d%H} + +####### +# ExtractTiles Configurations +####### + +# Constants used in creating the tile grid, used by extract tiles +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 + +EXTRACT_TILES_MTD_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/mtd_{MODEL}_{FCST_VAR1_NAME}_vs_{OBTYPE}_{OBS_VAR1_NAME}_{OBS_VAR1_LEVELS}_{init?fmt=%Y%m%d_%H%M%S}V_2d.txt +FCST_EXTRACT_TILES_INPUT_TEMPLATE = {FCST_MTD_INPUT_TEMPLATE} +OBS_EXTRACT_TILES_INPUT_TEMPLATE = {OBS_MTD_INPUT_TEMPLATE} + +FCST_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/FCST_TILE_F{lead?fmt=%3H}_{MODEL}_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc +OBS_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/OBS_TILE_F{lead?fmt=%3H}_{MODEL}_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.nc + +EXTRACT_TILES_MTD_INPUT_DIR = {OUTPUT_BASE}/mtd +FCST_EXTRACT_TILES_INPUT_DIR = {FCST_MTD_INPUT_DIR} +OBS_EXTRACT_TILES_INPUT_DIR = {FCST_MTD_INPUT_DIR} +EXTRACT_TILES_OUTPUT_DIR = {OUTPUT_BASE}/extract_tiles + +####### +# SeriesAnalysis Configurations +####### + +# 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 = OBS +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} + +FCST_SERIES_ANALYSIS_INPUT_TEMPLATE = {FCST_EXTRACT_TILES_OUTPUT_TEMPLATE} +OBS_SERIES_ANALYSIS_INPUT_TEMPLATE = {OBS_EXTRACT_TILES_OUTPUT_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 + +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 From faed3a423abf8f28976dbd0975972bd9951ce76f Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Fri, 10 Sep 2021 14:38:12 -0600 Subject: [PATCH 03/18] Reduces lead time sequence and INIT_END time to better align with amount of data available. --- ...sAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 f4fd5b988a..cc534e5574 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 @@ -14,12 +14,12 @@ PROCESS_LIST = MTD, ExtractTiles, SeriesAnalysis LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H INIT_BEG = 2021071200 -INIT_END = 2021071318 +INIT_END = 2021071212 # 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 second -LEAD_SEQ = begin_end_incr(0,198,6) +LEAD_SEQ = begin_end_incr(0,30,6) # set to True if forecast data is probabilistic FCST_IS_PROB = False From 7b74037d9eca3a7c33b8f5a86e1852077aa326a3 Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Fri, 10 Sep 2021 15:17:16 -0600 Subject: [PATCH 04/18] Adds documentation file for this use case. --- ...GFS_obsGFS_FeatureRelative_SeriesByLead.py | 225 ++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py diff --git a/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py b/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py new file mode 100644 index 0000000000..38caa7c91c --- /dev/null +++ b/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py @@ -0,0 +1,225 @@ +""" +Multi_Tool (MTD): Feature Relative by Lead (with lead groupings) +================================================================================================== + +model_applicaitons/medium_range/ +MTD_SeriesAnalysis_fcstGFS +_obsGFS_FeatureRelative +_SeriesByLead.conf + +""" + +############################################################################## +# Scientific Objective +# -------------------- +# +# Demonstrate the capability in the Feature Relative use case but using output +# from the MET MODE Time Domain (MTD) tool. +# + +############################################################################## +# Datasets +# -------- +# +# Relevant information about the datasets that would be beneficial include: +# +# * MODE Time Domain Forecast dataset: GFS +# * Series-Analysis Forecast dataset: GFS +# * MODE Time Domain Observation dataset: GFS Analysis +# * Series-Analysis Observation dataset: GFS Analysis +# + +############################################################################## +# METplus Components +# ------------------ +# +# This use case first runs MODE Time Domain and ExtractTiles wrappers to +# generate tiles of data centered on objects defined using MTD. The MET +# regrid-dataplane tool is used to regrid the data (GRIB1 or GRIB2 into netCDF). +# Next, a series analysis by lead time is performed on the results and plots +# (.ps and .png) are generated for all variable-level-stat combinations from +# the requested variables, levels, and requested statistics. The final results +# are aggregated into forecast hour groupings as specified by the start and end +# increment in the METplus configuration file, as well as labels to identify each +# forecast hour grouping. +# + +############################################################################## +# METplus Workflow +# ---------------- +# +# The following tools are used for each run time: +# +# MTD > RegridDataPlane (via ExtractTiles) > SeriesAnalysis +# +# This example loops by forecast/lead time (with begin, end, and increment as specified in the METplus +# MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf file). The following list +# of model initialization and forecast leads are processed in this use case: +# +# | **Init:** 20210712_00Z +# | **Forecast lead:** 6, 12, 18, 24, 30 +# | +# +# | **Init:** 20210712_06Z +# | **Forecast lead:** 6, 12, 18, 24, 30 +# | +# +# | **Init:** 20210712_12Z +# | **Forecast lead:** 6, 12, 18, 24, 30 +# | +# + +############################################################################## +# METplus Configuration +# --------------------- +# +# METplus first loads all of the configuration files found in parm/metplus_config, +# then it loads any configuration files passed to METplus via the command line +# with the -c option, i.e. -c parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf +# +# .. highlight:: bash +# .. literalinclude:: ../../../../parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf + +############################################################################## +# MET Configuration +# --------------------- +# +# METplus sets environment variables based on user settings in the METplus configuration file. +# See :ref:`How METplus controls MET config file settings` for more details. +# +# **YOU SHOULD NOT SET ANY OF THESE ENVIRONMENT VARIABLES YOURSELF! THEY WILL BE OVERWRITTEN BY METPLUS WHEN IT CALLS THE MET TOOLS!** +# +# If there is a setting in the MET configuration file that is currently not supported by METplus you'd like to control, please refer to: +# :ref:`Overriding Unsupported MET config file settings` +# +# **MTD_wrapped** +# +# .. note:: See the :ref:`MTD MET Configuration` section of the User's Guide for more information on the environment variables used in the file below: +# +# .. highlight:: bash +# .. literalinclude:: ../../../../parm/met_config/MTD_wrapped +# +# **SeriesAnalysisConfig_wrapped** +# +# .. note:: See the :ref:`SeriesAnalysis MET Configuration` section of the User's Guide for more information on the environment variables used in the file below: +# +# .. highlight:: bash +# .. literalinclude:: ../../../../parm/met_config/SeriesAnalysisConfig_wrapped + +############################################################################## +# Running METplus +# --------------- +# +# This use case can be run two ways: +# +# 1) Passing in MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf, then a user-specific system configuration file:: +# +# run_metplus.py -c /path/to/METplus/parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf +# -c /path/to/user_system.conf +# +# 2) Modifying the configurations in parm/metplus_config, then passing in MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf:: +# +# run_metplus.py -c /path/to/METplus/parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf +# +# The former method is recommended. Whether you add them to a user-specific configuration file or modify the metplus_config files, the following variables must be set correctly: +# +# * **INPUT_BASE** - Path to directory where sample data tarballs are unpacked (See Datasets section to obtain tarballs). This is not required to run METplus, but it is required to run the examples in parm/use_cases +# * **OUTPUT_BASE** - Path where METplus output will be written. This must be in a location where you have write permissions +# * **MET_INSTALL_DIR** - Path to location where MET is installed locally +# +# and for the [exe] section, you will need to define the location of +# NON-MET executables. If the executable is in the user's path, METplus will find it from +# the name. If the executable is not in the path, specify the full +# path to the executable here (i.e. CONVERT = /usr/bin/convert) The following executables are required +# for performing series analysis use cases: +# +# If the executables are in the path: +# +# * **CONVERT = convert** +# +# **NOTE:** All of these executable items must be located under the [exe] section. +# +# +# If the executables are not in the path, they need to be defined: +# +# * **CONVERT = /path/to/convert** +# +# **NOTE:** All of these executable items must be located under the [exe] section. +# Example User Configuration File:: +# +# [dir] +# INPUT_BASE = /path/to/sample/input/data +# OUTPUT_BASE = /path/to/output/dir +# MET_INSTALL_DIR = /path/to/met-X.Y +# +# [exe] +# CONVERT = /path/to/convert +# +# **NOTE:** The INPUT_BASE, OUTPUT_BASE, and MET_INSTALL_DIR must be located under the [dir] section, while the RM, CUT, TR, NCAP2, CONVERT, and NCDUMP must be located under the [exe] section. + +############################################################################## +# Expected Output +# --------------- +# +# A successful run will output the following both to the screen and to the logfile:: +# +# INFO: METplus has successfully finished running. +# +# Refer to the value set for **OUTPUT_BASE** to find where the output data was generated. +# Output for this use case will be found in series_analysis_lead, relative to the **OUTPUT_BASE**, and in the following directories (relative to **OUTPUT_BASE**): +# +# * series_FHHH +# * series_animate +# +# | The *series_FHHH* subdirectory will contain files that have the following format: +# +# ANLY_FILES_Fhhh_to_FHHH +# +# FCST_ASCII_FILES_Fhhh_to_FHHH +# +# series___.png +# +# series___.ps +# +# series___.nc +# +# Where: +# +# **hhh** is the starting forecast hour/lead time in hours +# +# **HHH** is the ending forecast hour/lead time in hours +# +# **varname** is the variable of interest, as specified in the METplus series_by_lead_all_fhrs config file +# +# **level** is the level of interest, as specified in the METplus series_by_lead_all_fhrs config file +# +# **stat** is the statistic of interest, as specified in the METplus series_by_lead_all_fhrs config file. +# +# | The series_animate directory contains the animations of the series analysis in .gif format for all variable, level, and statistics combinations: +# +# series_animate___.gif + +############################################################################## +# Keywords +# -------- +# +# .. note:: +# +# * MediumRangeAppUseCase +# * TCPairsToolUseCase +# * SeriesByLeadUseCase +# * MTDToolUseCase +# * RegridDataPlaneToolUseCase +# * SeriesAnalysisUseCase +# * GRIB2FileUseCase +# * FeatureRelativeUseCase +# * SBUOrgUseCase +# * DiagnosticsUseCase +# * RuntimeFreqUseCase +# +# Navigate to the :ref:`quick-search` page to discover other similar use cases. +# +# +# +# sphinx_gallery_thumbnail_path = '_static/medium_range-TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.png' +# From f0d46e7e22154f73c172d32b3ffe9edd98809048 Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Fri, 10 Sep 2021 15:45:12 -0600 Subject: [PATCH 05/18] Corrects name of MTD wrapped MET config file. --- ...iesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py b/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py index 38caa7c91c..4bb57e32ac 100644 --- a/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py +++ b/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py @@ -92,12 +92,12 @@ # If there is a setting in the MET configuration file that is currently not supported by METplus you'd like to control, please refer to: # :ref:`Overriding Unsupported MET config file settings` # -# **MTD_wrapped** +# **MTDConfig_wrapped** # # .. note:: See the :ref:`MTD MET Configuration` section of the User's Guide for more information on the environment variables used in the file below: # # .. highlight:: bash -# .. literalinclude:: ../../../../parm/met_config/MTD_wrapped +# .. literalinclude:: ../../../../parm/met_config/MTDConfig_wrapped # # **SeriesAnalysisConfig_wrapped** # From ea2925d51d8c53c6159c99814f2f470eff05b6a6 Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Fri, 10 Sep 2021 16:15:36 -0600 Subject: [PATCH 06/18] Adds use case to testing suite. --- .github/parm/use_case_groups.json | 5 +++++ internal_tests/use_cases/all_use_cases.txt | 1 + 2 files changed, 6 insertions(+) diff --git a/.github/parm/use_case_groups.json b/.github/parm/use_case_groups.json index 689f7186fb..48e0922b29 100644 --- a/.github/parm/use_case_groups.json +++ b/.github/parm/use_case_groups.json @@ -79,6 +79,11 @@ "index_list": "7", "run": false }, + { + "category": "medium_range", + "index_list": "8", + "run": true + }, { "category": "precipitation", "index_list": "0", diff --git a/internal_tests/use_cases/all_use_cases.txt b/internal_tests/use_cases/all_use_cases.txt index c8e3aa8fcc..c887e6b527 100644 --- a/internal_tests/use_cases/all_use_cases.txt +++ b/internal_tests/use_cases/all_use_cases.txt @@ -102,6 +102,7 @@ Category: medium_range 5::UserScript_fcstGEFS_Difficulty_Index::model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index.conf:: metplotpy_env 6::model_applications/medium_range/PointStat_fcstGFS_obsGDAS_UpperAir_MultiField_PrepBufr.conf 7::TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics:: model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.conf:: cfgrib_env,py_embed +8::model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf From 381d1de525031d83d4635819125f445fc47b97aa Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Mon, 13 Sep 2021 10:15:00 -0600 Subject: [PATCH 07/18] Adds netcdf4_env to the use case since extract_tiles_wrapper needs it. --- internal_tests/use_cases/all_use_cases.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal_tests/use_cases/all_use_cases.txt b/internal_tests/use_cases/all_use_cases.txt index c887e6b527..91e5ebf979 100644 --- a/internal_tests/use_cases/all_use_cases.txt +++ b/internal_tests/use_cases/all_use_cases.txt @@ -102,7 +102,7 @@ Category: medium_range 5::UserScript_fcstGEFS_Difficulty_Index::model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index.conf:: metplotpy_env 6::model_applications/medium_range/PointStat_fcstGFS_obsGDAS_UpperAir_MultiField_PrepBufr.conf 7::TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics:: model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.conf:: cfgrib_env,py_embed -8::model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf +8::model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf:: netcdf4_env From 9f2ca730143d744504d5885b620daab8b00477e7 Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Mon, 13 Sep 2021 11:28:55 -0600 Subject: [PATCH 08/18] Adds title to use case in the testing file. --- internal_tests/use_cases/all_use_cases.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal_tests/use_cases/all_use_cases.txt b/internal_tests/use_cases/all_use_cases.txt index 91e5ebf979..11e961f3a2 100644 --- a/internal_tests/use_cases/all_use_cases.txt +++ b/internal_tests/use_cases/all_use_cases.txt @@ -102,7 +102,7 @@ Category: medium_range 5::UserScript_fcstGEFS_Difficulty_Index::model_applications/medium_range/UserScript_fcstGEFS_Difficulty_Index.conf:: metplotpy_env 6::model_applications/medium_range/PointStat_fcstGFS_obsGDAS_UpperAir_MultiField_PrepBufr.conf 7::TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics:: model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.conf:: cfgrib_env,py_embed -8::model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf:: netcdf4_env +8::MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead::model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf:: netcdf4_env From af540f20dc7dc54367cd1e14e799ef47b1660a93 Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Mon, 13 Sep 2021 12:41:51 -0600 Subject: [PATCH 09/18] Fixed input directory path. --- ...iesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 cc534e5574..23d34dbca6 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 @@ -96,7 +96,7 @@ MTD_MIN_VOLUME = 2000 MTD_OUTPUT_PREFIX = {MODEL}_{CURRENT_FCST_NAME}_vs_{OBTYPE}_{CURRENT_OBS_NAME}_{CURRENT_FCST_LEVEL} # input and output data directories for each application in PROCESS_LIST -FCST_MTD_INPUT_DIR = {INPUT_BASE} +FCST_MTD_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range OBS_MTD_INPUT_DIR = {FCST_MTD_INPUT_DIR} MTD_OUTPUT_DIR = {OUTPUT_BASE}/mtd FCST_MTD_INPUT_TEMPLATE= {init?fmt=%Y%m%d%H}/gfs.t{init?fmt=%H}z.pgrb2.1p00.f{lead?fmt=%HHH} From 00599b136bdb7b094eed2b15c944deebe049ac73 Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Mon, 13 Sep 2021 14:53:14 -0600 Subject: [PATCH 10/18] Adds use case name to input path. --- ...iesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 23d34dbca6..560c3d45b9 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 @@ -96,7 +96,7 @@ MTD_MIN_VOLUME = 2000 MTD_OUTPUT_PREFIX = {MODEL}_{CURRENT_FCST_NAME}_vs_{OBTYPE}_{CURRENT_OBS_NAME}_{CURRENT_FCST_LEVEL} # input and output data directories for each application in PROCESS_LIST -FCST_MTD_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range +FCST_MTD_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead OBS_MTD_INPUT_DIR = {FCST_MTD_INPUT_DIR} MTD_OUTPUT_DIR = {OUTPUT_BASE}/mtd FCST_MTD_INPUT_TEMPLATE= {init?fmt=%Y%m%d%H}/gfs.t{init?fmt=%H}z.pgrb2.1p00.f{lead?fmt=%HHH} From 1f131ea78eb8e9af25086b62e94151050583bd0b Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Mon, 13 Sep 2021 15:40:43 -0600 Subject: [PATCH 11/18] Changes METPLUS_TARFILE_TO_ADD_DATA to METPLUS_EXISTING_DATA_TARFILE. --- docs/Contributors_Guide/add_use_case.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Contributors_Guide/add_use_case.rst b/docs/Contributors_Guide/add_use_case.rst index 24a452e124..aa645eeaa6 100644 --- a/docs/Contributors_Guide/add_use_case.rst +++ b/docs/Contributors_Guide/add_use_case.rst @@ -531,8 +531,8 @@ Check if the category tarfile exists already Check the symbolic link in the develop directory to determine latest tarball:: - export METPLUS_TARFILE_TO_ADD_DATA=`ls -l ${METPLUS_DATA_TARFILE_DIR}/develop/sample_data-${METPLUS_USE_CASE_CATEGORY}.tgz | sed 's|.*->||g'` - echo ${METPLUS_TARFILE_TO_ADD_DATA} + export METPLUS_EXISTING_DATA_TARFILE=`ls -l ${METPLUS_DATA_TARFILE_DIR}/develop/sample_data-${METPLUS_USE_CASE_CATEGORY}.tgz | sed 's|.*->||g'` + echo ${METPLUS_EXISTING_DATA_TARFILE} **If the echo command does not contain a full path to sample data tarfile, then the sample data tarball may not exist yet for this category.** Double check @@ -547,7 +547,7 @@ Add contents of existing tarfile to feature branch directory (if applicable) the feature branch directory. If no tarfile exists yet, you can skip this step:: - tar zxf ${METPLUS_TARFILE_TO_ADD_DATA} -C ${METPLUS_DATA_TARFILE_DIR}/${METPLUS_FEATURE_BRANCH} + tar zxf ${METPLUS_EXISTING_DATA_TARFILE} -C ${METPLUS_DATA_TARFILE_DIR}/${METPLUS_FEATURE_BRANCH} Create the new tarfile ^^^^^^^^^^^^^^^^^^^^^^ From c2abd716334a2b78378ba6a66621efe74f3e4aa9 Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Tue, 14 Sep 2021 14:25:58 -0600 Subject: [PATCH 12/18] Removes unused conf items from developing use case. --- ...S_obsGFS_FeatureRelative_SeriesByLead.conf | 27 ------------------- 1 file changed, 27 deletions(-) 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 560c3d45b9..6c1e597c24 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 @@ -28,27 +28,10 @@ FCST_IS_PROB = False FCST_PROB_IN_GRIB_PDS = False # list of variables to compare -#FCST_VAR1_NAME = MSLET -#FCST_VAR1_LEVELS = L0 -#FCST_VAR1_NAME = UGRD -#FCST_VAR1_LEVELS = L10 FCST_VAR1_NAME = PWAT FCST_VAR1_LEVELS = L0 -#FCST_VAR1_NAME = TMP -#FCST_VAR1_LEVELS = Z2 -#FCST_VAR1_NAME = TCDC -#FCST_VAR1_LEVELS = P850 - -#OBS_VAR1_NAME = MSLET -#OBS_VAR1_LEVELS = L0 -#OBS_VAR1_NAME = UGRD -#OBS_VAR1_LEVELS = L10 OBS_VAR1_NAME = PWAT OBS_VAR1_LEVELS = L0 -#OBS_VAR1_NAME = TMP -#OBS_VAR1_LEVELS = Z2 -#OBS_VAR1_NAME = TCDC -#OBS_VAR1_LEVELS = P850 # description of data to be processed # used in output file path @@ -67,23 +50,13 @@ MTD_SINGLE_RUN = False FCST_MTD_CONV_RADIUS = 0 # forecast convolution threshold list -#FCST_MTD_CONV_THRESH = lt99600.0 -#FCST_MTD_CONV_THRESH = gt5.0 FCST_MTD_CONV_THRESH = gt60.0 -#FCST_MTD_CONV_THRESH = gt303.15 -#FCST_MTD_CONV_THRESH = gt102400.0 -#FCST_MTD_CONV_THRESH = gt0.95 # observation convolution radius list OBS_MTD_CONV_RADIUS = 0 # observation convolution threshold list -#OBS_MTD_CONV_THRESH = lt99600.0 -#OBS_MTD_CONV_THRESH = gt5.0 OBS_MTD_CONV_THRESH = gt60.0 -#OBS_MTD_CONV_THRESH = gt303.15 -#OBS_MTD_CONV_THRESH = gt102400.0 -#OBS_MTD_CONV_THRESH = gt0.95 # grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary # See MET User's Guide for more information From 5014394b45755d5c7bafcad7fc29ec06a168f00f Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Tue, 14 Sep 2021 20:28:20 -0600 Subject: [PATCH 13/18] Adds new use case gallery image. --- ...GFS_obsGFS_FeatureRelative_SeriesByLead.png | Bin 0 -> 155953 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/_static/medium_range-MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.png diff --git a/docs/_static/medium_range-MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.png b/docs/_static/medium_range-MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.png new file mode 100644 index 0000000000000000000000000000000000000000..5cfd31edcff07e47c718f97d6e644df136793942 GIT binary patch literal 155953 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 literal 0 HcmV?d00001 From eafcb79e17fcc0361e124f4a7d8d69c2afc9ba01 Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Tue, 14 Sep 2021 20:28:49 -0600 Subject: [PATCH 14/18] Adds correct use case gallery image name. --- ...eriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py b/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py index 4bb57e32ac..4034a51840 100644 --- a/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py +++ b/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py @@ -221,5 +221,5 @@ # # # -# sphinx_gallery_thumbnail_path = '_static/medium_range-TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.png' +# sphinx_gallery_thumbnail_path = '_static/medium_range-MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.png' # From 6142905ee4a877d5efe502f254e86e575169ac37 Mon Sep 17 00:00:00 2001 From: Daniel Adriaansen Date: Wed, 15 Sep 2021 09:43:39 -0600 Subject: [PATCH 15/18] Updates expected output files section to be consistent with output. --- ...s_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py b/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py index 4034a51840..4ce3a991e0 100644 --- a/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py +++ b/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py @@ -166,22 +166,23 @@ # INFO: METplus has successfully finished running. # # Refer to the value set for **OUTPUT_BASE** to find where the output data was generated. -# Output for this use case will be found in series_analysis_lead, relative to the **OUTPUT_BASE**, and in the following directories (relative to **OUTPUT_BASE**): +# Output for this use case will be found in series_analysis_lead directory relative to the **OUTPUT_BASE**, +# and in the following directories (relative to **OUTPUT_BASE**): # # * series_FHHH # * series_animate # # | The *series_FHHH* subdirectory will contain files that have the following format: # -# ANLY_FILES_Fhhh_to_FHHH +# OBS_FILES_FHHH # -# FCST_ASCII_FILES_Fhhh_to_FHHH +# FCST_FILES_FHHH # -# series___.png +# series_Fhhh_to_FHHH___.png # -# series___.ps +# series_Fhhh_to_FHHH___.ps # -# series___.nc +# series_Fhhh_to_FHHH___.nc # # Where: # From 6bf7276f146df07449d34cebc509097a551647e0 Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Wed, 29 Sep 2021 14:56:48 -0600 Subject: [PATCH 16/18] changed new use case to not run for every push --- .github/parm/use_case_groups.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/parm/use_case_groups.json b/.github/parm/use_case_groups.json index 48e0922b29..ef1af905df 100644 --- a/.github/parm/use_case_groups.json +++ b/.github/parm/use_case_groups.json @@ -82,7 +82,7 @@ { "category": "medium_range", "index_list": "8", - "run": true + "run": false }, { "category": "precipitation", From b5365ae0a35eec6c66232a132c99c47689f9d8d6 Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Thu, 30 Sep 2021 09:06:26 -0600 Subject: [PATCH 17/18] rearranged variables for readability, removed commented out variables --- ...S_obsGFS_FeatureRelative_SeriesByLead.conf | 162 ++++++------------ 1 file changed, 56 insertions(+), 106 deletions(-) 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 6c1e597c24..3f5b9617fc 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,181 +1,131 @@ -# -# CONFIGURATION -# [config] -LOG_MTD_VERBOSITY = 10 - -# Loop over each process in the process list (set in PROCESS_LIST) for all times in the time window of -# interest. -LOOP_ORDER = processes PROCESS_LIST = MTD, ExtractTiles, SeriesAnalysis -# The init time begin and end times, increment +### +# Time Info +### + LOOP_BY = INIT INIT_TIME_FMT = %Y%m%d%H INIT_BEG = 2021071200 INIT_END = 2021071212 +INIT_INCREMENT = 6H -# 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 second LEAD_SEQ = begin_end_incr(0,30,6) -# set to True if forecast data is probabilistic -FCST_IS_PROB = False +LOOP_ORDER = processes + +### +# Field Info +### -# True if probabilistic information is in the GRIB Product Definition Section -FCST_PROB_IN_GRIB_PDS = False +MODEL = GFS +OBTYPE = GFS_ANLY + +FCST_IS_PROB = False -# list of variables to compare FCST_VAR1_NAME = PWAT FCST_VAR1_LEVELS = L0 + OBS_VAR1_NAME = PWAT OBS_VAR1_LEVELS = L0 -# description of data to be processed -# used in output file path -MODEL = GFS -OBTYPE = GFS_ANLY +### +# File I/O +### + +FCST_MTD_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead +FCST_MTD_INPUT_TEMPLATE= {init?fmt=%Y%m%d%H}/gfs.t{init?fmt=%H}z.pgrb2.1p00.f{lead?fmt=%HHH} + +OBS_MTD_INPUT_DIR = {FCST_MTD_INPUT_DIR} +OBS_MTD_INPUT_TEMPLATE = {valid?fmt=%Y%m%d%H}/gfs.t{valid?fmt=%H}z.pgrb2.1p00.f000 + +MTD_OUTPUT_DIR = {OUTPUT_BASE}/mtd +MTD_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d%H} + + +EXTRACT_TILES_SKIP_IF_OUTPUT_EXISTS = no + +EXTRACT_TILES_MTD_INPUT_DIR = {OUTPUT_BASE}/mtd +EXTRACT_TILES_MTD_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/mtd_{MODEL}_{FCST_VAR1_NAME}_vs_{OBTYPE}_{OBS_VAR1_NAME}_{OBS_VAR1_LEVELS}_{init?fmt=%Y%m%d_%H%M%S}V_2d.txt + +FCST_EXTRACT_TILES_INPUT_DIR = {FCST_MTD_INPUT_DIR} +FCST_EXTRACT_TILES_INPUT_TEMPLATE = {FCST_MTD_INPUT_TEMPLATE} + +OBS_EXTRACT_TILES_INPUT_DIR = {FCST_MTD_INPUT_DIR} +OBS_EXTRACT_TILES_INPUT_TEMPLATE = {OBS_MTD_INPUT_TEMPLATE} + +EXTRACT_TILES_OUTPUT_DIR = {OUTPUT_BASE}/extract_tiles +FCST_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/FCST_TILE_F{lead?fmt=%3H}_{MODEL}_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc +OBS_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/OBS_TILE_F{lead?fmt=%3H}_{MODEL}_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.nc + + +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_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 ####### MTD_DESC = NA -# if true, only process a single data set with MTD MTD_SINGLE_RUN = False -# forecast convolution radius list FCST_MTD_CONV_RADIUS = 0 - -# forecast convolution threshold list FCST_MTD_CONV_THRESH = gt60.0 -# observation convolution radius list OBS_MTD_CONV_RADIUS = 0 - -# observation convolution threshold list OBS_MTD_CONV_THRESH = gt60.0 -# 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 -# Minimum volume MTD_MIN_VOLUME = 2000 -# output prefix to add to output filenames MTD_OUTPUT_PREFIX = {MODEL}_{CURRENT_FCST_NAME}_vs_{OBTYPE}_{CURRENT_OBS_NAME}_{CURRENT_FCST_LEVEL} -# input and output data directories for each application in PROCESS_LIST -FCST_MTD_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead -OBS_MTD_INPUT_DIR = {FCST_MTD_INPUT_DIR} -MTD_OUTPUT_DIR = {OUTPUT_BASE}/mtd -FCST_MTD_INPUT_TEMPLATE= {init?fmt=%Y%m%d%H}/gfs.t{init?fmt=%H}z.pgrb2.1p00.f{lead?fmt=%HHH} -OBS_MTD_INPUT_TEMPLATE = {valid?fmt=%Y%m%d%H}/gfs.t{valid?fmt=%H}z.pgrb2.1p00.f000 -MTD_OUTPUT_TEMPLATE = {valid?fmt=%Y%m%d%H} - ####### # ExtractTiles Configurations ####### -# Constants used in creating the tile grid, used by extract tiles 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 - -EXTRACT_TILES_MTD_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/mtd_{MODEL}_{FCST_VAR1_NAME}_vs_{OBTYPE}_{OBS_VAR1_NAME}_{OBS_VAR1_LEVELS}_{init?fmt=%Y%m%d_%H%M%S}V_2d.txt -FCST_EXTRACT_TILES_INPUT_TEMPLATE = {FCST_MTD_INPUT_TEMPLATE} -OBS_EXTRACT_TILES_INPUT_TEMPLATE = {OBS_MTD_INPUT_TEMPLATE} - -FCST_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/FCST_TILE_F{lead?fmt=%3H}_{MODEL}_{init?fmt=%Y%m%d}_{init?fmt=%H}00_{lead?fmt=%3H}.nc -OBS_EXTRACT_TILES_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d_%H}/OBS_TILE_F{lead?fmt=%3H}_{MODEL}_{valid?fmt=%Y%m%d}_{valid?fmt=%H}00_000.nc - -EXTRACT_TILES_MTD_INPUT_DIR = {OUTPUT_BASE}/mtd -FCST_EXTRACT_TILES_INPUT_DIR = {FCST_MTD_INPUT_DIR} -OBS_EXTRACT_TILES_INPUT_DIR = {FCST_MTD_INPUT_DIR} -EXTRACT_TILES_OUTPUT_DIR = {OUTPUT_BASE}/extract_tiles - ####### # SeriesAnalysis Configurations ####### -# 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 = OBS 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} - -FCST_SERIES_ANALYSIS_INPUT_TEMPLATE = {FCST_EXTRACT_TILES_OUTPUT_TEMPLATE} -OBS_SERIES_ANALYSIS_INPUT_TEMPLATE = {OBS_EXTRACT_TILES_OUTPUT_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 - -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 From db7f6952380c0ca7134f57e62455d134d91d3eb3 Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Thu, 30 Sep 2021 09:06:34 -0600 Subject: [PATCH 18/18] removed old info --- ...GFS_obsGFS_FeatureRelative_SeriesByLead.py | 35 +++++-------------- 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py b/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py index 4ce3a991e0..5cac8f53c4 100644 --- a/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py +++ b/docs/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.py @@ -35,7 +35,7 @@ # # This use case first runs MODE Time Domain and ExtractTiles wrappers to # generate tiles of data centered on objects defined using MTD. The MET -# regrid-dataplane tool is used to regrid the data (GRIB1 or GRIB2 into netCDF). +# regrid_data_plane tool is used to regrid the data (GRIB1 or GRIB2 into netCDF). # Next, a series analysis by lead time is performed on the results and plots # (.ps and .png) are generated for all variable-level-stat combinations from # the requested variables, levels, and requested statistics. The final results @@ -74,8 +74,7 @@ # --------------------- # # METplus first loads all of the configuration files found in parm/metplus_config, -# then it loads any configuration files passed to METplus via the command line -# with the -c option, i.e. -c parm/use_cases/model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf +# then it loads any configuration files passed to METplus via the command line. # # .. highlight:: bash # .. literalinclude:: ../../../../parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf @@ -114,12 +113,12 @@ # # 1) Passing in MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf, then a user-specific system configuration file:: # -# run_metplus.py -c /path/to/METplus/parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf -# -c /path/to/user_system.conf +# run_metplus.py /path/to/METplus/parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf +# /path/to/user_system.conf # # 2) Modifying the configurations in parm/metplus_config, then passing in MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf:: # -# run_metplus.py -c /path/to/METplus/parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf +# run_metplus.py /path/to/METplus/parm/use_cases/model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf # # The former method is recommended. Whether you add them to a user-specific configuration file or modify the metplus_config files, the following variables must be set correctly: # @@ -127,35 +126,19 @@ # * **OUTPUT_BASE** - Path where METplus output will be written. This must be in a location where you have write permissions # * **MET_INSTALL_DIR** - Path to location where MET is installed locally # -# and for the [exe] section, you will need to define the location of -# NON-MET executables. If the executable is in the user's path, METplus will find it from -# the name. If the executable is not in the path, specify the full -# path to the executable here (i.e. CONVERT = /usr/bin/convert) The following executables are required -# for performing series analysis use cases: +# If the 'convert' executable is not in the user's path, specify the full +# path to the executable here # -# If the executables are in the path: +# * **CONVERT = /usr/bin/convert** # -# * **CONVERT = convert** -# -# **NOTE:** All of these executable items must be located under the [exe] section. -# -# -# If the executables are not in the path, they need to be defined: -# -# * **CONVERT = /path/to/convert** -# -# **NOTE:** All of these executable items must be located under the [exe] section. # Example User Configuration File:: # -# [dir] +# [config] # INPUT_BASE = /path/to/sample/input/data # OUTPUT_BASE = /path/to/output/dir # MET_INSTALL_DIR = /path/to/met-X.Y -# -# [exe] # CONVERT = /path/to/convert # -# **NOTE:** The INPUT_BASE, OUTPUT_BASE, and MET_INSTALL_DIR must be located under the [dir] section, while the RM, CUT, TR, NCAP2, CONVERT, and NCDUMP must be located under the [exe] section. ############################################################################## # Expected Output