From 213eb792839663b8bbca3567ed6bfa7f35046807 Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Fri, 15 Nov 2024 15:48:59 -0700 Subject: [PATCH] Files to run vx with the HRRR using NDAS obs. --- ...onfig_det.obs_gdas_or_ndas.model_hrrr.yaml | 54 ++++++++++++++++ ...r-fcst_custom-vx-config_hrrr_obs-ndas.yaml | 61 +++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 parm/metplus/vx_configs/vx_config_det.obs_gdas_or_ndas.model_hrrr.yaml create mode 100644 tests/WE2E/test_configs/verification/config.vx-det_48hr-fcst_custom-vx-config_hrrr_obs-ndas.yaml diff --git a/parm/metplus/vx_configs/vx_config_det.obs_gdas_or_ndas.model_hrrr.yaml b/parm/metplus/vx_configs/vx_config_det.obs_gdas_or_ndas.model_hrrr.yaml new file mode 100644 index 000000000..eaa9267a4 --- /dev/null +++ b/parm/metplus/vx_configs/vx_config_det.obs_gdas_or_ndas.model_hrrr.yaml @@ -0,0 +1,54 @@ +# +# This configuration file specifies the field groups, fields, levels, +# and thresholds to use for DETERMINISTIC verification. The format is +# as follows: +# +# FIELD_GROUP1: +# FIELD1: +# LEVEL1: list_of_thresholds +# LEVEL2: list_of_thresholds +# ... +# FIELD2: +# LEVEL1: list_of_thresholds +# LEVEL2: list_of_thresholds +# ... +# ... +# +# FIELD_GROUP2: +# FIELD1: +# LEVEL1: list_of_thresholds +# LEVEL2: list_of_thresholds +# ... +# FIELD2: +# LEVEL1: list_of_thresholds +# LEVEL2: list_of_thresholds +# ... +# ... +# +# ... +# +# If the threshold list for a given combination of field group, field, +# and level is set to the empty string ([]), then all values of that +# field will be included in the verification. +# +# Both the keys that represent field groups, fields, and levels and the +# strings in the list of thresholds may contain the separator string "%%" +# that separates the value of the quantity for the forecast from that for +# the observations. For example, if a field is set to +# +# RETOP%%EchoTop18 +# +# it means the name of the field in the forecast data is RETOP while its +# name in the observations is EchoTop18. +# +SFC: + TMP: + Z2: [] +# UGRD: +# Z10: ['ge2.572'] +# VGRD: +# Z10: ['ge2.572'] +# WIND: +# Z10: ['ge2.572', 'ge2.572&<5.144', 'ge5.144', 'ge10.288', 'ge15.433'] +# PRES%%PRMSL: +# Z0: [] diff --git a/tests/WE2E/test_configs/verification/config.vx-det_48hr-fcst_custom-vx-config_hrrr_obs-ndas.yaml b/tests/WE2E/test_configs/verification/config.vx-det_48hr-fcst_custom-vx-config_hrrr_obs-ndas.yaml new file mode 100644 index 000000000..b7ab9f6d7 --- /dev/null +++ b/tests/WE2E/test_configs/verification/config.vx-det_48hr-fcst_custom-vx-config_hrrr_obs-ndas.yaml @@ -0,0 +1,61 @@ +metadata: + description: |- + SRW App configuration file to test deterministic verification of the + GraphCast (gc) global AI model. Note that this test uses a custom + verification configuration file (as opposed to the default one in the + SRW) because the AI model output often does not include many of the + fields that exist in physics-based models. + +user: + RUN_ENVIR: community + +platform: + EXTRN_MDL_DATA_STORES: hpss + +workflow: + PREEXISTING_DIR_METHOD: rename + PREDEF_GRID_NAME: RRFS_CONUS_25km + DATE_FIRST_CYCL: '2024040400' + DATE_LAST_CYCL: '2024040400' + FCST_LEN_HRS: 48 + +rocoto: + tasks: + taskgroups: '{{ ["parm/wflow/verify_pre.yaml", "parm/wflow/verify_det.yaml"]|include }}' + +task_get_extrn_lbcs: + LBC_SPEC_INTVL_HRS: 3 + +task_run_post: + POST_OUTPUT_DOMAIN_NAME: 'global' + +verification: + METPLUS_VERBOSITY_LEVEL: 5 + # Base directories in which to look for obs. If these do not exist and/or + # do not contain the required obs, create and populate them. + # Note that when performing WE2E tests, the default behavior is not to + # get obs files from HPSS but to use staged obs files. This is done by + # setting these variables to the (platform-specific) locations of these + # staged files. To force the WE2E testing system to get the obs from + # HPSS, here we reset these variables to their default values in the SRW + # workflow configuration file config_defaults.yaml. + CCPA_OBS_DIR: "{{ workflow.EXPTDIR }}/obs_data/ccpa" + NOHRSC_OBS_DIR: "{{ workflow.EXPTDIR }}/obs_data/nohrsc" + MRMS_OBS_DIR: "{{ workflow.EXPTDIR }}/obs_data/mrms" + NDAS_OBS_DIR: "/scratch2/BMC/fv3lam/Gerard.Ketefian/obs_for_ai_tests/ndas" + # Do not remove raw obs files to be able to verify that only the necessary + # raw files are fetched from HPSS (if it's necessary to fetch obs files). + REMOVE_RAW_OBS_CCPA: false + REMOVE_RAW_OBS_MRMS: false + REMOVE_RAW_OBS_NDAS: false + REMOVE_RAW_OBS_NOHRSC: false + # + VX_FCST_MODEL_NAME: 'hrrr' + VX_CONFIG_DET_FN: 'vx_configs/vx_config_det.obs_gdas_or_ndas.model_hrrr.yaml' + VX_FCST_INPUT_BASEDIR: '/scratch2/BMC/fv3lam/Gerard.Ketefian/forecasts_for_ai_tests' + FCST_SUBDIR_TEMPLATE: '{{- verification.VX_FCST_MODEL_NAME }}.{init?fmt=%Y%m%d}/{init?fmt=%H}' + FCST_FN_TEMPLATE: 'hrrr.t{init?fmt=%H}z.wrfprsf{lead?fmt=%H}.grib2' + FCST_FN_TEMPLATE_PCPCOMBINE_OUTPUT: '{{- verification.VX_FCST_MODEL_NAME }}.t00z.prslev.f{lead?fmt=%HHH}_a${ACCUM_HH}h.nc' + # + VX_FCST_OUTPUT_INTVL_HRS: 1 + VX_FIELD_GROUPS: [ "SFC" ]