MET Version 5.1

Release Date:

The MET Version 5.1 was released on October 26, 2015.

Release Notes

What's New?

  • METv5.1 includes several new tools and enhancements:
    • New Tools: MODE Time Domain (mtd), regrid_data_plane, shift_data_plane, gen_vx_mask, gsid2mpr, and gsidens2mpr
    • Major Enhancments: Automated regridding of data, generalized definition of thresholds, conditional continuous statistics, and the expanded use of climatology data

New Tools

  • The mtd (MODE Time Domain) tool runs on time-series of gridded data fields to define 3-dimensional space-time objects.
  • The regrid_data_plane tool regrids one or more gridded data fields to the user-defined output grid.
  • The shift_data_plane tool reads a single gridded data field and applies a rigid shift defined by source and destination lat/lon values.
  • The gen_vx_mask tool replaces the gen_poly_mask and gen_circle_mask tools and adds support for track masking and accumulating multiple masks together.
  • The gsid2mpr tool reads one or more binary GSI diagnostic files and reformats them into the MPR line type for further analysis by the STAT-Analysis tool.
  • The gsidens2orank tool reads an ensemble of binary GSI diagnostic files and reformats them into the ORANK line type for further analysis by the STAT-Analysis tool.

Enhancements to Existing Tools

  • Distribute the latest set of bugfixes, details not listed here.
  • ASCII2NC
    • Add support for WWSIS data.
    • Add support AERONET observations.
  • MADIS2NC
    • Add support for acarsProfiles data, as provided to MET by AER.
  • TC-Pairs
    • Reduce the minimum number of required input ATCF columns from 18 to 8.
    • Add 16 columns to the TCST output line type for the ADECK and BDECK values for RADP, RRP, MRD, GUSTS, EYE, DIR, SPEED, and DEPTH.
  • TC-Stat
    • Add rapid intensification and weakening (RIRW) event category job type.
    • Replace references to "rapid_inten" with "rirw" to shorten command line and config file options.
    • Redefined config file options landfall _beg and landfall_end as timestring in HH[MMSS] format rather than an integer number of seconds, but make it backward compatible. Interpret integers as seconds and strings as timestrings.
    • Add support for reading and filtering extra columns of data at the end of the input ASCII files.
  • Stat-Analysis
    • When passed a directory, search for .stat files. When passed a file name, read it regardless of the extension.
    • Add support for reading and filtering extra columns of data at the end of the input ASCII files.
    • Add new ramp job type based on DYDT logic or the swinging door algorithm.
    • Add swinging door algorithm to the new vx_time_series library.
    • Add -out_stat output to write aggregated actual STAT lines.
    • Add -set_hdr option to explicitly set output STAT header column values.
    • Add support for ORANK to SSVAR aggregate_stat job type.
    • Add -out_cnt_logic and -out_wind_logic job command options to handle conditional continuous verification.
    • Add -out_thresh job command option as a shortcut for -out_fcst_thresh and -out_obs_thresh.
    • Add -out_wind_thresh job command option as a shortcut for -out_fcst_wind_thresh and -out_obs_wind_thresh.
    • Add -column_thresh job command option to be consistent with other tools, but retain -column_min, -column_max, and -column_eq for backward compatibility.
  • PCP-Combine
    • Rename -varname command line option to -name to be consistent with other MET tools.
    • Rename -config command line option to -field to be consistent with other MET tools. Silently support -config for backward compatibility.
  • Grid-Stat
    • Add SAL1L2 and VAL1L2 output line types.
  • Series-Analysis
    • Add SAL1L2 output statistics types.
  • Automated regridding
    • Add automated regridding support to the MET statistics tools to regrid to verify on the forecast grid, observation grid, or an independent, user-defined grid.
    • Add regrid dictionary to the config files to define how regridding should be performed.
    • Add vx_regrid library to support automated regridding.
  • Generalized thresholding
    • Generalized definition of thresholds across all the MET tools. Use && or || to string together event definition logic.
  • Conditional continuous verification
    • Add support for conditional continuous verification to Point-Stat, Grid-Stat, Series-Analysis.
    • Add cnt_thresh and cnt_logic config file options to specify what filtering thresholds should be applied.
  • Climatology Data
    • Add support for reading climatology data to Point-Stat, Grid-Stat, Ensemble-Stat, and Series-Analysis.
    • Add climo_mean dictionary to the config files for these tools to specify the climatology data to be read.
    • Remove the -climo command line option from Point-Stat since the new functionality replaces the old.
    • Add anomaly correlation (ANOM_CORR) to the CNT line type.
    • Add the climatology value (CLIMO) to ORANK line type.
    • Add the climatology-based Brier score (BRIERCL) and the Brier Skill Score (BSS) to the PSTD line type.
    • Add the Continuous Ranked Probability Skill Score (CRPSS) to the RHIST line type.
  • ConfigConstants
    • Add exit_on_warning option. If true, any warning message results in an error and returning of bad status.
    • Add output_precision option to specify the number of non-zero decimal places to be written to ASCII output files.
  • File I/O Changes
    • Improved logic when writing large unixtime values to NetCDF files. Write them as strings rather than integers, which caused integer overflow.
    • Better handling of timing information and lat/lon dimensions from CF-compliant NetCDF files.
    • When writing gridded NetCDF output, write lat/lon variables for lat/lon grids as 1-dimensional. For all other projection types, continue writing 2-dimensional lat/lon variables.
    • Add obtype configuration entry to Grid-Stat, Ensemble-Stat, Wavelet-Stat, MODE, and Series-Analysis. It's string value is written to the output files.
    • Add Rscript to scripts directory named gspairs2mpr.R to read Grid-Stat NetCDF matches pairs and write MPR output lines.
    • Update the vx_data2d_pinterp library to also read the output of the wrf_interp utility.
  • Summary of changes to existing line types:
    • CNT: Add columns for anomaly correlation (ANOM_CORR), mean error squared (ME2), and the mean squared error skill score (MSESS) plus confidence limits
    • PSTD: Add columns for climatological brier score (BRIERCL) and brier skill score (BSS).
    • ORANK: Add columns for ensemble mean (ENS_MEAN) and climatology (CLIMO).
    • RHIST: Add column for continuous ranked probability skill score (CRPSS).
    • TCMPR: Add 16 columns for the ADECK and BDECK values for RADP, RRP, MRD, GUSTS, EYE, DIR, SPEED, and DEPTH.


