Retrieve all of the recommended updates for METv7.0 in a tarfile:
Problem: Any thresholds which include '&&' or '||' are called complex thresholds in MET. If you have used complex thresholds in your MET config files, they will show up in the .stat output files, often the FCST_THRESH and/or OBS_THRESH output columns. If you then run the STAT-Analysis tool using the "-fcst_thresh" or "-obs_thresh" job command options to filter those columns, the filtering will have no apparent effect. The logic for comparing the equality of two complex thresholds is insufficient. It always results in true.
Solution: The fix is enhancing the logic for checking the equality of thresholds. For complex thresholds, first convert them to strings and check for equality of those strings. For simple thresholds, use the existing logic, which is slightly faster.
Problem: met-7.0 added support for applying circular neighborhoods, and the computation of the fractional coverage fields was redone to support them. However, the updated code recomputes the fractional coverage value from scratch for each grid point. This approach is roughly 5 times slower than the implementation in previous releases.
Solution: The fix is enhancing the underlying data structures and reimplementing the computation of the fractional coverage fields using the algorithm from previous releases. Rather than recomputing the fractional coverage value from scratch for each grid point, keep track of running sums. For each step, subtract the points from the trailing edge and add the points from the leading edge. This fix produces identical results but runs about as quickly as earlier releases.
Problem: Grid-Stat populates a PairDataPoint object to prepare data for the computation of statistics. That object incrementally builds up the memory it requires which is exceedingly slow for a large number of points.
Solution: Add a one line fix to pre-allocate the memory that object requires. This fix improves the runtime for a sample test case from 18 minutes down to about 1 minute.
Problem: A user reported a compilation error through MET-Help from recent GNU compilers in calls to the make_temp_file_name() function.
Solution: Very minor changes to three file to fix compilation errors.
Problem: When multiple censoring thresholds are defined, the output from the first censor is used as the input to the next. Iteratively applying the censoring logic in this way may lead to unexpected results, depending on the thresholds and replacement values chosen.
Solution: Loop through the censoring logic for each data value and stop after finding the first matching censor threshold. Apply this change to the processing of both gridded data and point observations.
Problem: The Point-Stat and Grid-Stat tools mistakenly consider the number of probabilistic thresholds when determining the number of columns needed for the MCTC output line type. This leads to the AsciiTable class creating many extra unneeded output columns. The results are not incorrect, but the tools may run much slower when verifying probabilities.
Solution: Revert back to the logic used in met-6.1.
Problem: The interp12 logic doesn't work correctly for ATCF ID's ending with "32". For example, ATCF ID "E032" gets converted to "E0I" when it should be "E02I".
Solution: One line fix correcting the renaming logic.
Problem: MET is unable to distinguish between multiple records of MXUPHL from a GRIB2 file.
Solution: Update the vx_data2_grib2 library to process this data.
Problem: When STAT-Analysis reads a single VL1L2 input line and writes a VCNT line, the resulting MSVE and RMSVE statistics are zero.
Solution: Compute the MSVE and RMSVE statistics using the partial sums rather than the U/V matched pairs.
Problem: The last two header columns of the ORANK output line type are incorrectly listed as "ENS_SPREAD ENS_MEAN" when they should be "CLIMO ENS_SPREAD".
Solution: Correct the header columns.
Problem: When STAT-Analysis reads a single VL1L2 input line and writes a VCNT line, the resulting statistics are all zero. The job fails to compute vector statistics for a single input VL1L2 line.
Solution: After parsing each input VL1L2 line call a member function to compute the vector statistics.
Problem: Processing large input file with PB2NC results in a NetCDF error at runtime ... netCDF::exceptions::NcBadId
Solution: Update PB2NC to correctly process these large files.
Problem: met-7.0 introduced a bug in grid_stat for reading beyond the end of an array which may lead to a segmentation fault. The runtime error may occur sporadically, depending on how variables are initialized. The bug arose when making the defition of the output_flag configurable for each verification task.
Solution: Correct the code to reference the top-level output_flag rather than one for the i-th verification task.
Copyright © 2021. All rights reserved.