MET Version 1.1

Release Date:

The MET Version 1.1 was released on July 11, 2008.

Release Notes

Build process

  • Add support for building MET on an IBM and provide a sample IBM Makefile.
  • Add support for use of the GNU gfortran compiler.
  • Supply compiler flags for building MET as a 32-bit executable on 64-bit machines.
  • Reorganize Makefile configuration process.
  • Remove several compilation warning messages.

Library code

  • Several bug fixes.
  • Allow the use of environment variables in the configuration files.
  • Improve the algorithm for computing percentiles to include interpolating between values when necessary.

PB2NC Tool

  • Add "-pbfile" command line option to process multiple PREPBUFR files.
  • Add the "-valid_beg" and "-valid_end" command line options to explicitly set the retention time window.
  • Simplify format of the output NetCDF file by removing variables that are not used by Point-Stat.

ASCII2NC Tool

  • Add new tool for converting ASCII observations to NetCDF for input into Point-Stat.

PCP-Combine Tool

  • Add "-add" command line option to add together accumulation intervals from two Grib files directly.
  • Add "-subtract" command line option to take the difference of accumulation intervals from two Grib files directly.
  • Add "-gc" command line option to allow the user to specify which grib code to use.

Point-Stat Tool

  • Add "-ncfile" command line option to process multiple NetCDF point observation files.
  • Add the ability to dump out the matched pair data (forecast, observation, climatology) directly to ASCII and VSDB files.
  • Add output matched pair (MPR) line type to store matched pair data.
  • Compute bootstrap confidence intervals for the Contingency Table Statistics (CTS) and Continuous Statistics (CNT) line types.
  • Add 5 parameters to the configuration file for options related to computing bootstrap confidence intervals.
  • Add "rank_corr_flag" configuration parameter to disable the computation of Spearman's Rank Correlation Coefficient and Kendall's Tau Correlation Coefficient to improve runtime performance.
  • Add "tmp_dir" configuration parameter to specify the directory where temporary files should be written by Point-Stat.
  • Allow the "mask_grids" configuration parameter to be set to "FULL" to indicate that statistics should be computed over the entire domain.

Grid-Stat Tool

  • Add the ability to perform neighborhood verification.
  • Add 3 parameters to the configuration file for options related to neighborhood verification.
  • Add 3 output line types related to neighborhood verification: Neighborhood Contingency Table Counts (NBRCTC)
    Neighborhood Contingency Table Statistics (NBRCTS)
    Neighborhood Continuous Statistics (NBRCNT)
  • Compute bootstrap confidence intervals for the Contingency Table Statistics (CTS and NBRCTS) and Continuous Statistics (CNT and NBRCNT) line types.
  • Add 5 parameters to the configuration file for options related to computing bootstrap confidence intervals.
  • Add "rank_corr_flag" configuration parameter to disable the computation of Spearman's Rank Correlation Coefficient and Kendall's Tau Correlation Coefficient to improve runtime performance.
  • Add "tmp_dir" configuration parameter to specify the directory where temporary files should be written by Point-Stat.
  • Allow the "mask_grids" configuration parameter to be set to "FULL" to indicate that statistics should be computed over the entire domain.

MODE Tool

  • Add "met_data_dir" configuration parameter to point to the location of static data files MODE needs for plotting. It should be set if MODE is moved from its original installation directory.
  • Enhance the way colorbars are plotted in the PostScript output and add a "stride_length" configuration parameter to indicate how often labels should be plotted alongside the colorbar.

VSDB-Analysis Tool

  • Add job type "vsdb_job_aggr_mpr" to process the matched pair output data from Point-Stat.
  • Add 6 parameters to the configuration file for options related to computing bootstrap confidence intervals.
  • Add "init_hour" configuration parameter to filter out data by the model initialization hour.
  • Add "rank_corr_flag" configuration parameter to disable the computation of Spearman's Rank Correlation Coefficient and Kendall's Tau Correlation Coefficient to improve runtime performance.

MODE-Analysis Tool

  • Add "version" configuration parameter to store the version number.


Known Issues and Fixes

