GMTB Workflow Documentation
The MET Verification Component

Introduction

The Model Evaluation Tools (MET; DTC 2016) software package is used by the GMTB team to perform objective verification. MET is a state-of-the-art verification package that is freely available and supported by the DTC to the community. MET has tools to perform standard verification (e.g., RMSE and a variety of skill scores) as well as more advanced methods (e.g., object-based and neighborhood methods). The use of MET is relevant because it has been selected by NGGPS as the framework under which the current EMC, DTC, and NOAA/ESRL/GSD verification tools will be unified. A number of tools available in MET are employed to conduct grid-to-grid (Grid-stat) and grid-to-point (Point-stat) comparisons; the below sections provide an overview of the steps taken to perfom verification within the GMTB workflow. While a subset of MET configuration file settings used specifically for GMTB purposes will be described below, please note that all MET configuration files have a variety of user-defined settings and a full description regarding each option can be found in the MET Users’ Guide (DTC 2016).

Point Verification

The MET point-stat tool matches gridded forecast output to point observations. For GMTB, MET point-stat is used verify a variety of surface and upper-air fields against either the NAM Data Assimilation System (NDAS) or Global Data Assimilation System (GDAS) prepbufr point observations. There are two specific tasks that handle point-based verification within the GFS_VX.xml:

  • met_point_sfc → 6-hourly verification over user requested regions
  • met_point_ua → 12-hourly verification over user requested regions

The two point verification tasks will be detailed in the following sub-sections. In addition, all verification tasks require a set of common environment variables to be set in the master source file, vx_env.ent, including:

  • START_TIME: Model initialization to be verified in YYYYMMDDH format
  • FCST_TIME: 3-digit forecast time to be verified
  • RES_LIST: List of resolutions to verify; for GMTB this was set to 0p25 (0.25 degree)
  • MET_EXE_ROOT: Path to MET all MET executables
  • MET_CONFIG: Path to all MET configuration files
  • MOAD_DATAROOT: Working directory for MET output
  • ROTDIR: Path to forecast output file
  • MODEL: Name of model being evaluated

Surface

The task to conduct point verification for surface fields in GFS_VX.xml is called met_point_sfc, which is under the verification_06hr metatask. When met_point_sfc is submitted it calls met_point_sfc.ent, which, in addition to sourcing the vx_env.ent environment variables mentioned above, it sets:

  • GRID_VX_LIST: List of domains to verify over (e.g., NCEP G218)
  • UTIL_EXEC: Path to ndate utility
  • PNT_OBS_DIR: Path to observation files (e.g., NDAS prepbufr files)

In order for the surface point verification task to be run by the workflow, the following dependencies are set in met_point_sfc.ent:

  • The existence of the model forecast file to be verified
  • The existence of the NDAS prepbufr observation file corresponding with the valid time of the model forecast
  • The YES return flag indicating the met_point_sfc.ent task should be executed

When all dependencies above are satisfied, the met_point_sfc.ent task calls the met_point_verf_sfc.ksh script.

The met_point_verf_sfc.ksh script first processes the prepbufr observation files using the pb2nc tool within MET. The pb2nc configuration file (PB2NCConfig_GMTB.vx) describes the directives on how to process the observation files. A subset defined for GMTB include:

  • Observation source: Point observation file source (e.g., NDAS prepbufr)
  • Message types to be processed: ADPUPA, ADPSFC, SFCSHP, AIRCAR, AIRCFT, MSONET, PROFLR, RASSDA, VADWND
  • Observation fields to be retained or derived: SPFH, TMP, HGT, UGRD, VGRD, WIND, DPT, PRMSL, RH

