From 3664336e709aacf276ae376232193b8455e258d2 Mon Sep 17 00:00:00 2001 From: j-opatz Date: Fri, 28 Oct 2022 16:04:33 -0600 Subject: [PATCH 1/3] initial changes for new use case --- ...e-PointStat_fcstGFS_obsNDBC_WaveHeight.png | Bin 0 -> 65603 bytes .../PointStat_fcstGFS_obsNDBC_WaveHeight.py | 141 ++++++++++++++++++ .../PointStat_fcstGFS_obsNDBC_WaveHeight.conf | 137 +++++++++++++++++ 3 files changed, 278 insertions(+) create mode 100644 docs/_static/marine_and_cryosphere-PointStat_fcstGFS_obsNDBC_WaveHeight.png create mode 100644 docs/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.py create mode 100644 parm/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.conf diff --git a/docs/_static/marine_and_cryosphere-PointStat_fcstGFS_obsNDBC_WaveHeight.png b/docs/_static/marine_and_cryosphere-PointStat_fcstGFS_obsNDBC_WaveHeight.png new file mode 100644 index 0000000000000000000000000000000000000000..7b66007c0bf70fdc8541d702a012163266f3fc52 GIT binary patch literal 65603 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 for more details. +# +# **YOU SHOULD NOT SET ANY OF THESE ENVIRONMENT VARIABLES YOURSELF! THEY WILL BE OVERWRITTEN BY METPLUS WHEN IT CALLS THE MET TOOLS!** +# +# If there is a setting in the MET configuration file that is currently not supported by METplus you'd like to control, please refer to: +# :ref:`Overriding Unsupported MET config file settings` +# +# .. note:: See the :ref:`GridStat MET Configuration` section of the User's Guide for more information on the environment variables used in the file below: +# +# .. highlight:: bash +# .. literalinclude:: ../../../../parm/met_config/Ascii2NcConfig_wrapped +# +# .. highlight:: bash +# .. literalinclude:: ../../../../parm/met_config/PointStatConfig_wrapped + +############################################################################## +# Running METplus +# --------------- +# +# This use case can be run two ways: +# +# 1) Passing in PointStat_fcstGFS_obsNDBC_WaveHeight.conf then a user-specific system configuration file:: +# +# run_metplus.py -c /path/to/METplus/parm/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.conf -c /path/to/user_system.conf +# +# 2) Modifying the configurations in parm/metplus_config, then passing in PointStat_fcstGFS_obsNDBC_WaveHeight.conf:: +# +# run_metplus.py -c /path/to/METplus/parm/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsAVISO_WaveHeight.conf +# +# The former method is recommended. Whether you add them to a user-specific configuration file or modify the metplus_config files, the following variables must be set correctly: +# +# * **INPUT_BASE** - Path to directory where sample data tarballs are unpacked (See Datasets section to obtain tarballs). This is not required to run METplus, but it is required to run the examples in parm/use_cases +# * **OUTPUT_BASE** - Path where METplus output will be written. This must be in a location where you have write permissions +# * **MET_INSTALL_DIR** - Path to location where MET is installed locally +# +# Example User Configuration File:: +# +# [dir] +# INPUT_BASE = /path/to/sample/input/data +# OUTPUT_BASE = /path/to/output/dir +# MET_INSTALL_DIR = /path/to/met-X.Y +# +# **NOTE:** All of these items must be found under the [dir] section. +# + +############################################################################## +# Expected Output +# --------------- +# +# A successful run will output the following both to the screen and to the logfile:: +# +# INFO: METplus has successfully finished running. +# +# Refer to the value set for **OUTPUT_BASE** to find where the output data was generated. +# Output for thisIce use case will be found in 20210503 (relative to **OUTPUT_BASE**) +# and will contain the following files: +# +# * point_stat_030000L_20221016_090000V_ctc.txt +# * point_stat_030000L_20221016_090000V_cts.txt +# * point_stat_030000L_20221016_090000V.stat +# * buoy_2022101609.nc + +############################################################################## +# Keywords +# -------- +# +# .. note:: +# +# * PointStatToolUseCase +# * ASCII2NCToolUseCase +# * GRIB2FileUseCase +# * MarineAndCryosphereAppUseCase +# +# Navigate to the :ref:`quick-search` page to discover other similar use cases. +# +# +# +# sphinx_gallery_thumbnail_path = '_static/marine_and_cryosphere-PointStat_fcstGFS_obsNDBC_WaveHeight.png' + diff --git a/parm/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.conf b/parm/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.conf new file mode 100644 index 000000000..b3f785710 --- /dev/null +++ b/parm/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.conf @@ -0,0 +1,137 @@ +[config] + +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.html +# +# For additional information, please see the METplus Users Guide. +# https://metplus.readthedocs.io/en/latest/Users_Guide + +### +# Processes to run +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#process-list +### + +PROCESS_LIST = ASCII2NC, PointStat + +### +# Time Info +# LOOP_BY options are INIT, VALID, RETRO, and REALTIME +# If set to INIT or RETRO: +# INIT_TIME_FMT, INIT_BEG, INIT_END, and INIT_INCREMENT must also be set +# If set to VALID or REALTIME: +# VALID_TIME_FMT, VALID_BEG, VALID_END, and VALID_INCREMENT must also be set +# LEAD_SEQ is the list of forecast leads to process +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#timing-control +### + +LOOP_BY = VALID +VALID_TIME_FMT = %Y%m%d%H +VALID_BEG = 2022101609 +VALID_END = 2022101609 +VALID_INCREMENT = 1M + +LEAD_SEQ = 0 + +LOOP_ORDER = times + + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +ASCII2NC_INPUT_DIR = {INPUT_BASE}/buoy_ASCII +ASCII2NC_INPUT_TEMPLATE = *.txt + +ASCII2NC_OUTPUT_DIR = +ASCII2NC_OUTPUT_TEMPLATE = {OUTPUT_BASE}/buoy_{valid?fmt=%Y%m%d%H}.nc + +ASCII2NC_SKIP_IF_OUTPUT_EXISTS = False + +ASCII2NC_FILE_WINDOW_BEGIN = 0 +ASCII2NC_FILE_WINDOW_END = 0 + +FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE}/fcst +FCST_POINT_STAT_INPUT_TEMPLATE = gfswave.t06z.global.0p16.f003.grib2 + +OBS_POINT_STAT_INPUT_DIR = +OBS_POINT_STAT_INPUT_TEMPLATE = {ASCII2NC_OUTPUT_TEMPLATE} + +POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE} + + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + +POINT_STAT_ONCE_PER_FIELD = False + + +FCST_VAR1_NAME = WVHGT +FCST_VAR1_LEVELS = Z0 +BOTH_VAR1_THRESH = le3.0,ge4.0&&le6.0,ge8.0 +OBS_VAR1_NAME = WVHT +OBS_VAR1_LEVELS = L0 + + +### +# ASCII2NC Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#ascii2nc +### + +#LOG_ASCII2NC_VERBOSITY = 1 + +ASCII2NC_CONFIG_FILE = {PARM_BASE}/met_config/Ascii2NcConfig_wrapped + +ASCII2NC_INPUT_FORMAT = ndbc_standard + +ASCII2NC_MASK_GRID = +ASCII2NC_MASK_POLY = +ASCII2NC_MASK_SID = + +ASCII2NC_TIME_SUMMARY_FLAG = False +ASCII2NC_TIME_SUMMARY_RAW_DATA = False +ASCII2NC_TIME_SUMMARY_BEG = 000000 +ASCII2NC_TIME_SUMMARY_END = 235959 +ASCII2NC_TIME_SUMMARY_STEP = 300 +ASCII2NC_TIME_SUMMARY_WIDTH = 600 +ASCII2NC_TIME_SUMMARY_GRIB_CODES = 11, 204, 211 +ASCII2NC_TIME_SUMMARY_VAR_NAMES = +ASCII2NC_TIME_SUMMARY_TYPES = min, max, range, mean, stdev, median, p80 +ASCII2NC_TIME_SUMMARY_VALID_FREQ = 0 +ASCII2NC_TIME_SUMMARY_VALID_THRESH = 0.0 + +### +# PointStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pointstat +### + +#LOG_POINT_STAT_VERBOSITY = 2 + +POINT_STAT_CONFIG_FILE ={PARM_BASE}/met_config/PointStatConfig_wrapped + + +#POINT_STAT_OUTPUT_FLAG_FHO = +POINT_STAT_OUTPUT_FLAG_CTC = BOTH +POINT_STAT_OUTPUT_FLAG_CTS = BOTH +OBS_POINT_STAT_WINDOW_BEGIN = -1800 +OBS_POINT_STAT_WINDOW_END = 1800 + +POINT_STAT_OFFSETS = 0 + +MODEL = WW3 + +POINT_STAT_DESC = NDBC +OBTYPE = + +POINT_STAT_REGRID_TO_GRID = NONE +POINT_STAT_REGRID_METHOD = BILIN +POINT_STAT_REGRID_WIDTH = 2 + +POINT_STAT_MESSAGE_TYPE = NDBC_STANDARD + +POINT_STAT_MASK_GRID = FULL +POINT_STAT_MASK_POLY = +POINT_STAT_MASK_SID = + From e4f50a0137029b23e4cb45c3b32f0e23a7a51941 Mon Sep 17 00:00:00 2001 From: j-opatz Date: Mon, 31 Oct 2022 21:40:51 -0600 Subject: [PATCH 2/3] updated paths, documentation --- .../PointStat_fcstGFS_obsNDBC_WaveHeight.py | 10 +++++----- .../PointStat_fcstGFS_obsNDBC_WaveHeight.conf | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.py b/docs/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.py index 853b51f36..475d02714 100644 --- a/docs/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.py +++ b/docs/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.py @@ -18,7 +18,7 @@ # # | **Forecast:** GFSv16 forecast data from WAVE file category # -# | **Observations:** ASCII buoy files from NDBC, less than 45 days old so no QC +# | **Observations:** ASCII buoy files from NDBC # # | **Location:** All of the input data required for this use case can be found in the met_test sample data tarball. Click here to the METplus releases page and download sample data for the appropriate release: https://github.com/dtcenter/METplus/releases # | This tarball should be unpacked into the directory that you will set the value of INPUT_BASE. See `Running METplus`_ section for more information. @@ -34,8 +34,8 @@ # METplus Workflow # ---------------- # -# ASCII2NC is the first tool called. It pulls in all files with a .txt type, which is what -# the ASCII buoy data were saved as. These observations are saved into a netCDF, which is then called by PointStat +# ASCII2NC is the first tool called. It pulls in all files with a .txt type, which is +# the ASCII buoy data saved format. These observations are converted into a netCDF, which is then called by PointStat # as the observation dataset. PointStat also pulls in a 3 hour forecast from the GFS for wave heights, which is included # in the range of available buoy observation times. A +/- 30 minute window is allowed for the observational data. # Thresholds are set that correspond to operational usage, and the CTC and CTS line types are requested. @@ -87,7 +87,7 @@ # # 2) Modifying the configurations in parm/metplus_config, then passing in PointStat_fcstGFS_obsNDBC_WaveHeight.conf:: # -# run_metplus.py -c /path/to/METplus/parm/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsAVISO_WaveHeight.conf +# run_metplus.py -c /path/to/METplus/parm/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.conf # # The former method is recommended. Whether you add them to a user-specific configuration file or modify the metplus_config files, the following variables must be set correctly: # @@ -114,7 +114,7 @@ # INFO: METplus has successfully finished running. # # Refer to the value set for **OUTPUT_BASE** to find where the output data was generated. -# Output for thisIce use case will be found in 20210503 (relative to **OUTPUT_BASE**) +# Output for this use case will be found in PointStat and buoy_ASCII directories (relative to **OUTPUT_BASE**) # and will contain the following files: # # * point_stat_030000L_20221016_090000V_ctc.txt diff --git a/parm/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.conf b/parm/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.conf index b3f785710..fb9dd2054 100644 --- a/parm/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.conf +++ b/parm/use_cases/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.conf @@ -40,24 +40,24 @@ LOOP_ORDER = times # https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info ### -ASCII2NC_INPUT_DIR = {INPUT_BASE}/buoy_ASCII +ASCII2NC_INPUT_DIR = {INPUT_BASE}/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight ASCII2NC_INPUT_TEMPLATE = *.txt ASCII2NC_OUTPUT_DIR = -ASCII2NC_OUTPUT_TEMPLATE = {OUTPUT_BASE}/buoy_{valid?fmt=%Y%m%d%H}.nc +ASCII2NC_OUTPUT_TEMPLATE = {OUTPUT_BASE}/buoy_ASCII/buoy_{valid?fmt=%Y%m%d%H}.nc ASCII2NC_SKIP_IF_OUTPUT_EXISTS = False ASCII2NC_FILE_WINDOW_BEGIN = 0 ASCII2NC_FILE_WINDOW_END = 0 -FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE}/fcst +FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE}/model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight FCST_POINT_STAT_INPUT_TEMPLATE = gfswave.t06z.global.0p16.f003.grib2 OBS_POINT_STAT_INPUT_DIR = OBS_POINT_STAT_INPUT_TEMPLATE = {ASCII2NC_OUTPUT_TEMPLATE} -POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE} +POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE}/PointStat ### @@ -120,7 +120,7 @@ OBS_POINT_STAT_WINDOW_END = 1800 POINT_STAT_OFFSETS = 0 -MODEL = WW3 +MODEL = GFSv16 POINT_STAT_DESC = NDBC OBTYPE = From 38e8b4636bc0e3a74e983be818c5379d78b595c2 Mon Sep 17 00:00:00 2001 From: j-opatz Date: Tue, 1 Nov 2022 11:46:37 -0600 Subject: [PATCH 3/3] updated automated testing files --- .github/parm/use_case_groups.json | 5 +++++ internal/tests/use_cases/all_use_cases.txt | 1 + 2 files changed, 6 insertions(+) diff --git a/.github/parm/use_case_groups.json b/.github/parm/use_case_groups.json index be6f54633..3889d46d4 100644 --- a/.github/parm/use_case_groups.json +++ b/.github/parm/use_case_groups.json @@ -74,6 +74,11 @@ "index_list": "6", "run": false }, + { + "category": "marine_and_cryosphere", + "index_list": "7", + "run": false + }, { "category": "medium_range", "index_list": "0", diff --git a/internal/tests/use_cases/all_use_cases.txt b/internal/tests/use_cases/all_use_cases.txt index 1471e60e0..a30b011d8 100644 --- a/internal/tests/use_cases/all_use_cases.txt +++ b/internal/tests/use_cases/all_use_cases.txt @@ -83,6 +83,7 @@ Category: marine_and_cryosphere 4::GridStat_fcstRTOFS_obsSMAP_climWOA_sss::model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsSMAP_climWOA_sss.conf:: icecover_env, py_embed 5::GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh::model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsAVISO_climHYCOM_ssh.conf:: icecover_env, py_embed 6::UserScript_fcstRTOFS_obsAOML_calcTransport::model_applications/marine_and_cryosphere/UserScript_fcstRTOFS_obsAOML_calcTransport.conf:: icecover_env, py_embed +7::PointStat_fcstGFS_obsNDBC_WaveHeight::model_applications/marine_and_cryosphere/PointStat_fcstGFS_obsNDBC_WaveHeight.conf #X::GridStat_fcstRTOFS_obsGHRSST_climWOA_sst::model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst.conf, model_applications/marine_and_cryosphere/GridStat_fcstRTOFS_obsGHRSST_climWOA_sst/ci_overrides.conf:: icecover_env, py_embed