METplus Release Notes

Users can view the Stages of the METplus Release Cycle section of the Release Guide for descriptions of the development releases (including beta releases and release candidates), official releases, and bugfix releases for the METplus Components.

METplus Wrappers Release Notes

When applicable, release notes are followed by the GitHub issue number which describes the bugfix, enhancement, or new feature: https://github.com/dtcenter/METplus/issues

METplus Version 4.1.3 Release Notes (2022-07-27)

  • Bugfixes:

    • Set Point2Grid -adp and -qc arguments properly (METplus #1623)

    • Reconcile setting of METPLOTPY_BASE for use cases (METplus #1713)

    • Allow NA value for <TOOL-NAME>_CLIMO_[MEAN/STDEV]_DAY_INTERVAL (METplus #1653)

    • Add missing brackets around list variable values for StatAnalysis wrapper (METplus #1641)

    • Phase Diagram use case writes all output into OUTPUT_BASE instead of INPUT_BASE (METplus #1706)

METplus Version 4.1.2 Release Notes (2022-05-16)

  • Bugfixes:

    • Add logic to catch error thrown when wrapper has been disabled and update documentation to include instructions to disable UserScript wrapper (METplus-Internal #33)

METplus Version 4.1.1 Release Notes (2022-04-21)

  • Bugfixes:

    • Fix reset of arguments for some wrappers (i.e. GenEnsProd) after each run (#1555)

    • Fix PCPCombine extra options removal of semi-colon (#1534)

    • Fix inconsistent Weather Regime classification numbers when the forecast is reordered (#1553)

METplus Version 4.1.0 Release Notes (2022-03-14)

  • Enhancements:

    • General:

      • Add support for setting control members in EnsembleStat and GenEnsProd (#1236)

      • Create an Amazon AMI containing all METplus components (#506)

      • Modify wrappers that use wrapped MET config files to default to parm/met_config versions if unset (#931)

      • Add support for setting hss_ec_value in MET config files (#951)

      • Added support for setting a dictionary value for time_summary.width (#1252)

      • Properly handle list values that include square braces (#1212)

      • Update wrapped MET config files to reference MET_TMP_DIR in tmp value (#1101)

      • Add support for setting INIT_LIST and VALID_LIST for irregular time intervals (#1286)

      • Support setting the OMP_NUM_THREADS environment variable (#1320)

      • Add support for commonly changed MET config variables (#896)

      • Prevent wildcard character from being used in output file path (#1291)

      • Add support for setting file_type for fcst/obs for applications that process gridded data (#1165)

      • Enhance logic for setting mask.poly to allow MET list characters (square braces and semi-colon) (#966)

      • Add support for new climo_cdf.direct_prob flag (#1392)

      • Implement various enhancements to climatology settings (#1247)

      • Enhance logic to set climatology info for Python embedding (#944)

      • Updated logic for handling _CLIMO_MEAN_FIELD variables for specifying climatology fields (#1021)

      • Incorporate basic zonal and meridional means into METplus (#1230)

      • Add support for explicitly setting file list file paths in wrappers that support multiple input files (#1289)

      • Add support for setting -out argument in TCStat and StatAnalysis wrappers (#1102)

    • PointStat:

      • Make output_flag.orank configurable for Point-Stat (#1103)

      • Added support for setting obs_quality_inc/exc in PointStat (#1213)

    • GridStat:

      • Add Grid-Stat configuration options for distance_map dictionary (#1089)

    • EnsembleStat:

      • Add support for setting grid_weight_flag in EnsembleStat (#1369)

      • Fix logic to use fcst dictionary if ens dictionary is not set in EnsembleStat wrapper (#1421)

      • Add support for probabilistic verification to the Ensemble-Stat wrapper (#1464)

    • GenEnsProd:

      • Add support for the normalize option to the Gen-Ens-Prod wrapper (#1445)

    • TCPairs:

      • Enhance TC-Pairs wrapper to make valid_inc, valid_exc, and write_valid configurable options (#1069)

      • Improve logic of TCPairs wrapper (#749)

      • Enhance TCPairs to loop by valid time and allow looping when LOOP_ORDER = processes (#986)

    • TCGen:

      • Enhance TCGen wrapper to add support for new configurations (#1273)

    • SeriesAnalysis:

      • Enhance SeriesAnalysis wrapper to allow different field info values for each file in a list (#1166)

      • Add support for probability field threshold in SeriesAnalysis (#875)

    • RegridDataPlane:

      • Add support for extra field options in RegridDataPlane wrapper (#924)

    • PCPCombine:

      • Improve PCPCombine derive mode logic to skip lookback (#928)

      • Add support for using filename templates for defining input level in PCPCombine (#1062)

      • Add option to PCPCombine to force using 0 hr accum in subtract mode (#1368)

    • GenVxMask:

      • Update GenVxMask wrapper to require setting -type (#960)

    • UserScript:

      • Enhance UserScript to get a list of files that match the run times instead of using a wildcard (#1002)

    • ExtractTiles:

      • Enhance ExtractTiles using MTD input to properly match times (#1285)

    • TCMPRPlotter:

      • Improvements to TCMPRPlotter wrapper logging and output control (#926)

      • Add option to TCMPRPlotter to pass in directory to tc_stat instead of individual files (#1057)

      • Add option to pass in the input directory to TCMPRPlotter instead of finding all tcst files and passing the list (#1084)

    • CyclonePlotter:

      • Update CyclonePlotter for offline/HPC usage (#933)

      • CyclonePlotter, create options to format output grid area to user-desired area (#1091)

      • CyclonePlotter, connected lines run over the Prime Meridian (#1000)

    • Use Cases:

      • Add stat_analysis to the Blocking and Weather Regime processing (#1001)

      • Modify user diagnostic feature relative use case to use MetPy Python package (#759)

      • Reorganize the Cryosphere and Marine and Coastal use case categories into one group (#1200)

      • Add harmonic pre-processing to the RMM use case (#1019)

  • New Wrappers:

  • New Use Cases:

    • MET Tool Wrapper:

      • PointStat: Python Embedding for Point Observations (#1490)

      • IODA2NC (#1204)

      • GenEnsProd (#1180, #1266)

      • GFDLTracker for TropicalCyclone (#615)

      • GFDLTracker for TC Genesis (#616)

      • GFDLTracker for Extra-TC Tracking (#617)

    • Marine and Cryosphere:

      • GridStat_fcstRTOFS_obsOSTIA_iceCover (#834)

      • Satellite verification of sea surface temperature (GHRSST) against RTOFS output (#1004)

      • Satellite verification of sea surface salinity: SMOS vs RTOFS output (#1116)

      • Satellite verification of sea surface salinity: AVISO vs RTOFS output HYCOM climo (#1318)

      • Satellite verification of sea surface salinity: SMAP vs RTOFS output (#1216)

    • Medium Range:

      • Feature Relative using MTD output for feature centroid lat/lon (#641)

    • Precipitation:

      • Precipitation-type comparison across 3 models (#1408)

    • Seasonal to Subseasonal (S2S):

      • UserScript_fcstGFS_obsERA_OMI (#892)

      • UserScript_fcstGFS_obsERA_PhaseDiagram (#1019)

      • UserScript_fcstGFS_obsERA_RMM (#892)

      • RMM and OMI (driver scripts) (#892)

    • Tropical Cyclone and Extra Tropical Cyclone (tc_and_extra_tc):

      • TC Verification Compare ADECK vs BDECK (#911)

      • TCGen Verify Deterministic Genesis Forecasts and Probabilities from ATCF e-deck files (#1274)

  • Bugfixes:

    • Fix read of PB2NC_FILE_WINDOW_[BEGIN/END] configuration variables (#1486)

    • Fix use of current field info in output prefix when using process list instances (#1471)

    • Fix logic to create instances of other wrappers within wrappers to avoid modifying global configurations (#1356)

  • Documentation:

    • Add list of METplus statistics to documentation (#1049)

    • Update documentation to reference GitHub Discussions instead of MET Help (#956)

    • Fix installation instructions in User’s Guide (#1067)

    • Add instructions to update old METplus configuration files that reference user-defined wrapped MET config files (#1147)

  • Internal:

    • Improve approach to obtain additional python packages needed for some use cases (#839)

    • Make updates to the Release Guide (#935)

    • Clean up GitHub wiki broken links and out-of-date information (#237)

    • Add option to override MET version used for automated tests (#936)

    • Transition Community and Developer Support to Github Discussions (#932)

    • Add documentation about the Release Guide and Verification Datasets Guide (#874)

    • Create guidance for memory-intensive use cases, introduce Python memory profiler (#1183)

    • Identify code throughout METplus components that are common utilities (#799)

    • Add definitions to the Release Guide for the stages of the release cycle (#934)

    • Document Continous Integration Functionality in the METplus Contributor’s Guide (#675)

    • Update Contributor’s Guide for new removing/adding data protocols (#1227)

    • Add recording of Python packages to Adding Use Cases documentation (#1374)

    • Remove public-facing access to outdated use case categories (Cryosphere, marine_and_coastal) (#1226)

METplus Version 4.0.0 Release Notes (2021-05-10)

  • Bugfixes:

    • Changed default values in wrapped MET config files to align with actual default values in MET config files (Reconcile Default Values)

    • Fix bug causing GridStat fatal error (#740)

    • Add support for comparing inputs using a mix of python embedding and non-embedding (#684)

    • Fix quick search links (#687)

    • Align the user guide with get_relativedelta() in time_util.py (#579)

    • Fix CyclonePlotter cartopy mapping issues (#850, #803)

  • Enhancements:

    • Rename master_metplus.py script to run_metplus.py (#794)

    • Update setting of environment variables for MET config files to add support for all to METPLUS_ vars (#768)

    • Add support for many commonly changed MET config variables (#779, #755, #621, #620)

    • Add support for a UserScript wrapper (#723)

    • Create use case subdirectories (#751)

    • Implement [INIT/VALID]EXCLUDE for time looping (#307)

    • Add files to allow installation of METplus wrappers as a Python package (beta) (#282)

    • Generate PDF of User’s Guide (#551)

    • Add support for MET tc_gen changes in METplus (#871, (#801)

    • Add support for 2 fields with same name and different levels in SeriesBy cases (#852)

    • Enhance PCPCombine wrapper to be able to process multiple fields in one command (#718)

    • Update TCStat config options and wrappers to filter data by excluding strings (#857)

    • Support METplus to run from a driver script (#569)

    • Refactor field info parsing to read once then substitute time info for each run time (#880)

    • Enhance Python embedding logic to allow multiple level values (#719)

    • Enhance Python embedding logic to allow multiple fcst and obs variable levels (#708)

    • Add support for a group of files covering multiple run times for a single analysis in GridDiag (#733)

    • Enhance ascii2nc python embedding script for TC dropsonde data (#734, #731)

    • Support additional configuration variables in EnsembleStat (#748)

    • Ensure backwards compatibility for MET config environment variables (#760)

    • Combine configuration file sections into single config section (#777)

    • Add support for skipping existing output files for all wrappers (#711)

    • Add support for multiple instance of the same tool in the process list (#670)

    • Add GFDL build support in build_components (#614)

    • Decouple PCPCombine, RegridDataPlane, and GridStat wrappers behavior (#602)

    • StatAnalysis run without filtering or config file (#625)

    • Enhance User Diagnostic Feature Relative use case to Run Multiple Diagnostics (#536)

    • Enhance PyEmbedIngest to run RegridDataPlane over Multiple Fields in One Call (#549)

    • Filename templates that have other arguments besides a filename for python embedding fails (#581)

    • Add more logging to tc_gen_wrapper (#576)

    • Prevent crash when improperly formatted filename template is used (#674)

  • New Wrappers:

    • PlotDataPlane

    • UserScript

    • METdbLoad

  • New Use Cases:

    • Air Quality and Comp: EnsembleStat_fcstICAP_obsMODIS_aod

    • Medium Range: UserScript_fcstGEFS_Difficulty_Index

    • Convection Allowing Models: MODE_fcstFV3_obsGOES_BrightnessTemp

    • Convection Allowing Models: MODE_fcstFV3_obsGOES_BrightnessTempObjs

    • Convection Allowing Models: GridStat_fcstFV3_obsGOES_BrightnessTempDmap

    • Data Assimilation: StatAnalysis_fcstHAFS_obsPrepBufr_JEDI_IODA_interface

    • Medium Range: SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics

    • Precipitation: EnsembleStat_fcstWOFS_obsWOFS

    • Seasonal to Subseasonal: TCGen_fcstGFSO_obsBDECKS_GDF_TDF

    • Seasonal to Subseasonal: UserScript_fcstGFS_obsERA_Blocking

    • Seasonal to Subseasonal: UserScript_obsERA_obsOnly_Blocking

    • Seasonal to Subseasonal: UserScript_obsERA_obsOnly_WeatherRegime

    • Seasonal to Subseasonal: UserScript_obsPrecip_obsOnly_Hovmoeller

    • Seasonal to Subseasonal: UserScript_obsPrecip_obsOnly_CrossSpectraPlot

    • TC and Extra TC: CyclonePlotter_fcstGFS_obsGFS_OPC

    • TC and Extra TC: UserScript_ASCII2NC_PointStat_fcstHAFS_obsFRD_NetCDF

    • TC and Extra TC: GridStat_fcstHAFS_obsTDR_NetCDF

    • Marine and Coastal: PlotDataPlane_obsHYCOM_coordTripolar

    • MET Tool Wrapper: METdbLoad/METdbLoad

    • MET Tool Wrapper: PlotDataPlane/PlotDataPlane_grib1

    • MET Tool Wrapper: PlotDataPlane/PlotDataPlane_netcdf

    • MET Tool Wrapper: PlotDataPlane/PlotDataPlane_python_embedding

    • MET Tool Wrapper: GridStat/GridStat_python_embedding

    • MET Tool Wrapper: PointStat/PointStat_python_embedding

    • MET Tool Wrapper: MODE/MODE_python_embedding

    • MET Tool Wrapper: PyEmbedIngest_multi_field_one_file

  • Internal:

    • Append semi-colon to end of _OPTIONS variables if not found (#707)

    • Ensure all wrappers follow the same conventions (#76)

    • Refactor SeriesBy and ExtractTiles wrappers (#310)

    • Refactor SeriesByLead wrapper (#671, #76)

    • Add the pull request approval process steps to the Contributor’s Guide (#429)

    • Remove jlogger and postmsg (#470)

    • Add unit tests for set_met_config_X functions in CommandBuilder (#682)

    • Define a common set of GitHub labels that apply to all of the METplus component repos (#690)

    • Transition from using Travis CI to GitHub Actions (#721)

    • Improve workflow formatting in Contributers Guide (#688)

    • Change INPUT_BASE to optional (#679)

    • Refactor TCStat and ExtractTiles wrappers to conform to current standards

    • Automate release date (#665)

    • Add documentation for input verification datasets (#662)

    • Add timing tests for Travis/Docker (#649)

    • Set up encrypted credentials in Travis to push to DockerHub (#634)

    • Add to User’s Guide: using environment variables in METplus configuration files (#594)

    • Cleanup version info (#651)

    • Fix Travis tests for pull requests from forks (#659)

    • Enhance the build_docker_images.sh script to support TravisCI updates (#636)

    • Reorganize use case tests so users can add new cases easily (#648)

    • Investigate how to add version selector to documentation (#653)

    • Docker push pull image repository (#639)

    • Tutorial Proofreading (#534)

    • Update METplus data container logic to pull tarballs from dtcenter.org instead of GitHub release assets (#613)

    • Convert Travis Docker files (automated builds) to use Dockerhub data volumes instead of tarballs (#597)

    • Migrate from travis-ci.org to travis-ci.com (#618)

    • Migrate Docker run commands to the METplus ci/jobs scripts/files (#607)

    • Add stage to Travis to update or create data volumes when new sample data is available (#633)

    • Docker data caching (#623)

    • Tutorial testing on supported platforms (#468)

    • Add additional Branch support to the Travis CI pipeline (#478)

    • Change $DOCKER_WORK_DIR from /metplus to /root to be consistent with METplus tutorial (#595)

    • Add all use_cases to automated tests (eg Travis) (#571)

    • Add support to run METplus tests against multiple version of Python (#483)

    • Enhanced testing to use Docker data volumes to supply truth data for output comparisons (#567)

    • Update manage externals for beta5 versions (#832)

    • Create a new METplus GitHub issue template for “New Use Case” (#726)