The script then moves on to run point-stat for each verification domain using the point-stat configuration files PointStatConfig_ADPSFC_NDAS_REGRID and PointStatConfig_ADPSFC_MPR_NDAS_REGRID. Again, the configuration files have a number of user-defined settings; for GMTB, the following fields are set:

  • Forecast fields (at level) to be verified: TMP (Z2), RH (Z2), HGT (Z0), UGRD (Z10), VGRD (Z10), WIND (Z10), PRMSL (Z0)
  • Verification masking regions: CONUS, EAST, WEST, APL, GMC, GRB, LMV, MDW, NMT, NEC, NPL, NWC, SEC, SMT, SPL, SWC, SWD
  • Statistical output types: Line types of Continuous Statistics (CNT), Scalar L1L2 Partial Sums (SL1L2), Vector L1L2 Partial Sums (VL1L2) and Matched Pair data (MPR) for the MPR configuration file only
  • Output file name prefix: point_stat_${MODEL}_${RES}_${GRID_VX}_F${FCST_TIME}_ADPSFC

Upper-air

The MET point-stat task to conduct point verification for upper-air fields in GFS_VX.xml is called met_point_ua, which is under the verification_12hr metatask. When met_point_ua is submitted it calls met_point_ua.ent, which sources the vx_env.ent environment variables mentioned above and sets similar environment variables as the surface point task, including:

  • GRID_VX_LIST: List of domains to verify over (e.g., NCEP G3)
  • UTIL_EXEC: Path to ndate utility
  • PNT_OBS_DIR: Path to observation files (e.g., GDAS prepbufr files)

In order for the upper-air point verification task to be run by the workflow, the following dependencies are set in met_point_ua.ent:

  • The existence of the model forecast file to be verified
  • The existence of the GDAS prepbufr observation file corresponding with the valid time of the model forecast
  • The YES return flag indicating the met_point_ua.ent task should be executed

When all dependencies above are satisfied, the met_point_ua.ent task calls the met_point_verf_ua.ksh script.

The met_point_verf_ua.ksh script first processes the prepbufr observation files using the pb2nc tool within MET, which may or may not differ from the observation files used for the surface point verification. In the case presented here, the GMTB uses the same pb2nc configuration file (PB2NCConfig_GMTB) for both surface and upper-air observation processing and the only difference is that the surface task processes NDAS prepbufr files, while the upper-air task processes GDAS prepbufr files.

The script then moves on to run point-stat for each verification domain using the point-stat configuration files PointStatConfig_ADPUPA_REGRID_G218 and PointStatConfig_ADPUPA_REGRID_G3. A subset of user-defined settings used within GMTB include:

  • Forecast fields (at level) to be verified: TMP (P1000, P850, P700, P500, P400, P300, P200, P150, P100), RH (P1000, P850, P700, P500, P400, P300, P200, P150, P100), HGT (P1000, P850, P700, P500, P400, P300, P200, P150, P100), UGRD (P1000, P850, P700, P500, P400, P300, P250, P200, P150, P100), VGRD (P1000, P850, P700, P500, P400, P300, P250, P200, P150, P100), WIND (P1000, P850, P700, P500, P400, P300, P250, P200, P150, P100)
  • Verification masking regions: CONUS, EAST, WEST (for G218); NH, SH, TROP (for G3)
  • Statistical output types: Line types of Continuous Statistics (CNT), Scalar L1L2 Partial Sums (SL1L2), and Vector L1L2 Partial Sums (VL1L2)
  • Output file name prefix: point_stat_${MODEL}_${RES}_${GRID_VX}_F${FCST_TIME}_ADPUPA

Gridded Analysis Verification

The MET grid-stat tool matches gridded forecast output to gridded observations or analyses. For GMTB, MET grid-stat is used to verify a variety of gridded fields and the comparison against GFS analyses to calculate the 500 hPa anomaly correlation will be described in this section. The specific task in GFS_VX.xml is:

  • met_grid_anl → 6-hourly verification over user requested regions

As a reminder, all verification tasks require a set of common environment variables to be set in the master source file, vx_env.ent, including:

  • START_TIME: Model initialization to be verified in YYYYMMDDH format
  • FCST_TIME: 3-digit forecast time to be verified
  • RES_LIST: List of resolutions to verify; for GMTB this was set to 0p25 (0.25 degree)
  • MET_EXE_ROOT: Path to MET all MET executables
  • MET_CONFIG: Path to all MET configuration files
  • MOAD_DATAROOT: Working directory for MET output
  • ROTDIR: Path to forecast output file
  • MODEL: Name of model being evaluated

