From 6ec6e71393748133fbb2eef7968a6edb303c2b47 Mon Sep 17 00:00:00 2001 From: Howard Soh Date: Wed, 9 Feb 2022 11:37:22 -0700 Subject: [PATCH 1/9] #2044 Renamed obs_prefbufr_map to obs_prepbufr_map (typo) --- met/data/config/PB2NCConfig_default | 2 +- met/docs/Users_Guide/config_options.rst | 6 +++--- met/src/basic/vx_config/config_constants.h | 2 +- met/src/libcode/vx_nc_obs/nc_obs_util.h | 2 +- test/config/PB2NCConfig_airnow | 2 +- test/config/PB2NCConfig_pbl | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/met/data/config/PB2NCConfig_default b/met/data/config/PB2NCConfig_default index 82750e9912..e11fa94e30 100644 --- a/met/data/config/PB2NCConfig_default +++ b/met/data/config/PB2NCConfig_default @@ -107,7 +107,7 @@ obs_bufr_map = []; // abbreviations in the output. This default map is appended to obs_bufr_map. // This should not typically be overridden. // -obs_prefbufr_map = [ +obs_prepbufr_map = [ { key = "POB"; val = "PRES"; }, { key = "QOB"; val = "SPFH"; }, { key = "TOB"; val = "TMP"; }, diff --git a/met/docs/Users_Guide/config_options.rst b/met/docs/Users_Guide/config_options.rst index 9f568932bd..8fcff91730 100644 --- a/met/docs/Users_Guide/config_options.rst +++ b/met/docs/Users_Guide/config_options.rst @@ -3542,9 +3542,9 @@ of the forecast the observation is used to verify. obs_bufr_map = []; -.. _obs_prefbufr_map: +.. _obs_prepbufr_map: -:ref:`obs_prefbufr_map ` +:ref:`obs_prepbufr_map ` Default mapping for PREPBUFR. Replace input BUFR variable names with GRIB abbreviations in the output. This default map is appended to obs_bufr_map. @@ -3554,7 +3554,7 @@ abbreviations to the output. .. code-block:: none - obs_prefbufr_map = [ + obs_prepbufr_map = [ { key = "POB"; val = "PRES"; }, { key = "QOB"; val = "SPFH"; }, { key = "TOB"; val = "TMP"; }, diff --git a/met/src/basic/vx_config/config_constants.h b/met/src/basic/vx_config/config_constants.h index 4649c555a4..f3c5550f02 100644 --- a/met/src/basic/vx_config/config_constants.h +++ b/met/src/basic/vx_config/config_constants.h @@ -571,7 +571,7 @@ static const char conf_key_message_type_group_map[] = "message_type_group_map"; static const char conf_key_obs_bufr_map[] = "obs_bufr_map"; static const char conf_key_obs_bufr_var[] = "obs_bufr_var"; static const char conf_key_obs_name_map[] = "obs_name_map"; -static const char conf_key_obs_prefbufr_map[] = "obs_prefbufr_map"; +static const char conf_key_obs_prepbufr_map[] = "obs_prepbufr_map"; static const char conf_key_key[] = "key"; static const char conf_key_val[] = "val"; static const char conf_key_boot_interval[] = "boot.interval"; diff --git a/met/src/libcode/vx_nc_obs/nc_obs_util.h b/met/src/libcode/vx_nc_obs/nc_obs_util.h index b6d25bf1af..2d8a06ca2c 100644 --- a/met/src/libcode/vx_nc_obs/nc_obs_util.h +++ b/met/src/libcode/vx_nc_obs/nc_obs_util.h @@ -98,7 +98,7 @@ struct NetcdfObsVars { NcDim obs_arr_dim ; // Observation array width (V1.0, not used from V1.2) NcDim obs_dim ; // Observation array length (V1.0) NcDim hdr_dim ; // Header array length (V1.0) - NcDim pb_hdr_dim ; // PrefBufr Header array length (V1.2) + NcDim pb_hdr_dim ; // PrepfBufr Header array length (V1.2) NcVar hdr_typ_tbl_var ; // Message type (string) (V1.1) NcVar hdr_sid_tbl_var ; // Station ID (string) (V1.1) diff --git a/test/config/PB2NCConfig_airnow b/test/config/PB2NCConfig_airnow index f9cba2c0bb..5fd9a2b01d 100644 --- a/test/config/PB2NCConfig_airnow +++ b/test/config/PB2NCConfig_airnow @@ -94,7 +94,7 @@ obs_bufr_map = []; // This map is for PREPBUFR. It will be added into obs_bufr_map. // Please do not override this map. // -obs_prefbufr_map = [ +obs_prepbufr_map = [ { key = "POB"; val = "PRES"; }, { key = "QOB"; val = "SPFH"; }, { key = "TOB"; val = "TMP"; }, diff --git a/test/config/PB2NCConfig_pbl b/test/config/PB2NCConfig_pbl index eeedd7a3e4..924c06a54c 100644 --- a/test/config/PB2NCConfig_pbl +++ b/test/config/PB2NCConfig_pbl @@ -106,7 +106,7 @@ obs_bufr_map = []; // abbreviations in the output. This default map is appended to obs_bufr_map. // This should not typically be overridden. // -obs_prefbufr_map = [ +obs_prepbufr_map = [ { key = "POB"; val = "PRES"; }, { key = "QOB"; val = "SPFH"; }, { key = "TOB"; val = "TMP"; }, From b4ec7b8201b4b917a51e6c0dec7631d093bd3c71 Mon Sep 17 00:00:00 2001 From: Howard Soh Date: Wed, 9 Feb 2022 11:42:15 -0700 Subject: [PATCH 2/9] #1996 Initialize i_point --- met/src/tools/core/series_analysis/series_analysis.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/met/src/tools/core/series_analysis/series_analysis.cc b/met/src/tools/core/series_analysis/series_analysis.cc index 6a33eefd73..72a897fa02 100644 --- a/met/src/tools/core/series_analysis/series_analysis.cc +++ b/met/src/tools/core/series_analysis/series_analysis.cc @@ -670,9 +670,10 @@ void process_scores() { // Number of points skipped due to valid data threshold int n_skip_zero = 0; int n_skip_pos = 0; - + // Loop over the data reads for(i_read=0; i_read Date: Wed, 9 Feb 2022 17:31:14 -0700 Subject: [PATCH 3/9] #2044 Corrected config key for obs_prefbufr_map and give a warning for using the old key --- met/src/basic/vx_config/config_util.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/met/src/basic/vx_config/config_util.cc b/met/src/basic/vx_config/config_util.cc index bfdeef07b2..1b655034ac 100644 --- a/met/src/basic/vx_config/config_util.cc +++ b/met/src/basic/vx_config/config_util.cc @@ -24,6 +24,7 @@ using namespace std; /////////////////////////////////////////////////////////////////////////////// static const double default_vld_thresh = 1.0; +static const char conf_key_prepbufr_map_typo[] = "obs_prefbufr_map"; // for backward compatibility /////////////////////////////////////////////////////////////////////////////// @@ -1089,7 +1090,13 @@ map parse_conf_metadata_map(Dictionary *dict) { /////////////////////////////////////////////////////////////////////////////// map parse_conf_obs_bufr_map(Dictionary *dict) { - map m = parse_conf_key_value_map(dict, conf_key_obs_prefbufr_map); + map m = parse_conf_key_value_map(dict, conf_key_obs_prepbufr_map); + if (m.empty()) { + //kludge: there was a typo in the config name + m = parse_conf_key_value_map(dict, conf_key_prepbufr_map_typo); + mlog << Warning << "\nPlease rename the configuration name \"" << conf_key_prepbufr_map_typo + << "\" to \"" << conf_key_obs_prepbufr_map << "\" at the customized PB2NC config file\n\n"; + } parse_add_conf_key_value_map(dict, conf_key_obs_bufr_map, &m); return m; } From f4e1f7f79910425b0f8b95f92b3be5b6d5569da5 Mon Sep 17 00:00:00 2001 From: Howard Soh Date: Thu, 10 Feb 2022 21:12:17 -0700 Subject: [PATCH 4/9] #2044 parse_conf_obs_bufr_map is moved to pb2nc_conf_info.c --- met/src/basic/vx_config/config_util.cc | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/met/src/basic/vx_config/config_util.cc b/met/src/basic/vx_config/config_util.cc index 1b655034ac..c466a9f2de 100644 --- a/met/src/basic/vx_config/config_util.cc +++ b/met/src/basic/vx_config/config_util.cc @@ -24,7 +24,7 @@ using namespace std; /////////////////////////////////////////////////////////////////////////////// static const double default_vld_thresh = 1.0; -static const char conf_key_prepbufr_map_typo[] = "obs_prefbufr_map"; // for backward compatibility +static const char conf_key_prepbufr_map_bad[] = "obs_prefbufr_map"; // for backward compatibility /////////////////////////////////////////////////////////////////////////////// @@ -1089,20 +1089,6 @@ map parse_conf_metadata_map(Dictionary *dict) { /////////////////////////////////////////////////////////////////////////////// -map parse_conf_obs_bufr_map(Dictionary *dict) { - map m = parse_conf_key_value_map(dict, conf_key_obs_prepbufr_map); - if (m.empty()) { - //kludge: there was a typo in the config name - m = parse_conf_key_value_map(dict, conf_key_prepbufr_map_typo); - mlog << Warning << "\nPlease rename the configuration name \"" << conf_key_prepbufr_map_typo - << "\" to \"" << conf_key_obs_prepbufr_map << "\" at the customized PB2NC config file\n\n"; - } - parse_add_conf_key_value_map(dict, conf_key_obs_bufr_map, &m); - return m; -} - -/////////////////////////////////////////////////////////////////////////////// - map parse_conf_obs_name_map(Dictionary *dict) { const char *method_name = "parse_conf_obs_name_map() -> "; return parse_conf_key_value_map(dict, conf_key_obs_name_map); From 3b88ab184a943545ee31c921b180253c78aa2d80 Mon Sep 17 00:00:00 2001 From: Howard Soh Date: Thu, 10 Feb 2022 21:12:36 -0700 Subject: [PATCH 5/9] #2044 parse_conf_obs_bufr_map is moved to pb2nc_conf_info.c --- met/src/basic/vx_config/config_util.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/met/src/basic/vx_config/config_util.h b/met/src/basic/vx_config/config_util.h index f9750e0212..5afcc974a1 100644 --- a/met/src/basic/vx_config/config_util.h +++ b/met/src/basic/vx_config/config_util.h @@ -25,6 +25,10 @@ //////////////////////////////////////////////////////////////////////// +static const char conf_key_old_prepbufr_map[] = "obs_prefbufr_map"; // for backward compatibility + +//////////////////////////////////////////////////////////////////////// + extern ConcatString parse_conf_version(Dictionary *dict); extern ConcatString parse_conf_string(Dictionary *dict, const char *, bool check_empty = true); extern GrdFileType parse_conf_file_type(Dictionary *dict); @@ -48,13 +52,13 @@ extern ClimoCDFInfo parse_conf_climo_cdf(Dictionary *dict); extern TimeSummaryInfo parse_conf_time_summary(Dictionary *dict); extern map parse_conf_key_value_map( Dictionary *dict, const char *conf_key_map_name, const char *caller=0); +extern void parse_add_conf_key_value_map( + Dictionary *dict, const char *conf_key_map_name, map *m); extern map parse_conf_message_type_map(Dictionary *dict); extern map parse_conf_message_type_group_map(Dictionary *dict); extern map parse_conf_metadata_map(Dictionary *dict); -extern map - parse_conf_obs_bufr_map(Dictionary *dict); extern map parse_conf_obs_name_map(Dictionary *dict); extern BootInfo parse_conf_boot(Dictionary *dict); From 4020d3525dc0d31e8746869c3f9a7add06eb0cea Mon Sep 17 00:00:00 2001 From: Howard Soh Date: Thu, 10 Feb 2022 21:14:41 -0700 Subject: [PATCH 6/9] #2044 Changed debiug level for PBL --- met/src/tools/other/pb2nc/pb2nc.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/met/src/tools/other/pb2nc/pb2nc.cc b/met/src/tools/other/pb2nc/pb2nc.cc index 7df4d754eb..cff540d107 100644 --- a/met/src/tools/other/pb2nc/pb2nc.cc +++ b/met/src/tools/other/pb2nc/pb2nc.cc @@ -3057,7 +3057,7 @@ float compute_pbl(map pqtzuv_map_tq, pbl_data_hgt[index] = pqtzuv[3]; pbl_data_ugrd[index] = pqtzuv[4]; pbl_data_vgrd[index] = pqtzuv[5]; - mlog << Debug(5) << method_name << "Force to add " + mlog << Debug(6) << method_name << "Force to add " << pres_level << " into " << index << "\n"; index--; } @@ -3077,11 +3077,11 @@ float compute_pbl(map pqtzuv_map_tq, if (hgt_cnt < pbl_level) { hgt_cnt += interpolate_by_pressure(pbl_level, pbl_data_pres, pbl_data_hgt); - mlog << Debug(4) << method_name << "interpolate Z (HGT)\n"; + mlog << Debug(6) << method_name << "interpolate Z (HGT)\n"; } if (spfh_cnt < pbl_level) { spfh_cnt += interpolate_by_pressure(pbl_level, pbl_data_pres, pbl_data_spfh); - mlog << Debug(4) << method_name << "interpolate Q (SPFH)\n"; + mlog << Debug(6) << method_name << "interpolate Q (SPFH)\n"; } if ((spfh_cnt>0) && (pbl_level>0)) { From 42aad8af444a6aec2d30c0fcf536e3ffd8c1e6ee Mon Sep 17 00:00:00 2001 From: Howard Soh Date: Thu, 10 Feb 2022 21:17:01 -0700 Subject: [PATCH 7/9] #2044 ci-run-unit Give warning if bad connfig key is used --- met/src/tools/other/pb2nc/pb2nc_conf_info.cc | 40 ++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/met/src/tools/other/pb2nc/pb2nc_conf_info.cc b/met/src/tools/other/pb2nc/pb2nc_conf_info.cc index d940939072..3c3a53c74a 100644 --- a/met/src/tools/other/pb2nc/pb2nc_conf_info.cc +++ b/met/src/tools/other/pb2nc/pb2nc_conf_info.cc @@ -25,6 +25,18 @@ using namespace std; #include "grib_strings.h" #include "vx_log.h" + +//////////////////////////////////////////////////////////////////////// + +map parse_conf_obs_bufr_map(Dictionary *dict) { + + const char *key_name = (0 != dict->lookup_array(conf_key_obs_prepbufr_map, false, false)) + ? conf_key_obs_prepbufr_map : conf_key_old_prepbufr_map; + map m = parse_conf_key_value_map(dict, (const char *)key_name); + parse_add_conf_key_value_map(dict, conf_key_obs_bufr_map, &m); + return m; +} + //////////////////////////////////////////////////////////////////////// // // Code for class PB2NCConfInfo @@ -85,14 +97,42 @@ void PB2NCConfInfo::clear() { void PB2NCConfInfo::read_config(const char *default_file_name, const char *user_file_name) { + int warning_code = 0; + bool use_bad_one = true; + string bad_file_names; + // Read the config file constants conf.read(replace_path(config_const_filename).c_str()); // Read the default config file conf.read(default_file_name); + if (0 != conf.lookup_array(conf_key_old_prepbufr_map, false, false)) { + warning_code = 1; + bad_file_names = default_file_name; + if (0 != conf.lookup_array(conf_key_obs_prepbufr_map, false, false)) use_bad_one = false; + } // Read the user-specified config file conf.read(user_file_name); + if (0 != conf.lookup_array(conf_key_old_prepbufr_map, false, false)) { + warning_code = 2; + if (0 < bad_file_names.length()) bad_file_names += " and "; + bad_file_names += user_file_name; + if (0 != conf.lookup_array(conf_key_obs_prepbufr_map, false, false)) use_bad_one = false; + } + + if (0 < warning_code) { + string ignored_message = " "; + + if (!use_bad_one) { + ignored_message = " (Ignored \""; + ignored_message += conf_key_old_prepbufr_map; + ignored_message += "\" key)"; + } + mlog << Warning << "\nPlease rename the configuration key \"" + << conf_key_old_prepbufr_map << "\" to \"" << conf_key_obs_prepbufr_map + << "\" at " << bad_file_names << ignored_message << "\n\n"; + } return; } From ce3582d5cd225f7030bb8f456e8f29edbe3a4ab9 Mon Sep 17 00:00:00 2001 From: Howard Soh Date: Fri, 11 Feb 2022 16:31:39 -0700 Subject: [PATCH 8/9] #2044 ci-run-test merge again --- met/docs/Users_Guide/config_options.rst | 477 ++++++++++-------------- 1 file changed, 193 insertions(+), 284 deletions(-) diff --git a/met/docs/Users_Guide/config_options.rst b/met/docs/Users_Guide/config_options.rst index 8fcff91730..627415ffec 100644 --- a/met/docs/Users_Guide/config_options.rst +++ b/met/docs/Users_Guide/config_options.rst @@ -1,8 +1,8 @@ .. _config_options: - +*************************** Configuration File Overview -=========================== +*************************** The configuration files that control many of the MET tools contain formatted ASCII text. This format has been updated for MET version |version| and @@ -392,9 +392,8 @@ into any relevant scripting. Settings common to multiple tools --------------------------------- -.. _exit_on_warning: - -:ref:`exit_on_warning ` +exit_on_warning +^^^^^^^^^^^^^^^ The "exit_on_warning" entry in ConfigConstants may be set to true or false. If set to true and a MET tool encounters a warning, it will immediately exit @@ -404,9 +403,8 @@ with bad status after writing the warning message. exit_on_warning = FALSE; -.. _nc_compression: - -:ref:`nc_compression ` +nc_compression +^^^^^^^^^^^^^^ The "nc_compression" entry in ConfigConstants defines the compression level for the NetCDF variables. Setting this option in the config file of one of @@ -427,9 +425,8 @@ writing of NetCDF files within MET significantly. nc_compression = 0; -.. _output_precision: - -:ref:`output_precision ` +output_precision +^^^^^^^^^^^^^^^^ The "output_precision" entry in ConfigConstants defines the precision (number of significant decimal places) to be written to the ASCII output @@ -440,9 +437,8 @@ override the default value set in ConfigConstants. output_precision = 5; -.. _tmp_dir_1: - -:ref:`tmp_dir ` +tmp_dir_1 +^^^^^^^^^ The "tmp_dir" entry in ConfigConstants defines the directory for the temporary files. The directory must exist and be writable. The environment @@ -454,9 +450,8 @@ Some tools override the temporary directory by the command line argument tmp_dir = "/tmp"; -.. _message_type_group_map_1: - -:ref:`message_type_group_map ` +message_type_group_map_1 +^^^^^^^^^^^^^^^^^^^^^^^^ The "message_type_group_map" entry is an array of dictionaries, each containing a "key" string and "val" string. This defines a mapping of @@ -475,9 +470,8 @@ which surface verification logic should be applied. { key = "ONLYSF"; val = "ADPSFC,SFCSHP"; } ]; -.. _message_type_map: - -:ref:`message_type_map ` +message_type_map +^^^^^^^^^^^^^^^^ The "message_type_map" entry is an array of dictionaries, each containing a "key" string and "val" string. This defines a mapping of input strings @@ -500,9 +494,8 @@ types. { key = "FM-97 ACARS"; val = "AIRCFT"; } ]; -.. _model: - -:ref:`model ` +model +^^^^^ The "model" entry specifies a name for the model being verified. This name is written to the MODEL column of the ASCII output generated. If you're @@ -514,9 +507,8 @@ e.g. model = "GFS"; model = "WRF"; -.. _desc: - -:ref:`desc ` +desc +^^^^ The "desc" entry specifies a user-specified description for each verification task. This string is written to the DESC column of the ASCII output @@ -531,9 +523,8 @@ e.g. desc = "QC_9"; desc = "NA"; -.. _obtype: - -:ref:`obtype ` +obtype +^^^^^^ The "obtype" entry specifies a name to describe the type of verifying gridded observation used. This name is written to the OBTYPE column in the ASCII @@ -548,8 +539,9 @@ the configuration file obtype value is written. obtype = "ANALYS"; .. _regrid: - -:ref:`regrid ` + +regrid +^^^^^^ The "regrid" entry is a dictionary containing information about how to handle input gridded data files. The "regrid" entry specifies regridding logic @@ -569,7 +561,8 @@ using the following entries: * to_grid = "path"; To regrid both to a grid defined by a file. - * to_grid = "spec"; To define a grid specification string, as described in :ref:`appendixB`. + * to_grid = "spec"; To define a grid specification string, as + described in :ref:`appendixB`. * The "vld_thresh" entry specifies a proportion between 0 and 1 to define the required ratio of valid data points. When regridding, compute @@ -656,9 +649,8 @@ using the following entries: censor_val = []; } -.. _fcst: - -:ref:`fcst ` +fcst +^^^^ The "fcst" entry is a dictionary containing information about the field(s) to be verified. This dictionary may include the following entries: @@ -1085,9 +1077,8 @@ File-format specific settings for the "field" entry: ]; } -.. _obs: - -:ref:`obs ` +obs +^^^ The "obs" entry specifies the same type of information as "fcst", but for the observation data. It will often be set to the same things as "fcst", @@ -1210,9 +1201,8 @@ or obs = fcst; -.. _climo_mean: - -:ref:`climo_mean ` +climo_mean +^^^^^^^^^^ The "climo_mean" dictionary specifies climatology mean data to be read by the Grid-Stat, Point-Stat, Ensemble-Stat, and Series-Analysis tools. It consists @@ -1268,9 +1258,8 @@ of several entires defining the climatology file names and fields to be used. hour_interval = 6; } -.. _climo_stdev: - -:ref:`climo_stdev ` +climo_stdev +^^^^^^^^^^^ The "climo_stdev" dictionary specifies climatology standard deviation data to be read by the Grid-Stat, Point-Stat, Ensemble-Stat, and Series-Analysis @@ -1300,9 +1289,8 @@ over the "climo_mean" setting and then updating the "file_name" entry. file_name = [ "/path/to/climatological/standard/deviation/files" ]; } -.. _climo_cdf: - -:ref:`climo_cdf ` +climo_cdf +^^^^^^^^^ The "climo_cdf" dictionary specifies how the the climatological mean ("climo_mean") and standard deviation ("climo_stdev") data are used to @@ -1368,9 +1356,8 @@ all pairs into a single climatological bin. direct_prob = FALSE; or TRUE } -.. _climato_data: - -:ref:`climatology data for probability forecasts ` +climato_data +^^^^^^^^^^^^ When specifying climatology data for probability forecasts, either supply a probabilistic "climo_mean" field or non-probabilistic "climo_mean" and @@ -1397,9 +1384,8 @@ In this way, the number of bins impacts the resolution of the climatological probabilities. These derived probability values are used to compute the climatological Brier Score and Brier Skill Score. -.. _mask_missing_flag: - -:ref:`mask_missing_flag ` +mask_missing_flag +^^^^^^^^^^^^^^^^^ The "mask_missing_flag" entry specifies how missing data should be handled in the Wavelet-Stat and MODE tools: @@ -1417,9 +1403,8 @@ in the Wavelet-Stat and MODE tools: mask_missing_flag = BOTH; -.. _obs_window: - -:ref:`obs_window ` +obs_window +^^^^^^^^^^ The "obs_window" entry is a dictionary specifying a beginning ("beg" entry) and ending ("end" entry) time offset values in seconds. It defines @@ -1435,9 +1420,8 @@ Point-Stat and Ensemble-Stat, the reference time is the forecast valid time. end = 5400; } -.. _mask: - -:ref:`mask ` +mask +^^^^ The "mask" entry is a dictionary that specifies the verification masking regions to be used when computing statistics. Each mask defines a @@ -1547,9 +1531,8 @@ is included in the mask. } -.. _ci_alpha: - -:ref:`ci_alpha ` +ci_alpha +^^^^^^^^ The "ci_alpha" entry is an array of floats specifying the values for alpha to be used when computing confidence intervals. Values of alpha must be @@ -1561,9 +1544,8 @@ interval. ci_alpha = [ 0.05, 0.10 ]; -.. _boot: - -:ref:`boot ` +boot +^^^^ The "boot" entry defines the parameters to be used in calculation of bootstrap confidence intervals. The interval variable indicates what method @@ -1625,9 +1607,8 @@ should be used for computing bootstrap confidence intervals: seed = ""; } -.. _interp: - -:ref:`interp ` +interp +^^^^^^ The "interp" entry is a dictionary that specifies what interpolation or smoothing (for the Grid-Stat tool) methods should be applied. @@ -1730,9 +1711,8 @@ This dictionary may include the following entries: ]; } -.. _land_mask: - -:ref:`land_mask ` +land_mask +^^^^^^^^^ The "land_mask" dictionary defines the land/sea mask field which is used when verifying at the surface. For point observations whose message type @@ -1759,9 +1739,8 @@ land_mask.flag may be set separately in each "obs.field" entry. thresh = eq1; } -.. _topo_mask: - -:ref:`topo_mask ` +topo_mask +^^^^^^^^^ The "topo_mask" dictionary defines the model topography field which is used when verifying at the surface. This logic is applied to point observations @@ -1790,9 +1769,8 @@ topo_mask.flag may be set separately in each "obs.field" entry. interp_fcst_thresh = ge-50&&le50; } -.. _hira: - -:ref:`hira ` +hira +^^^^ The "hira" entry is a dictionary that is very similar to the "interp" and "nbrhd" entries. It specifies information for applying the High Resolution @@ -1844,9 +1822,8 @@ This dictionary may include the following entries: prob_cat_thresh = []; } -.. _output_flag: - -:ref:`output_flag ` +output_flag +^^^^^^^^^^^ The "output_flag" entry is a dictionary that specifies what verification methods should be applied to the input data. Options exist for each @@ -1896,9 +1873,8 @@ output line type from the MET tools. Each line type may be set to one of: grad = NONE; Gradient statistics (S1 score) } -.. _nc_pairs_flag: - -:ref:`nc_pairs_flag ` +nc_pairs_flag +^^^^^^^^^^^^^ The "nc_pairs_flag" can be set either to a boolean value or a dictionary in either Grid-Stat, Wavelet-Stat or MODE. The dictionary (with slightly @@ -1928,9 +1904,8 @@ netcdf output will be generated. apply_mask = TRUE; } -.. _nc_pairs_var_name: - -:ref:`nc_pairs_var_name ` +nc_pairs_var_name +^^^^^^^^^^^^^^^^^ The "nc_pairs_var_name" entry specifies a string for each verification task in Grid-Stat. This string is parsed from each "obs.field" dictionary entry @@ -1949,9 +1924,8 @@ For example: nc_pairs_var_name = ""; -.. _nc_pairs_var_suffix: - -:ref:`nc_pairs_var_suffix ` +nc_pairs_var_suffix +^^^^^^^^^^^^^^^^^^^ The "nc_pairs_var_suffix" entry is similar to the "nc_pairs_var_name" entry described above. It is also parsed from each "obs.field" dictionary entry. @@ -1973,9 +1947,8 @@ now deprecated. nc_pairs_var_suffix = ""; -.. _ps_plot_flag: - -:ref:`ps_plot_flag ` +ps_plot_flag +^^^^^^^^^^^^ The "ps_plot_flag" entry is a boolean value for Wavelet-Stat and MODE indicating whether a PostScript plot should be generated summarizing @@ -1985,9 +1958,8 @@ the verification. ps_plot_flag = TRUE; -.. _grid_weight_flag: - -:ref:`grid_weight_flag ` +grid_weight_flag +^^^^^^^^^^^^^^^^ The "grid_weight_flag" specifies how grid weighting should be applied during the computation of continuous statistics and partial sums. It is @@ -2010,9 +1982,8 @@ by the sum of the weights for the current masking region. grid_weight_flag = NONE; -.. _hss_ec_value: - -ref:`hss_ec_value ` +hss_ec_value +^^^^^^^^^^^^ The "hss_ec_value" entry is a floating point number used in the computation of the HSS_EC statistic in the MCTS line type. It specifies the expected @@ -2028,9 +1999,8 @@ It set, it must greater than or equal to 0.0 and less than 1.0. A value of hss_ec_value = NA; -.. _rank_corr_flag: - -ref:`rank_corr_flag ` +rank_corr_flag +^^^^^^^^^^^^^^ The "rank_corr_flag" entry is a boolean to indicate whether Kendall's Tau and Spearman's Rank Correlation Coefficients (in the CNT line type) should @@ -2041,9 +2011,8 @@ intensive and slows down the runtime significantly. rank_corr_flag = FALSE; -.. _duplicate_flag: - -:ref:`duplicate_flag ` +duplicate_flag +^^^^^^^^^^^^^^ The "duplicate_flag" entry specifies how to handle duplicate point observations in Point-Stat and Ensemble-Stat: @@ -2064,9 +2033,8 @@ in those cases. duplicate_flag = NONE; -.. _obs_summary: - -:ref:`obs_summary ` +obs_summary +^^^^^^^^^^^ The "obs_summary" entry specifies how to compute statistics on observations that appear at a single location (lat,lon,level,elev) @@ -2101,9 +2069,8 @@ in those cases. obs_summary = NONE; -.. _obs_perc_value: - -:ref:`obs_perc_value ` +obs_perc_value +^^^^^^^^^^^^^^ Percentile value to use when obs_summary = PERC @@ -2112,9 +2079,8 @@ Percentile value to use when obs_summary = PERC obs_perc_value = 50; -.. _obs_quality_inc: - -:ref:`obs_quality_inc ` +obs_quality_inc +^^^^^^^^^^^^^^^ The "obs_quality_inc" entry specifies the quality flag values that are to be retained and used for verification. An empty list signifies that all @@ -2129,9 +2095,8 @@ Note "obs_quality_inc" replaces the older option "obs_quality". obs_quality_inc = [ "1", "2", "3", "9" ]; -.. _obs_quality_exc: - -:ref:`obs_quality_exc ` +obs_quality_exc +^^^^^^^^^^^^^^^ The "obs_quality_exc" entry specifies the quality flag values that are to be ignored and not used for verification. An empty list signifies that all @@ -2145,9 +2110,8 @@ an array of strings, even if the values themselves are numeric. obs_quality_exc = [ "1", "2", "3", "9" ]; -.. _met_data_dir: - -:ref:`met_data_dir ` +met_data_dir +^^^^^^^^^^^^ The "met_data_dir" entry specifies the location of the internal MET data sub-directory which contains data files used when generating plots. It @@ -2158,9 +2122,8 @@ locate the static data files they need at run time. met_data_dir = "MET_BASE"; -.. _many_plots: - -:ref:`fcst_raw_plot, obs_raw_plot, wvlt_plot, object_plot ` +many_plots +^^^^^^^^^^ The "fcst_raw_plot" entry is a dictionary used by Wavelet-Stat and MODE containing colortable plotting information for the plotting of the raw @@ -2191,9 +2154,8 @@ forecast field: The "obs_raw_plot", "wvlt_plot", and "object_plot" entries are dictionaries similar to the "fcst_raw_plot" described above. -.. _tmp_dir_2: - -:ref:`tmp_dir ` +tmp_dir_2 +^^^^^^^^^ The "tmp_dir" entry is a string specifying the location where temporary files should be written. @@ -2203,9 +2165,8 @@ files should be written. tmp_dir = "/tmp"; -.. _output_prefix: - -:ref:`output_prefix ` +output_prefix +^^^^^^^^^^^^^ The "output_prefix" entry specifies a string to be included in the output file name. The MET statistics tools construct output file names that @@ -2217,9 +2178,8 @@ of the same tool. output_prefix = ""; -.. _version: - -:ref:`version ` +version +^^^^^^^ The "version" entry specifies the version number of the configuration file. The configuration file version number should match the version number of @@ -2229,9 +2189,8 @@ the MET code being run. This value should generally not be modified. version = "VN.N"; -.. _time_summary: - -:ref:`time_summary ` +time_summary +^^^^^^^^^^^^ This feature was implemented to allow additional processing of observations with high temporal resolution. The "flag" entry toggles the "time_summary" @@ -2308,9 +2267,8 @@ Settings specific to individual tools EnsembleStatConfig_default ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _ens: - -:ref:`ens ` +ens +""" The "ens" entry is a dictionary that specifies the fields for which ensemble products should be generated. This is very similar to the "fcst" and "obs" @@ -2352,9 +2310,8 @@ entries. This dictionary may include the following entries: ]; } -.. _nbrhd_prob: - -:ref:`nbrhd_prob ` +nbrhd_prob +"""""""""" The nbrhd_prob dictionary defines the neighborhoods used to compute NEP and NMEP output. The neighborhood shape is a SQUARE or CIRCLE centered on @@ -2375,9 +2332,8 @@ specified. vld_thresh = 0.0; } -.. _nmep_smooth: - -:ref:`nmep_smooth ` +nmep_smooth +""""""""""" Similar to the interp dictionary, the nmep_smooth dictionary includes a type array of dictionaries to define one or more methods for smoothing the NMEP @@ -2403,9 +2359,8 @@ combination of the categorical threshold (cat_thresh), neighborhood width ]; } -.. _fcst, obs_1: - -:ref:`fcst, obs ` +fcst, obs_1 +""""""""""" The fcst and obs entries define the fields for which Ensemble-Stat should compute rank histograms, probability integral transform histograms, @@ -2443,9 +2398,8 @@ data is provided, the climo_cdf thresholds will be used instead. } -.. _nc_var_str: - -:ref:`nc_var_str ` +nc_var_str +"""""""""" The "nc_var_str" entry specifies a string for each ensemble field and verification task in Ensemble-Stat. This string is parsed from each @@ -2461,9 +2415,8 @@ e.g. nc_var_str = "MIN"; nc_var_str = ""; -.. _obs_thresh: - -:ref:`obs_thresh ` +obs_thresh +"""""""""" The "obs_thresh" entry is an array of thresholds for filtering observation values prior to applying ensemble verification logic. They specify the values @@ -2476,9 +2429,8 @@ This option may be set separately for each obs.field entry. obs_thresh = [ NA ]; -.. _skip_const: - -:ref:`skip_const ` +skip_const +"""""""""" Setting "skip_const" to true tells Ensemble-Stat to exclude pairs where all the ensemble members and the observation have a constant value. For example, @@ -2491,9 +2443,8 @@ random. skip_const = FALSE; -.. _obs_error: - -:ref:`obs_error ` +obs_error +""""""""" Observation error options @@ -2550,9 +2501,8 @@ levels, and range of values. max = NA; } -.. _ensemble_flag: - -:ref:`ensemble_flag ` +ensemble_flag +""""""""""""" The "ensemble_flag" entry is a dictionary of boolean value indicating which ensemble products should be generated: @@ -2603,9 +2553,8 @@ which ensemble products should be generated: weight = FALSE; } -.. _rng: - -:ref:`rng ` +rng +""" See: `Random Number Generator Performance `_ used for random assignment of ranks when they are tied. @@ -2958,9 +2907,8 @@ MET User's Guide for a description of these attributes. MODEConfig_default ^^^^^^^^^^^^^^^^^^ -.. _quilt: - -:ref:`quilt ` +quilt +""""" The "quilt" entry is a boolean to indicate whether all permutations of convolution radii and thresholds should be run. If set to false, the number @@ -2975,9 +2923,8 @@ MODE will be run. quilt = false; -.. _fcst, obs_2: - -:ref:`fcst, obs ` +fcst, obs_2 +""""""""""" The object definition settings for MODE are contained within the "fcst" and "obs" entries: @@ -3061,9 +3008,8 @@ The object definition settings for MODE are contained within the "fcst" and merge_flag = THRESH; } -.. _grid_res: - -:ref:`grid_res ` +grid_res +"""""""" The "grid_res" entry is the nominal spacing for each grid square in kilometers. The variable is not used directly in the code, but subsequent @@ -3075,9 +3021,8 @@ are used for these variables. grid_res = 4; -.. _match_flag: - -:ref:`match_flag ` +match_flag +"""""""""" The "match_flag" entry specifies the matching method to be applied: @@ -3095,9 +3040,8 @@ The "match_flag" entry specifies the matching method to be applied: match_flag = MERGE_BOTH; -.. _max_centroid_dist: - -:ref:`max_centroid_dist ` +max_centroid_dist +""""""""""""""""" The "max_centroid_dist" entry specifies the maximum allowable distance in grid squares between the centroids of objects for them to be compared. @@ -3108,9 +3052,8 @@ skip unreasonable object comparisons. max_centroid_dist = 800.0/grid_res; -.. _weight: - -:ref:`weight ` +weight +"""""" The weight variables control how much weight is assigned to each pairwise attribute when computing a total interest value for object pairs. The weights @@ -3132,9 +3075,8 @@ sum of the weights listed. inten_perc_value = 50; } -.. _interest_function: - -:ref:`interest_function ` +interest_function +""""""""""""""""" The set of interest function variables listed define which values are of interest for each pairwise attribute measured. The interest functions may be @@ -3190,9 +3132,8 @@ mathematical functions. inten_perc_ratio = ratio_if; } -.. _total_interest_thresh: - -:ref:`total_interest_thresh ` +total_interest_thresh +""""""""""""""""""""" The total_interest_thresh variable should be set between 0 and 1. This threshold is applied to the total interest values computed for each pair of @@ -3202,9 +3143,8 @@ objects and is used in determining matches. total_interest_thresh = 0.7; -.. _print_interest_thresh: - -:ref:`print_interest_thresh ` +print_interest_thresh +""""""""""""""""""""" The print_interest_thresh variable determines which pairs of object attributes will be written to the output object attribute ASCII file. The @@ -3218,9 +3158,8 @@ the max_centroid_dist variable. print_interest_thresh = 0.0; -.. _plot_valid_flag: - -:ref:`plot_valid_flag ` +plot_valid_flag +""""""""""""""" When applied, the plot_valid_flag variable indicates that only the region containing valid data after masking is applied should be plotted. TRUE @@ -3231,9 +3170,8 @@ region containing valid data after masking should be plotted. plot_valid_flag = FALSE; -.. _plot_gcarc_flag: - -:ref:`plot_gcarc_flag ` +plot_gcarc_flag +""""""""""""""" When applied, the plot_gcarc_flag variable indicates that the edges of polylines should be plotted using great circle arcs as opposed to straight @@ -3243,9 +3181,8 @@ lines in the grid. plot_gcarc_flag = FALSE; -.. _ct_stats_flag: - -:ref:`ct_stats_flag ` +ct_stats_flag +""""""""""""" The ct_stats_flag can be set to TRUE or FALSE to produce additional output, in the form of contingency table counts and statistics. @@ -3254,9 +3191,8 @@ in the form of contingency table counts and statistics. ct_stats_flag = TRUE; -.. _shift_right: - -:ref:`shift_right ` +shift_right +""""""""""" When MODE is run on global grids, this parameter specifies how many grid squares to shift the grid to the right. MODE does not currently connect @@ -3331,9 +3267,8 @@ following criteria: 7 - Auxiliary levels generated via interpolation from spanning levels (upper-air profile reports) -.. _message_type: - -:ref:`message_type ` +message_type +"""""""""""" In the PB2NC tool, the "message_type" entry is an array of message types to be retained. An empty list indicates that all should be retained. @@ -3354,9 +3289,8 @@ For example: message_type = []; -.. _message_type_group_map_2: - -:ref:`message_type_group_map ` +message_type_group_map_2 +"""""""""""""""""""""""" Mapping of message type group name to comma-separated list of values. The default setting defines ANYAIR, ANYSFC, and ONLYSF as groups. @@ -3371,9 +3305,8 @@ Derive PRMSL only for SURFACE message types. { key = "ONLYSF"; val = "ADPSFC,SFCSHP"; } ]; -.. _station_id: - -:ref:`station_id ` +station_id +"""""""""" The "station_id" entry is an array of station ids to be retained or the filename which contains station ids. An array of station ids @@ -3386,9 +3319,8 @@ For example: station_id = [ "KDEN" ]; station_id = []; -.. _elevation_range: - -:ref:`elevation_range ` +elevation_range +""""""""""""""" The "elevation_range" entry is a dictionary which contains "beg" and "end" entries specifying the range of observing locations elevations to be @@ -3401,9 +3333,8 @@ retained. end = 100000; } -.. _pb_report_type: - -:ref:`pb_report_type ` +pb_report_type +"""""""""""""" The "pb_report_type" entry is an array of PREPBUFR report types to be retained. The numeric "pb_report_type" entry allows for further @@ -3423,9 +3354,8 @@ For example: pb_report_type = []; -.. _in_report_type: - -:ref:`in_report_type ` +in_report_type +"""""""""""""" The "in_report_type" entry is an array of input report type values to be retained. The numeric "in_report_type" entry provides additional @@ -3444,9 +3374,8 @@ For example: in_report_type = []; -.. _instrument_type: - -:ref:`instrument_type ` +instrument_type +""""""""""""""" The "instrument_type" entry is an array of instrument types to be retained. An empty list indicates that all should be retained. @@ -3455,9 +3384,8 @@ An empty list indicates that all should be retained. instrument_type = []; -.. _level_range: - -:ref:`level_range ` +level_range +""""""""""" The "level_range" entry is a dictionary which contains "beg" and "end" entries specifying the range of vertical levels (1 to 255) to be retained. @@ -3469,9 +3397,8 @@ entries specifying the range of vertical levels (1 to 255) to be retained. end = 255; } -.. _level_category: - -:ref:`level_category ` +level_category +"""""""""""""" The "level_category" entry is an array of integers specifying which level categories should be retained: @@ -3507,9 +3434,8 @@ See: `Current Table A Entries in PREPBUFR mnemonic table ` +obs_bufr_var +"""""""""""" The "obs_bufr_var" entry is an array of strings containing BUFR variable names to be retained or derived. This replaces the "obs_grib_code" setting @@ -3529,9 +3455,8 @@ command line option to see the list of available observation variables. obs_bufr_var = [ "QOB", "TOB", "ZOB", "UOB", "VOB" ]; -.. _obs_bufr_map: - -:ref:`obs_bufr_map ` +obs_bufr_map +"""""""""""" Mapping of input BUFR variable names to output variables names. The default PREPBUFR map, obs_prepbufr_map, is appended to this map. @@ -3542,9 +3467,8 @@ of the forecast the observation is used to verify. obs_bufr_map = []; -.. _obs_prepbufr_map: - -:ref:`obs_prepbufr_map ` +obs_prepbufr_map +"""""""""""""""" Default mapping for PREPBUFR. Replace input BUFR variable names with GRIB abbreviations in the output. This default map is appended to obs_bufr_map. @@ -3569,9 +3493,8 @@ abbreviations to the output. { key = "D_PRMSL"; val = "PRMSL"; } ]; -.. _quality_mark_thresh: - -:ref:`quality_mark_thresh ` +quality_mark_thresh +""""""""""""""""""" The "quality_mark_thresh" entry specifies the maximum quality mark value to be retained. Observations with a quality mark LESS THAN OR EQUAL TO @@ -3584,9 +3507,8 @@ See `Code table for observation quality markers ` +event_stack_flag +"""""""""""""""" The "event_stack_flag" entry is set to "TOP" or "BOTTOM" to specify whether observations should be drawn from the top of the event @@ -3599,9 +3521,8 @@ stack (most quality controlled) or the bottom of the event stack (most raw). SeriesAnalysisConfig_default ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _block_size: - -:ref:`block_size ` +block_size +"""""""""" Computation may be memory intensive, especially for large grids. The "block_size" entry sets the number of grid points to be processed @@ -3614,9 +3535,8 @@ of grid points, and they are all processed concurrently. block_size = 1024; -.. _vld_thresh: - -:ref:`vld_thresh ` +vld_thresh +"""""""""" Ratio of valid matched pairs to total length of series for a grid point. If valid threshold is exceeded at that grid point the statistics @@ -3628,9 +3548,8 @@ setting requires all data in the series to be valid. vld_thresh = 1.0; -.. _output_stats: - -:ref:`output_stats ` +output_stats +"""""""""""" Statistical output types need to be specified explicitly. Refer to User's Guide for available output types. To keep output file size reasonable, @@ -3656,9 +3575,8 @@ grid is large. STATAnalysisConfig_default ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _jobs: - -:ref:`jobs ` +jobs +"""" The "jobs" entry is an array of STAT-Analysis jobs to be performed. Each element in the array contains the specifications for a single analysis @@ -4125,9 +4043,8 @@ confidence intervals computed for the aggregated statistics. WaveletStatConfig_default ^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _grid_decomp_flag: - -:ref:`grid_decomp_flag ` +grid_decomp_flag +"""""""""""""""" The "grid_decomp_flag" entry specifies how the grid should be decomposed in Wavelet-Stat into dyadic (2^n x 2^n) tiles: @@ -4142,9 +4059,8 @@ Wavelet-Stat into dyadic (2^n x 2^n) tiles: grid_decomp_flag = AUTO; -.. _tile: - -:ref:`tile ` +tile +"""" The "tile" entry is a dictionary that specifies how tiles should be defined in Wavelet-Stat when the "grid_decomp_flag" is set to "TILE": @@ -4168,9 +4084,8 @@ in Wavelet-Stat when the "grid_decomp_flag" is set to "TILE": ]; } -.. _wavelet: - -:ref:`wavelet ` +wavelet +""""""" The "wavelet" entry is a dictionary in Wavelet-Stat that specifies how the wavelet decomposition should be performed: @@ -4205,9 +4120,8 @@ wavelet decomposition should be performed: member = 2; } -.. _obs_raw_wvlt_object_plots: - -:ref:`obs_raw_plot, wvlt_plot, object_plot ` +obs_raw_wvlt_object_plots +""""""""""""""""""""""""" The "obs_raw_plot", "wvlt_plot", and "object_plot" entries are dictionaries similar to the "fcst_raw_plot" described in the "Settings common to multiple @@ -4216,15 +4130,13 @@ tools" section. WWMCARegridConfig_default ^^^^^^^^^^^^^^^^^^^^^^^^^ -.. _to_grid: - -:ref:`to_grid ` +to_grid +""""""" Please see the description of the "to_grid" entry in the "regrid" dictionary above. -.. _NetCDF output information: - -:ref:`NetCDF output information ` +NetCDF output information +""""""""""""""""""""""""" Supply the NetCDF output information. For example: @@ -4242,9 +4154,8 @@ Supply the NetCDF output information. For example: long_name = ""; level = ""; -.. _max_minutes (pixel age): - -:ref:`max_minutes (pixel age) ` +max_minutes (pixel age) +""""""""""""""""""""""" Maximum pixel age in minutes @@ -4252,9 +4163,8 @@ Maximum pixel age in minutes max_minutes = 120; -.. _swap_endian: - -:ref:`swap_endian ` +swap_endian +""""""""""" The WWMCA pixel age data is stored in binary data files in 4-byte blocks. The swap_endian option indicates whether the endian-ness of the data should @@ -4264,9 +4174,8 @@ be swapped after reading. swap_endian = TRUE; -.. _write_pixel_age: - -:ref:`write_pixel_age ` +write_pixel_age +""""""""""""""" By default, wwmca_regrid writes the cloud percent data specified on the command line to the output file. This option writes the pixel age data, From 1852daefdb384f8afba42ffc15c7eb01860b1f35 Mon Sep 17 00:00:00 2001 From: John Halley Gotway Date: Wed, 16 Feb 2022 22:01:56 -0700 Subject: [PATCH 9/9] For #2044, fix a typo in PB2NCConfig_G212. A commented out obs_bufr_var entry should really be obs_bufr_map and not commented out. --- met/scripts/config/PB2NCConfig_G212 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/met/scripts/config/PB2NCConfig_G212 b/met/scripts/config/PB2NCConfig_G212 index d5fbe9c141..0edaddf6e6 100644 --- a/met/scripts/config/PB2NCConfig_G212 +++ b/met/scripts/config/PB2NCConfig_G212 @@ -84,7 +84,7 @@ obs_bufr_var = [ "QOB", "TOB", "ZOB", "UOB", "VOB", // Mapping of BUFR variable name to GRIB name. The default map is defined at // obs_prepbufr_map. This replaces/expends the default map. // -//obs_bufr_var = []; +obs_bufr_map = []; ////////////////////////////////////////////////////////////////////////////////