Known Issues and Fixes

All Recommended Updates (Last Updated 06/16/2016)

Retrieve all of the recommended updates for METv5.1 in a tarfile:

  • Download the tarfile met-5.1_patches_20160616.tar.gz
  • Copy it into the top-level met-5.1 directory.
  • Uncompress and untar the file. Please note that the new version of the files in the tarball will overwrite the original version of those files. Any changes you may have made will be lost.
  • Rebuild MET, being sure to run make clean and configure first.

Summary of Recommended Updates

  • 06/16/2016: Fix computation of the Brier Skill Score.
  • 06/16/2016: Fix MODE bug when PostScript and NetCDF output are disabled.
  • 05/25/2016: Fix Gen-Vx-Mask -value option to allow for negative numbers.
  • 05/23/2016: Fix STAT-Analysis error for too many open files.
  • 05/23/2016: Fix STAT-Analysis output for equality-type (==) thresholds.
  • 04/18/2016: Fix STAT-Analysis filtering by threshold columns.
  • 04/12/2016: Fix definition of NCEP grids 236 and 237.
  • 03/14/2016: Fix parsing of Lambert Conformal grid information for CF-Compliant NetCDF files.
  • 02/10/2016: Fix along and cross-track error computations in TC-Pairs for tracks straddling the international date line.
  • 01/29/2016: Fix MODE-Analysis "-lookin" option for directories.
  • 12/23/2015: Fix STAT-Analysis parsing of level strings with "*,*".
  • 12/18/2015: Fix parsing of initialization time from CF-Compliant NetCDF files.
  • 12/18/2015: Correct definition of NCEP Grid 224.
  • 12/16/2015: Fix computation and aggregation of CRPSS.
  • 12/03/2015: Correct description in user's guide of the INTERSECTION_OVER_AREA MODE output column.
  • 11/06/2015: Fix modis_regrid bug in the handling of bad data.
  • 11/06/2015: Add warning when Dx != Dy for Lambert Conformal and Polar Stereographic grids.
  • 11/05/2015: Fix madis2nc error for missing observation times.
  • 11/05/2015: Fix MODE wrapping of object colors.