Anomaly Correlation

The task to compute the anomaly correlation for 500 hPa heights in GFS_VX.xml is called met_grid_anl, which is under the verification_06hr metatask. When met_grid_anl is submitted it calls met_grid_anl.ent, where the common environment variables are sourced though the vx_env.ent and a few additional environment variables are set, including:

  • GRID_VX_LIST: List of domains to verify over (e.g., NCEP G3)
  • UTIL_EXEC: Path to ndate utility
  • ANL_OBS_DIR: Path to observation files (e.g., GFS analysis files)
  • CLIMO_FILE_DIR: Path to the climatology file

In order for the anomaly correlation verification task to be run by the workflow, the following dependencies are set in met_grid_anl.ent:

  • The existence of the model forecast file to be verified
  • The existence of the GFS analysis file file corresponding with the valid time of the model forecast
  • The YES return flag indicating the met_grid_anl.ent task should be executed

When all dependencies above are satisfied, the met_grid_anl.ent task calls the met_grid_anl_verf.ksh script.

The met_grid_anl_verf.ksh script runs grid-stat for each verification domain using the grid-stat configuration file GridStatConfig_AC_REGRID. A subset of the user-defined settings for GMTB include:

  • Forecast fields (at level) to be verified: HGT (P500)
  • Verification masking regions: NH, SH, TROP
  • Statistical output types: Line types of Continuous Statistics (CNT), Scalar L1L2 Partial Sums (SL1L2), and Scalar Anomaly L1L2 Partial Sums (SAL1L2)
  • Output file name prefix: grid_stat_${MODEL}_${RES}_${GRID_VX}_F${FCST_TIME}_500hPa

QPF Verification

The MET grid-stat tool matches a gridded forecast with a gridded forecast or analyses. For GMTB, MET grid-stat is used to verify quantitative precipitation forecasts (QPF). Built-in functionality in MET allows for the forecast and/or observations to be "regrid-on-the-fly" in order to get the forecast and observations on the same grid fore verification. There are three specific tasks that handle precipitation verification within the GFS_VX.xml:

  • met_qpf_6hr → 6-hour precipitations verification over CONUS
  • met_qpf_24hr → 24-hour precipitation verification over CONUS
  • met_qpf_global_24hr → 24-hour precipitation over the globe

All three tasks all call the same korn shell script that executes MET grid-stat; it is the environment variables and configuration files that allow for met_qpf_verf_all.ksh to run to specification for each individual task. All three QPF verification tasks require the following environment variables to be set to the vx_env.ent file, which is the file all verification-related ent files source because it contains several common environment variables:

  • START_TIME: Model initialization to be verified in YYYYMMDDH format
  • FCST_TIME: 3-digit forecast time to be verified
  • RES_LIST: List of resolutions to verify; for GMTB this was set to 0p25 (0.25 degree)
  • MET_EXE_ROOT: Path to MET all MET executables
  • MET_CONFIG: Oath to all MET configuration files
  • MOAD_DATAROOT: Working directory for MET output
  • ROTDIR: Path to forecast output file
  • MODEL: Name of model being evaluated

6-hr precipitation verification over the CONUS

For 6-hr precipitation verification over the CONUS, the Climatology-Calibrated Precipitation Analyses (CCPA) are used as “truth” and have been pulled from the NOAA HPSS. The CCPA files used for GMTB verification are files available every six hours and are in GRIB2 format. The native resolution of CCPA data is ~4.8 km.

The task for 6-hr precipitation verification in the GFS_VX.xml is called met_qpf_6hr, which is under the 6_acc metatask (i.e., metatask for 6-hr QPF). When met_qpf_6hr is submitted, it calls met_qpf_6hr.ent, which set the following environment variables:

  • ACCUM_TIME: Accumulation time desired for verification for GMTB, this is 06
  • MODEL_BUCKET: Accumulation time in the model forecast file; for operational GFS and GMTB, this is set to 6
  • OBS_BUCKET: Accumulation time in the observation file; for CCPA, this is set to 6
  • OBTYPE: Type of observation data; for GMTB, this is ccpa
  • GRID_VX_LIST: List of domains to verify over; for 6-hr verification, this is set to G218
  • RAW_OBS: Path to gridded analyses; for 6-hr verification, this is CCPA data
  • UTIL_EXEC: ndate utility

