diff --git a/met/configure.ac b/met/configure.ac index dac13bfa64..cbe955c398 100644 --- a/met/configure.ac +++ b/met/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([MET], [m4_esyscmd_s(echo ${MET_BUILD_VERSION:-development})], [met_help@ucar.edu], [], [http://dtcenter.org/community-code/model-evaluation-tools-met]) +AC_INIT([MET], [m4_esyscmd_s(echo ${MET_BUILD_VERSION:-development})], [https://github.com/dtcenter/METplus/discussions], [], [http://dtcenter.org/community-code/model-evaluation-tools-met]) AC_CONFIG_SRCDIR([src/tools/tc_utils/tc_dland/tc_dland.cc]) AC_CONFIG_HEADERS([config.h]) diff --git a/met/data/wrappers/read_tmp_ascii.py b/met/data/wrappers/read_tmp_ascii.py index 66c008e3cd..fb7eb7b4e7 100644 --- a/met/data/wrappers/read_tmp_ascii.py +++ b/met/data/wrappers/read_tmp_ascii.py @@ -16,7 +16,7 @@ __author__ = 'David Fillmore' __version__ = '1.0.0' -__email__ = 'met_help@ucar.edu' + import argparse diff --git a/met/docs/Users_Guide/appendixA.rst b/met/docs/Users_Guide/appendixA.rst index e8e5973e9d..9a0d619648 100644 --- a/met/docs/Users_Guide/appendixA.rst +++ b/met/docs/Users_Guide/appendixA.rst @@ -36,7 +36,7 @@ A. No - it will not. In the future, we may add options to allow additional model **Q. How do I get help if my questions are not answered in the User's Guide?** -A. First, look on our `MET User's Guide website `_. If that doesn't answer your question, then email: met_help@ucar.edu. +A. First, look on our `MET User's Guide website `_. If that doesn't answer your question, create a post in the `METplus GitHub Discussions Forum `_. **Q. Where are the graphics?** @@ -94,9 +94,9 @@ The first place to look for help with individual commands is this user's guide o Where to get help _________________ -If none of the above suggestions have helped solve your problem, help is available through: met_help@ucar.edu +If none of the above suggestions have helped solve your problem, help is available through the `METplus GitHub Discussions Forum `_. How to contribute code ______________________ -If you have code you would like to contribute, we will gladly consider your contribution. Please send email to: met_help@ucar.edu +If you have code you would like to contribute, we will gladly consider your contribution. Please create a post in the `METplus GitHub Discussions Forum `_. diff --git a/met/docs/Users_Guide/index.rst b/met/docs/Users_Guide/index.rst index 40151728e5..6f62391dc6 100644 --- a/met/docs/Users_Guide/index.rst +++ b/met/docs/Users_Guide/index.rst @@ -6,7 +6,7 @@ User's Guide This User's guide is provided as an aid to users of the Model Evaluation Tools (MET). MET is a set of verification tools developed by the Developmental Testbed Center (DTC) for use by the numerical weather prediction community to help them assess and evaluate the performance of numerical weather predictions. It is also the core component of the unified METplus verification framework. More details about METplus can be found on the `METplus website `_. -It is important to note here that MET is an evolving software package. This documentation describes the |release| release dated |release_date|. Previous releases of MET have occurred each year since 2008. Intermediate releases may include bug fixes. MET is also able to accept new modules contributed by the community. If you have code you would like to contribute, we will gladly consider your contribution. Please send an email to: `met_help@ucar.edu `__. We will then determine the maturity of the new verification method and coordinate the inclusion of the new module in a future version. +It is important to note here that MET is an evolving software package. This documentation describes the |release| release dated |release_date|. Previous releases of MET have occurred each year since 2008. Intermediate releases may include bug fixes. MET is also able to accept new modules contributed by the community. If you have code you would like to contribute, we will gladly consider your contribution. Please create a post in the `METplus GitHub Discussions Forum `_. We will then determine the maturity of the new verification method and coordinate the inclusion of the new module in a future version. **Model Evaluation Tools (MET) TERMS OF USE - IMPORTANT!** diff --git a/met/docs/Users_Guide/overview.rst b/met/docs/Users_Guide/overview.rst index 733255d409..ac1d55c067 100644 --- a/met/docs/Users_Guide/overview.rst +++ b/met/docs/Users_Guide/overview.rst @@ -81,13 +81,13 @@ MET is an evolving verification software package. New capabilities are planned i Code support ____________ -MET support is provided through a MET-help email address: met_help@ucar.edu. We will endeavor to respond to requests for help in a timely fashion. In addition, information about MET and tools that can be used with MET are provided on the `MET web page `_. +MET support is provided through the `METplus GitHub Discussions Forum `_. We will endeavor to respond to requests for help in a timely fashion. In addition, information about MET and tools that can be used with MET are provided on the `MET web page `_. We welcome comments and suggestions for improvements to MET, especially information regarding errors. Comments may be submitted using the MET Feedback form available on the MET website. In addition, comments on this document would be greatly appreciated. While we cannot promise to incorporate all suggested changes, we will certainly take all suggestions into consideration. **-help** and **-version** command line options are available for all of the MET tools. Typing the name of the tool with no command line options also produces the usage statement. -The MET package is a "living" set of tools. Our goal is to continually enhance it and add to its capabilities. Because our time, resources, and talents are limited, we welcome contributed code for future versions of MET. These contributions may represent new verification methodologies, new analysis tools, or new plotting functions. For more information on contributing code to MET, please contact met_help@ucar.edu. +The MET package is a "living" set of tools. Our goal is to continually enhance it and add to its capabilities. Because our time, resources, and talents are limited, we welcome contributed code for future versions of MET. These contributions may represent new verification methodologies, new analysis tools, or new plotting functions. For more information on contributing code to MET, please create a post in the `METplus GitHub Discussions Forum `_. Fortify _______ diff --git a/met/docs/Users_Guide/tc-pairs.rst b/met/docs/Users_Guide/tc-pairs.rst index 24afaf814a..de8ff0f957 100644 --- a/met/docs/Users_Guide/tc-pairs.rst +++ b/met/docs/Users_Guide/tc-pairs.rst @@ -222,7 +222,7 @@ ____________________ time_offset = -14400; } -The **watch_warn** field specifies the file name and time applied offset to the **watch_warn** flag. The **file_name** string specifies the path of the watch/warning file to be used to determine when a watch or warning is in effect during the forecast initialization and verification times. The default file is named **wwpts_us.txt**, which is found in the installed *share/met/tc_data/* directory within the MET build. The **time_offset** string is the time window (in seconds) assigned to the watch/warning. Due to the non-uniform time watches and warnings are issued, a time window is assigned for which watch/warnings are included in the verification for each valid time. The default watch/warn file is static, and therefore may not include warned storms beyond the current MET code release date; therefore users may wish to contact met_help@ucar.edu to obtain the most recent watch/warning file if the static file does not contain storms of interest. +The **watch_warn** field specifies the file name and time applied offset to the **watch_warn** flag. The **file_name** string specifies the path of the watch/warning file to be used to determine when a watch or warning is in effect during the forecast initialization and verification times. The default file is named **wwpts_us.txt**, which is found in the installed *share/met/tc_data/* directory within the MET build. The **time_offset** string is the time window (in seconds) assigned to the watch/warning. Due to the non-uniform time watches and warnings are issued, a time window is assigned for which watch/warnings are included in the verification for each valid time. The default watch/warn file is static, and therefore may not include warned storms beyond the current MET code release date; therefore users may wish to create a post in the `METplus GitHub Discussions Forum `_ in order to obtain the most recent watch/warning file if the static file does not contain storms of interest. .. code-block:: none diff --git a/met/src/libcode/vx_data2d_nccf/nccf_file.cc b/met/src/libcode/vx_data2d_nccf/nccf_file.cc index f948800ef1..4de72e0f44 100644 --- a/met/src/libcode/vx_data2d_nccf/nccf_file.cc +++ b/met/src/libcode/vx_data2d_nccf/nccf_file.cc @@ -2909,6 +2909,11 @@ void NcCfFile::get_grid_from_lat_lon_vars(NcVar *lat_var, NcVar *lon_var, double dlat = lat_values[1] - lat_values[0]; double dlon = rescale_lon(lon_values[1] - lon_values[0]); + mlog << Debug(7) << method_name << " -> lat[0]=" << lat_values[0] + << " lat[" << (lat_counts-1) << "]=" << lat_values[lat_counts-1] + << " dlat=" << dlat << " lon[0]=" << lon_values[0] + << " lon[" << (lon_counts-1) << "]=" << lon_values[lon_counts-1] + << " dlon=" << dlon << "\n"; ConcatString point_nccf; bool skip_sanity_check = get_att_value_string(_ncFile, nc_att_met_point_nccf, point_nccf); diff --git a/met/src/libcode/vx_nc_util/nc_utils.cc b/met/src/libcode/vx_nc_util/nc_utils.cc index d45a49f8b6..eb066df60a 100644 --- a/met/src/libcode/vx_nc_util/nc_utils.cc +++ b/met/src/libcode/vx_nc_util/nc_utils.cc @@ -1433,6 +1433,18 @@ bool get_nc_data(NcVar *var, float *data) { if (NcType::nc_FLOAT == type_id) { var->getVar(data); } + else if (NcType::nc_DOUBLE == type_id) { + int cell_count = 1; + for (int idx=0; idxgetDimCount();idx++) { + cell_count *= get_dim_size(var, idx); + } + double *double_data = new double[cell_count]; + var->getVar(double_data); + for (int idx=0; idxgetDimCount();idx++) { diff --git a/met/src/tools/other/point2grid/point2grid.cc b/met/src/tools/other/point2grid/point2grid.cc index 8f718b0e2a..54df583858 100644 --- a/met/src/tools/other/point2grid/point2grid.cc +++ b/met/src/tools/other/point2grid/point2grid.cc @@ -1930,6 +1930,7 @@ static bool get_grid_mapping(Grid fr_grid, Grid to_grid, IntArray *cellMapping, exit(1); } else if (data_size > 0) { + int last_idx = data_size - 1; float *latitudes = new float[data_size]; float *longitudes = new float[data_size]; status = get_nc_data(&var_lat, latitudes); @@ -1939,6 +1940,13 @@ static bool get_grid_mapping(Grid fr_grid, Grid to_grid, IntArray *cellMapping, latitudes, longitudes, from_lat_count, from_lon_count, skip_times, !fr_grid.get_swap_to_north()); + if (is_eq(latitudes[0], latitudes[last_idx]) || + is_eq(longitudes[0], longitudes[last_idx])) { + mlog << Warning << "\n" << method_name << "same latitude or longitude. lat[0]=" + << latitudes[0] << " lat[" << last_idx << "]=" << latitudes[last_idx] + << " lon[0]=" << longitudes[0] << " lon[" << last_idx << "]=" + << longitudes[last_idx] << "\n\n"; + } } if( latitudes ) delete [] latitudes; if( longitudes ) delete [] longitudes; diff --git a/test/config/WaveletStatConfig_no_thresholds b/test/config/WaveletStatConfig_no_thresholds new file mode 100644 index 0000000000..9b7baef8e0 --- /dev/null +++ b/test/config/WaveletStatConfig_no_thresholds @@ -0,0 +1,139 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Wavelet-Stat configuration file. +// +// For additional information, please see the MET User's Guide. +// +//////////////////////////////////////////////////////////////////////////////// + +// +// Output model name to be written +// +model = "WRF"; + +// +// Output description to be written +// May be set separately in each "obs.field" entry +// +desc = "NA"; + +// +// Output observation type to be written +// +obtype = "MC_PCP"; + +//////////////////////////////////////////////////////////////////////////////// + +// +// Verification grid +// +regrid = { + to_grid = NONE; + method = NEAREST; + width = 1; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Forecast and observation fields to be verified +// +fcst = { + field = [ + { + name = "APCP"; + level = [ "A12" ]; + cat_thresh = []; + } + ]; +} +obs = { + field = [ + { + name = "APCP_12"; + level = [ "(*,*)" ]; + cat_thresh = []; + } + ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Handle missing data +// +mask_missing_flag = NONE; + +//////////////////////////////////////////////////////////////////////////////// + +// +// Decompose the field into dyadic tiles +// +grid_decomp_flag = AUTO; + +tile = { + width = 0; + location = [ + { + x_ll = 0; + y_ll = 0; + } + ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Wavelet to be used for the decomposition +// +wavelet = { + type = HAAR; + member = 2; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Statistical output types +// +output_flag = { + isc = BOTH; +} + +// +// NetCDF matched pairs and PostScript output files +// +nc_pairs_flag = TRUE; +ps_plot_flag = TRUE; + +//////////////////////////////////////////////////////////////////////////////// + +// +// Plotting information +// +met_data_dir = "MET_BASE"; + +fcst_raw_plot = { + color_table = "MET_BASE/colortables/met_default.ctable"; + plot_min = 0.0; + plot_max = 0.0; +} + +obs_raw_plot = { + color_table = "MET_BASE/colortables/met_default.ctable"; + plot_min = 0.0; + plot_max = 0.0; +} + +wvlt_plot = { + color_table = "MET_BASE/colortables/NCL_colortables/BlWhRe.ctable"; + plot_min = -1.0; + plot_max = 1.0; +} + +//////////////////////////////////////////////////////////////////////////////// + +output_prefix = "${OUTPUT_PREFIX}"; +version = "V10.1.0"; + +////////////////////////////////////////////////////////////////////////////////