Details

Fix computation of the Brier Skill Score.
Posted 06/16/2016

Problem:The Brier Skill Score included in the PSTD line type is being computed incorrectly. The equation, (BSf - BSc)/BSc, where BSf and BSc are the forecast and climatological Brier Scores, is missing a negative sign in the denominator.
Solution: The fix is to correct the equation as 1.0 - (BSf / BSc).
Update: met-5.1/src/libcode/vx_statistics/met_stats.cc

Fix MODE bug when PostScript and NetCDF output are disabled.
Posted 06/16/2016

Problem:When both PostScript (ps_plot_flag) and NetCDF (nc_pairs_flag) output from MODE are disabled is the configuration file, the matching/merging logic is not applied. The result is an output object statistics file filled with 0 and NA values. This issue is caused by a spurious check in the processing logic.
Solution: The fix is to remove this check and apply the matching/merging logic requested by the user in the configuraiton file.
Update: met-5.1/src/tools/core/mode/mode_exec.cc

Fix Gen-Vx-Mask -value option to allow for negative numbers.
Posted 05/25/2016

Problem: Passing a negative number for the -value command line option results in a parsing error from the CommandLine class.
Solution: The fix is to set a flag which enables the use of numbers on the command line.
Update: met-5.1/src/tools/other/gen_vx_mask/gen_vx_mask.cc

Fix STAT-Analysis error for too many open files.
Posted 05/23/2016

Problem: The MET vx_config library fails to close the input configuration file after parsing its contents. If called too many times, the maximum number of open files limit is eventually reached resulting in a runtime error. For example, using the -fcst_thresh, -obs_thresh, or -cov_thresh job filtering options for STAT-Analysis and passing it 66,000 lines to process will likely cause this error to occur.
Solution: The fix is to close each configuration file after it has been parsed.
Update: met-5.1/src/basic/vx_config/config_file.cc

Fix STAT-Analysis output for equality-type (==) thresholds.
Posted 05/23/2016

Problem: STAT-Analysis writes equality-type thresholds to its output using a single equal sign (=) when it should use a double equal sign (==). The single equal sign (=) results in a parsing error if passed back to STAT-Analysis as input.
Solution: The fix is to update the equality-type string constant.
Update: met-5.1/src/basic/vx_config/threshold.h

Fix parsing of Lambert Conformal grid information for CF-Compliant NetCDF files.
Posted 03/14/2016

Fix STAT-Analysis filtering by threshold columns.
Posted 04/18/2016

Problem: When using the fcst_thresh, obs_thresh, or cov_thresh filtering options for STAT-Analysis, passing input data which contains a comma-separated list of thresholds in the corresponding header columns results in a parsing error. The implementation of thresholds was updated in version 5.1 to support much more flexible thresholding logic but this use case was overlooked.
Solution: The fix is to update STAT-Analysis as follows. First, parse the contents of the FCST_THRESH, OBS_THRESH, and COV_THRESH columns into arrays of thresholds rather than using the single threshold data type. Parse the columns as comma-separated lists of thresholds. Second, if the column contains a single threshold, check that the threshold is in the list specified by the user. If the column contains multiple thresholds, check that it exactly matches the list specified by the user. Third, update the threshold equality logic to check that both the threshold type and values match.
Update: met-5.1/src/libcode/vx_analysis_util/stat_line.h
Update: met-5.1/src/libcode/vx_analysis_util/stat_line.cc
Update: met-5.1/src/libcode/vx_analysis_util/stat_job.cc
Update: met-5.1/src/basic/vx_config/threshold.cc