In order for the 6-hr QPF task to be run by the workflow, the following dependencies are set in met_qpf_6hr.ent:

  • The existence of the model forecast file to be verified
  • The existence of the CCPA file corresponding with the valid time of the model forecast. Please note, that the CCPA data changed name when it went through an upgrade in ?? 2016; therefore, the XML has an <or> tag to account for this
  • The YES return indicating the met_qpf_06 task should be run

When all dependencies above are satisfied, the met_qpf_6hr.ent task calls the met_qpf_verf_all.ksh script, which uses the configuration file GridStatConfig_APCP06_REGRID_ccpa (need to get actual name; then link to sample config file). The configuration file has user-defined settings; for GMTB, the following fields are set:

  • Field to be verified: APCP_06
  • Thresholds to be verified: [ >0.0, >0.254, >0.508, >1.270, >2.540, >3.810, >6.350, >8.890, > 12.700, >25.400]
  • Verification masking regions: CONUS, EAST, WEST,APL,GMC,GRB,LMV,MDW,NMT,NEC,NPL,NWC,SEC,SMT,SPL,SWC,SWD (NCEP pre-defined regions)
  • Statistical output types: Forecast, Hits, Observed (FHO), Contingency Table Counts (CTC), Contingency Table Statistics (CTS) line types
  • Output file name prefix: ${MODEL}_${RES}_${GRID_VX}_F${FCST_TIME}_06h

The scripts first processes the observations and model output using the MET tool, pcp_combine which has capabilities to add and subtract fields to get necessary accumulations for verification

24-hr (daily) precipitation verification over the CONUS

For 24-hr precipitation verification over the CONUS, the Climatology-Calibrated Precipitation Analyses (CCPA) are used as “truth” had have been pulled from the NOAA HPSS (add location). The CCPA files used for GMTB verification are files available every six hours and are in GRIB2 format. The native resolution of CCPA data is ??. For daily QPF verification, both over the CONUS and globe, the daily accumulations are set to be from 12 UTC – 12 UTC, which is consistent with how NCEP performs daily QPF verification. Given the files are in 6-hr intervals, a tool in MET, pcp-combine, is used to sum the individual 6-hr CCPA files to create a daily file. This step is accounted for in the met_qpf_verf_all.ksh, given all environment variables are properly set.

The met_qpf_24hr.ent task calls the met_qpf_verf_all.ksh script, which uses the configuration file GridStatConfig_APCP24_REGRID_ccpa, which set the following environment variables:

  • ACCUM_TIME: Accumulation time desired for verification for GMTB, this is 24
  • MODEL_BUCKET: Accumulation time in the model forecast file; for operational GFS and GMTB, this is set to 6
  • OBS_BUCKET: Accumulation time in the observation file; for CCPA, this is 6
  • OBTYPE: Type of observation data; for GMTB, this is set to ccpa
  • GRID_VX_LIST: List of domains to verify over; for 24-hr verification over the CONUS, this is set to G218
  • RAW_OBS: Path to gridded analyses; for 24-hr verification, this is CCPA data
  • UTIL_EXEC: ndate utility

In order for the 24-hr CONUS QPF task to be run by the workflow, the following dependencies are set in met_qpf_24hr.ent:

  • The existence of the model forecast file to be verified
  • The existence of the 4 CCPA files needed to sum a daily precipitation total corresponding with the valid time of the model forecast file. Similar to the 6-hr QPF verification, please note, that the CCPA data changed name when it went through an upgrade in ?? 2016; therefore, the XML has an <or> tag to account for this
  • The YES return indicating the met_qpf_24h task should be run