All Recommended Updates (Last Updated 02/12/2009)

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

  • Download the tarfile METv1.1_patches_20090212.tar.gz
  • Copy it into the top-level METv1.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 perform a make clean first.

Summary of Recommended Updates

  • 07/18/2008: Please replace "METv1.1/src/point_stat/point_stat.cc" with the contents of this version: point_stat.cc
  • 08/19/2008: Please replace "METv1.1/lib/vx_wrfdata/vx_wrfdata.cc" with the contents of this version: vx_wrfdata.cc
  • 08/22/2008: Please replace "METv1.1/src/pb2nc/pb2nc.cc" with the contents of this version: pb2nc.cc
  • 08/22/2008: Please replace "METv1.1/src/pb2nc/dumppb.f" with the contents of this version: dumppb.f
  • 09/17/2008: Please replace "METv1.1/src/ascii2nc/ascii2nc.cc" with the contents of this version: ascii2nc.cc
  • 10/14/2008: Please replace "METv1.1/lib/vx_met_util/read_grib.h" with the contents of this version: read_grib.h
  • 10/14/2008: Please replace "METv1.1/vx_met_util/read_grib.cc" with the contents of this version: read_grib.cc
  • 10/14/2008: Please replace "METv1.1/lib/vx_data_grids/lc_grid.cc" with the contents of this version: lc_grid.cc
  • 10/14/2008: Please replace "METv1.1/lib/vx_data_grids/pc_grid.cc" with the contents of this version: pc_grid.cc
  • 10/14/2008: Please replace "METv1.1/vx_data_grids/st_grid.cc" with the contents of this version: st_grid.cc
  • 10/20/2008: Please replace "METv1.1/data/sample_obs/ascii/sample_ascii_obs.txt" with the contents of this version: sample_ascii_obs.txt
  • 10/29/2008: Please replace "METv1.1/lib/vx_gsl_prob/gsl_cdf.cc" with the contents of this version: gsl_cdf.cc
  • 10/31/2008: Please replace "METv1.1/lib/vx_analysis_util/vsdb_line.cc" with the contents of this version: vsdb_line.cc
  • 11/26/2008: Please replace "METv1.1/lib/vx_contable/vx_contable_stats.cc" with the contents of this version: vx_contable_stats.cc
  • 12/22/2008: Please replace "METv1.1/lib/vx_gsl_prob/gsl_cdf.cc" with the contents of this version (UPDATE OF FIX ON 10/29/2008)gsl_cdf.cc
  • 02/12/2009: Please replace "METv1.1/src/pb2nc/pb2nc.cc" with the contents of this version (UPDATE OF FIX ON 08/22/2008)pb2nc.cc

MET Build Process

F2C option when using the GNU gfortran compiler
Posted 07/11/2008

Problem: Users building MET with the GNU gfortran compiler may run into difficulty compiling the PB2NC tool when linking to the F2C library.
Solution: If you are experiencing problems with the F2C library when using the gfortran compiler, try the following steps:

  1. Rebuild BUFRLIB using the -ff2c compiler option for gfortran.
  2. Edit the top-level MET Makefile and include the -ff2c compiler option on the FC_FLAGS line.
  3. Also, empty out the lines for F2C_BASEF2C_INCSF2C_LIBS, and F2C_LIBNAME.
  4. Rebuild MET, being sure perform a make clean first.

F2C option when using the PGI compilers
Posted 09/16/2008

Problem: Users building MET with the PGI compilers may experience error messages when compiling the PB2NC tool similar to:

  • the global scope has no "isalpha"
  • the global scope has no "iscntrl"
  • the global scope has no "isdigit"
  • Error messages continue...

Solution: If you are experiencing these compilation errors for PB2NC, your version of the PGI compilers may not need to link to the F2C library. Try the following steps:

  1. Edit the top-level MET Makefile by removing all references to F2C. Empty out the lines for F2C_BASEF2C_INCSF2C_LIBS, and F2C_LIBNAME.
  2. Rebuild MET, being sure perform a make clean first.

MET Libraries