Fix definition of NCEP grids 236 and 237.
Posted 04/12/2016

Problem: The definitions of NCEP grids 236 and 237 were incorrect in the vx_grid library. Reference longitude values were defined in degrees east while the vx_grid library was expecting degrees west. This caused the grids to be defined on the wrong side of the globe.
Solution: The fix is to updated the definition of grids 236 and 237.
Update: met-5.1/src/libcode/vx_grid/find_grid_by_name.cc

Fix parsing of Lambert Conformal grid information for CF-Compliant NetCDF files.
Posted 03/14/2016

Problem: The vx_grid library fails to rescale one of the reference longitude values prior to using it in the Lambert Conformal grid computations.
Solution: The fix is to put all longitude values into a standard prior to computing the Lambert Conformal grid parameters.
Update: met-5.1/src/libcode/vx_grid/lc_grid.cc

Fix along and cross-track error computations in TC-Pairs for tracks straddling the international date line.
Posted 02/10/2016

Problem: The code which computes along and cross-track errors does not handle tracks straddling the international date line correctly. The resulting errors can be extremly large.
Solution: The fix is to check for this condition and rescale the longitudes from (-180, 180) to (0, 360) which results in correct along and cross-track error values.
Update: met-5.1/src/tools/tc_utils/tc_pairs/tc_pairs.cc

Fix MODE-Analysis "-lookin" option for directories.
Posted 01/29/2016

Problem: Code streamlining in the met-5.1 release inadventently broke the ability of MODE-Analysis to search directories specified using the "-lookin" command line option for MODE output files ending with "_obj.txt".
Solution: The fix is to update the logic in the MET library code to successfully find files ending with "_obj.txt".
Update: met-5.1/src/basic/vx_util/get_filenames.cc

Fix STAT-Analysis parsing of level strings with "*,*".
Posted 12/23/2015

Problem: When processing gridded NetCDF data, the MET tools write the level information in the output FCST_LEV and/or OBS_LEV columns as strings containg commas, such as "0,*,*". Passing these files to STAT-Analysis and using the -fcst_lev and/or -obs_lev options to specify values for these columns is problematic since STAT-Analysis processes strings as comma-separated lists. Multiple values are separated by commas.
Solution: When processing strings as a comma-separated lists, add a special case to check for the presence of the string "*,*". If present, do not split the string by commas.
Update: met-5.1/src/basic/vx_log/string_array.cc

Fix parsing of initialization time from CF-Compliant NetCDF files.
Posted 12/18/2015

Problem: For CF-compliant NetCDF files, MET parses the model initialization time from the "forecast_reference_time" variable. However, it assumes the units to be unixtime (seconds since January 1, 1970).
Solution: Parse the "units" attribute from the "forecast_reference_time" variable and use them to set the model initialization time correctly.
Update: met-5.1/src/libcode/vx_data2d_nccf/nccf_file.cc

Correct definition of NCEP Grid 224.
Posted 12/18/2015

Problem: The definition of NCEP Grid 224 (65 x 65 Southern Polar Sterographic) in the MET software is not correct.
Solution: Correct the definition to match NCEP's usage.
Update: met-5.1/src/libcode/vx_grid/find_grid_by_name.cc

Fix computation and aggregation of CRPSS.
Posted 12/16/2015