When all dependencies above are satisfied, the met_qpf_24hr.ent task calls the met_qpf_verf_all.ksh script, which uses the configuration file GridStatConfig_APCP24_REGRID_cmorph (need to get actual name). The configuration file has user-defined settings; for GMTB, the following fields are set:

  • Field to be verified: APCP_24
  • Thresholds to be verified: [ >6.350, >8.890, > 12.700, >25.400, >31.750,>38.100,>44.450,>50.800]
  • Verification masking regions: CONUS, EAST, WEST,APL,GMC,GRB,LMV,MDW,NMT,NEC,NPL,NWC,SEC,SMT,SPL,SWC,SWD (NCEP pre-defined regions)
  • Statistical output types: Forecast, Hits, Observed (FHO), Contingency Table Counts (CTC), Contingency Table Statistics (CTS) line types
  • Output file name prefix: ${MODEL}_${RES}_${GRID_VX}_F${FCST_TIME}_24h

The scripts first processes the observations and model output using the MET tool, pcp_combine which has capabilities to add and subtract fields to get necessary accumulations for verification

24-hr (daily) precipitation verification over the globe

For 24-hr precipitation verification over the globe, the CPC MORPHing technique (CMORPH; Joyce et al. 2004) data are used as “truth” had have been pulled from a NOAA ftp site. A simple pre-processing script was used convert the hourly data from binary to NetCDF (should we provide this? – need to get from dakota). The CMORPH files used in GMTB verification are files available both hourly and daily and are in NetCDF format. The native resolution of CMORPH data is 8-km, and it covers the globe from ~60°S - ~60°N. Also, CMORPH has known biases over land; therefore, verification was done over land+sea and sea only.

The met_qpf_global_24hr.ent task calls the met_qpf_verf_all.ksh script, which uses the configuration file GridStatConfig_APCP24_REGRID_cmorph, which set the following environment variables:

  • ACCUM_TIME: Accumulation time desired for verification for GMTB, this is 24
  • MODEL_BUCKET: Accumulation time in the model forecast file; for operational GFS and GMTB, this is set to 6 OBS_BUCKET: Accumulation time in the observation file; for CMORPH, this is set to 24, assuming it is set up for one daily file (not 24 hourly files)
  • OBTYPE: Type of observation data; for GMTB, this is cmorph
  • GRID_VX_LIST: List of domains to verify over; for 24-hr verification over the globe, this is set to G3
  • RAW_OBS: Path to gridded analyses; for 24-hr verification, this is CMORPH data
  • UTIL_EXEC: ndate utility

In order for the met_qpf_global_24hr.ent task to be run by the workflow, the following dependencies are set in met_qpf_global_24hr.ent:

  • The existence of the model forecast file to be verified
  • The existence either the 24 individual CMORPH files needed to sum a daily precipitation total corresponding with the valid time of the model forecast file OR a daily CMORPH file that has already been accumulated
  • The YES return indicating the met_qpf_global_24hr task should be run

When all dependencies above are satisfied, the met_qpf_global_24hr.ent task calls the met_qpf_verf_all.ksh script, which uses the configuration file GridStatConfig_APCP24_REGRID_cmorph. The configuration file has user-defined settings; for GMTB, the following fields are set:

  • Field to be verified: APCP_24
  • Thresholds to be verified: [ >6.350, >8.890, > 12.700, >25.400, >31.750,>38.100,>44.450,>50.800]
  • Verification masking regions: NH, SH, TROP, NH (land mask), SH (land mask), and TROP (land mask); NH 60°N – 20°N, SH 60°S – 20°S, TROP 20°S – 20°N
  • Statistical output types: Forecast, Hits, Observed (FHO), Contingency Table Counts (CTC), Contingency Table Statistics (CTS) line types
  • Output file name prefix: ${MODEL}_${RES}_${GRID_VX}_F${FCST_TIME}_24h

References

Developmental Testbed Center, 2016: MET: Version 5.2 Model Evaluation Tools Users' Guide. Available at: http://www.dtcenter.org/met/users/docs/users_guide/MET_Users_Guide_v5.2.pdf 328 pp.

Joyce, R. J., J. E. Janowiak, P. A. Arkin, and P. Xie, 2004: CMORPH: A method that produces global precipitation estimates from passive microwave and infrared data at high spatial and temporal resolution.. J. Hydromet., 5, 487-503.