Bug in the vx_met_util library when parsing grid information from certain Lat/Lon grids.
Posted 10/14/2008

Problem: MET is unable to properly parse Lat/Lon grids in which the Di and Dj increments are not defined in the GDS section of the input GRIB file.
Solution: The fix is updating the read_grib.h and read_grib.cc source files in which the Di and Dj increments are computed from the other grid information.
Please do the following:

  • Replace the file "METv1.1/lib/vx_met_util/read_grib.h" with the contents of read_grib.h
  • Replace the file "METv1.1/lib/vx_met_util/read_grib.cc" with the contents of read_grib.cc
  • Rebuild MET by doing a "make clean" followed by a "make" from the top-level METv1.1 directory

Bug in the vx_met_util and the vx_data_grids libraries when rotating winds from grid-relative to earth-relative.
Posted 10/14/2008

Problem: When MET reads winds fields (UGRD, VGRD, or WDIR) from a GRIB file, it rotates any winds that are grid-relative to be earth-relative. However, there are bugs in this rotation code.
Solution: The fix is updating several source files in which these bugs are fixed. Currently, this wind rotation is supported ONLY for conformal projections (Lambert Conformal and Polar Stereographic) and not non-conformal ones (Lat/Lon and Mercator). Support for the rotating non-conformal projections will be added in METv2.0.
Please do the following:

  • Replace the file "METv1.1/lib/vx_met_util/read_grib.h" with the contents of read_grib.h (same as previous bug fix)
  • Replace the file "METv1.1/lib/vx_met_util/read_grib.cc" with the contents of read_grib.cc (same as previous bug fix)
  • Replace the file "METv1.1/lib/vx_data_grids/lc_grid.cc" with the contents of lc_grid.cc
  • Replace the file "METv1.1/lib/vx_data_grids/pc_grid.cc" with the contents of pc_grid.cc
  • Replace the file "METv1.1/lib/vx_data_grids/st_grid.cc" with the contents of st_grid.cc
  • Rebuild MET by doing a "make clean" followed by a "make" from the top-level METv1.1 directory

Bug in the vx_gsl_prob library for regions containing more than 1,263,131 grid points.
Posted 10/29/2008
*** UPDATED 12/22/2008 ***

Problem: When computing confidence intervals for regions containing more than 1,263,131 grid points, the GSL library routine that MET calls aborts and causes MET to exit abnormally. The bug exists in the GSL library and has been reported to the GSL development team.
Solution: The fix is adding a check to the gsl_cdf.cc source file. If the number of grid points will cause GSL to abort, MET instead uses a normal approximation.
Please do the following:

  • Replace the file "METv1.1/lib/vx_gsl_prob/gsl_cdf.cc" with the contents of gsl_cdf.cc
  • Rebuild MET by doing a "make clean" followed by a "make" from the top-level METv1.1 directory

UPDATE:The GSL Library routine continues to produce unexpected results when the number of points is large. The normal approximation is now used the number of points exceeds 50.

Bug in the vx_contable library when computing the Hanssen-Kuipers discriminant for large numbers of points.
Posted 11/26/2008

Problem: When computing the Hanssen-Kuipers discriminant for large number of points, integer overflow may lead to incorrect results.
Solution: The fix is computing the Hanssen-Kuipers discriminant using doubles rather than integers.
Please do the following:

  • Replace the file "METv1.1/lib/vx_contable/vx_contable_stats.cc" with the contents of vx_contable_stats.cc
  • Rebuild MET by doing a "make clean" followed by a "make" from the top-level METv1.1 directory

Point-Stat Tool

Bug when handling the output flag for the MPR line type
Posted 07/18/2008

Problem: There is a typo in the Point-Stat tool which causes the output flag value set for the MPR line type not to be used properly.
Solution: The fix is updating the point_stat.cc source file. Please replace the file "METv1.1/src/point_stat/point_stat.cc" with the contents of point_stat.cc and rebuild MET.

Grid-Stat Tool

Bug running Grid-Stat over hundreds of thousands of points
Posted 07/31/2008