Problem: The Ensemble-Stat tool is computing CRPSS incorrectly. It is computing the forecast CRPS value correctly but computing the climatological CRPS value wrong which results in an incorrect CRPSS value. Also, the Stat-Analysis tool is not aggregating CRPSS across multiple cases and just writes NA to the output. It fails to compute CRPSS when aggregating multiple RHIST lines together and when converting input ORANK lines to an output RHIST line.
Solution: Correct the computataion of the climatological CRPS value and thus CRPSS. Also enhance Stat-Analysis to parse CRPS and CRPSS from each RHIST line. Use those values to back out the climatological CRPS value and aggregate both the forecast and climatological CRPS values over multiple RHIST lines as weighted averages. Lastly, compute an aggregated CRPSS value using those weighted averages. The fixes for this bug affect many files.
Update: met-5.1/src/tools/core/ensemble_stat/ensemble_stat.cc
Update: met-5.1/src/libcode/vx_stat_out/stat_columns.cc
Update: met-5.1/src/libcode/vx_statistics/pair_data_ensemble.h
Update: met-5.1/src/libcode/vx_statistics/pair_data_ensemble.cc
Update: met-5.1/src/tools/core/stat_analysis/stat_analysis_job.cc
Update: met-5.1/src/tools/core/stat_analysis/parse_stat_line.cc
Update: met-5.1/src/tools/core/stat_analysis/aggr_stat_line.h
Update: met-5.1/src/tools/core/stat_analysis/aggr_stat_line.cc

Correct description in user's guide of the INTERSECTION_OVER_AREA MODE output column.
Posted 12/03/2015

Problem: The user's guide incorrectly describes this value as the object intersection area divided by the union area.
Solution: Correct the definition as the intersection area divided by the minimum of the forecast and observation object areas.
Update: met-5.1/doc/MET_Users_Guide.pdf

Fix modis_regrid bug in the handling of bad data.
Posted 11/06/2015

Problem: The output of the modis_regrid tool is computed as the average of the input MODIS values falling within each grid box. However, it fails to check for bad data values (-9999) and includes them in the computation of the average. This produces incorrect results along the edge of the valid MODIS data.
Solution: The fix is to check for bad data and only compute output values when all MODIS values falling within the grid box are valid.
Update: met-5.1/src/tools/other/modis_regrid/data_averager.cc

Add warning when Dx != Dy for Lambert Conformal and Polar Stereographic grids.
Posted 11/06/2015

Problem: MET currently only supports Lambert Conformal and Polar Stereographic grids with identical X and Y spacing. When passed a GRIB1 or GRIB2 file where Dx != Dy, MET silently uses the Dx value which produces unexpected results.
Solution: The temporary fix is adding a warning message when this situation is detected. However, support for Lambert Conformal and Polar Stereographic grids with Dx != Dy will be added in the next release.
Update: met-5.1/src/libcode/vx_data2d_grib/grib_utils.cc
Update: met-5.1/src/libcode/vx_data2d_grib2/data2d_grib2.cc

Fix madis2nc error for missing observation times.
Posted 11/05/2015

Problem: The madis2nc tool is not checking the fill value when reading observation valid times. Running certain MESONET files which use the fill value through madis2nc results in this error:
NetCDF: Start+count exceeds dimension bound 
Solution: The fix is the check the fill value and skip any observations whose time is set to that value.
Update: met-5.1/src/tools/other/madis2nc/madis2nc.cc

Fix MODE wrapping of object colors.
Posted 11/05/2015

Problem: When creating PostScript output, MODE assigns colors to indicate matching objects between the forecast and observed fields. When the number of colors required exceeds the number of object colors defined in the object color table, MODE should print a warning message and wrap the color table. Instead, it is printing an erroneous warning message and not properly wrapping the colors.
Solution: The fix is to apply the correct color wrapping logic.
Update: met-5.1/src/libcode/vx_shapedata/engine.cc
Update: met-5.1/src/tools/core/mode/mode_ps_file.cc