Problem: There is a bug in the GNU Scientific Library that Grid-Stat calls for computing confidence intervals. When the number of points in your sample is a very large number, (i.e. more than 100,000) you may see the following error message from GSL:
gsl: gammainv.c:105: ERROR: inverse failed to converge
So,lution: The fix for this error will be included in the next release of GSL after version 1.11. As an alternative, you can modify the GSL source code and rebuild. In line 78 of the file, gsl-1.11/cdf/gammainv.c, change the value listed from 32 to 40 and rebuild GSL and MET.

MODE Tool

Segmenation fault from MODE while performing object matching step
Posted 08/19/2008

Problem: There is a minor bug due to roundoff error in the routine which computes the convex hull around objects. In very rare cases, depending on the shape of the object, this code may cause a segmentation fault.
Solution: The fix is updating the vx_wrfdata.cc file in the internal MET vx_wrfdata library. Please replace the file "METv1.1/lib/vx_wrfdata/vx_wrfdata.cc" with the contents of vx_wrfdata.cc and rebuild MET.

PB2NC Tool

Error using the "-dump" option when MET is compiled with gfortran
Posted 08/22/2008

Problem: When MET is compiled with the gfortran compiler, PB2NC errors out when trying to use the "-dump" command line argument.
Solution: The fix is updating the pb2nc.cc and dumppb.f files in the PB2NC source code directory. Please make the following two changes and rebuild MET:

  • Replace the file "METv1.1/src/pb2nc/pb2nc.cc" with the contents of pb2nc.cc
  • Replace the file "METv1.1/src/pb2nc/dumppb.f" with the contents of dumppb.f

Error using the "-pbfile" option to process multiple PrepBufr files and the "-valid_beg" and "-valid_end" options
Posted 02/12/2009

Problem: When the "-pbfile" option is used to process multiple PrepBufr files, PB2NC does not read the correct number of messages for each file. Also, the "-valid_beg" and "-valid_end" options aren't working correctly.
Solution: The fix is updating the pb2nc.cc file in the PB2NC source code directory. Please make the following two changes and rebuild MET:

  • Replace the file "METv1.1/src/pb2nc/pb2nc.cc" with the contents of pb2nc.cc

ASCII2NC Tool

Error verifying vector winds using the output of ASCII2NC
Posted 09/17/2008

Problem: When ASCII2NC reformats ASCII observations of vector winds into NetCDF format, the observations do not match what Point-Stat is expecting. Specifically, Point-Stat expects that each U,V pair point to the same observation header record, but ASCII2NC is writing out a new header record for each observation value.
Solution: The fix is updating the ascii2nc.cc file in the ASCII2NC source code directory. With this fix, ASCII2NC only writes out a new header record when the observation header information actually changes. Please make the following change and rebuild MET:

  • Replace the file "METv1.1/src/ascii2nc/ascii2nc.cc" with the contents of ascii2nc.cc

Typos in the sample ASCII observation file
Posted 10/20/2008

Problem: The sample ASCII observation file distributed with the MET tarball contains typos incorrectly listing observations of mixing ratio with GRIB code 52 which is for relative humidity. These observations of mixing ratio should be encoded with GRIB code 53.
Solution: The fix is updating the sample_ascii_obs.txt data file. Please make the following change (no rebuild of MET is necessary):

  • Replace the file "METv1.1/data/sample_obs/ascii/sample_ascii_obs.txt" with the contents of sample_ascii_obs.txt

VSDB-Analysis Tool

Bug in the vx_analysis_util library when parsing neighborhood line types causing the VSDB-Analysis tool to exit abnormally.
Posted 10/31/2008

Problem: The VSDB-Analysis tool exits abnormally when trying to filter by interpolation method for VSDB neighborhood line types for which no interpolation method is defined.
Solution: The fix is adding a check to the filtering code in the vsdb_line.cc source file.
Please do the following:

  • Replace the file "METv1.1/lib/vx_analysis_util/vsdb_line.cc" with the contents of vsdb_line.cc
  • Rebuild MET by doing a "make clean" followed by a "make" from the top-level METv1.1 directory