From 972610fbefed3da3bbcb3e2b4ab38a5a1778037e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 12:51:33 -0700 Subject: [PATCH] Update develop-ref after #2457 and #2453 (#2458) Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com> Co-authored-by: John Halley Gotway Co-authored-by: jprestop Co-authored-by: Tracy Hertneky Co-authored-by: Giovanni Rosa Co-authored-by: j-opatz <59586397+j-opatz@users.noreply.github.com> Co-authored-by: Mrinal Biswas Co-authored-by: j-opatz Co-authored-by: Daniel Adriaansen Co-authored-by: Jonathan Vigh Co-authored-by: root Co-authored-by: Dan Adriaansen Co-authored-by: lisagoodrich <33230218+lisagoodrich@users.noreply.github.com> Co-authored-by: Julie Prestopnik Co-authored-by: Tracy Co-authored-by: bikegeek <3753118+bikegeek@users.noreply.github.com> Co-authored-by: metplus-bot <97135045+metplus-bot@users.noreply.github.com> Co-authored-by: Lisa Goodrich Co-authored-by: Tracy Hertneky <39317287+hertneky@users.noreply.github.com> Co-authored-by: Giovanni Rosa Co-authored-by: mrinalbiswas Co-authored-by: Christina Kalb Co-authored-by: jason-english <73247785+jason-english@users.noreply.github.com> Co-authored-by: John Sharples <41682323+John-Sharples@users.noreply.github.com> Co-authored-by: Hank Fisher Co-authored-by: reza-armuei <144857501+reza-armuei@users.noreply.github.com> Co-authored-by: Mallory Row Closes https://github.com/dtcenter/METplus/issues/1986 fix develop Fix broken documentation links (#2004) fix #2026 develop StatAnalysis looping (#2028) fix priority of obs_window config variables so that wrapper-specific version is preferred over generic OBS_WINDOW_BEGIN/END (#2062) fix #2070 var list numeric order (#2072) fix #2087 develop docs_pdf (#2091) fix #2096/#2098 develop - fix skip if output exists and do not error if no commands were run (#2099) Fix for Dockerfile smell DL4000 (#2112) fix #2082 develop regrid.convert/censor_thresh/censor_val (#2140) fix #2082 main_v5.0 regrid.convert/censor_thresh/censor_val (#2101) fix #2137 develop PointStat -obs_valid_beg/end (#2141) fix failured introduced by urllib3 (see https://github.com/urllib3/urllib3/issues/2168) fix #2161 develop PCPCombine additional field arguments in -subtract mode (#2162) fix #2168 develop - StatAnalysis time shift (#2169) fix releases. (#2183) fix #2189 develop - spaces in complex thresholds (#2191) fix #2179 develop TCPairs fix -diag argument (#2187) fixes (#2200) fix diff tests (#2217) fix automated tests (#2237) fix #2235 rename multivar_itensity to multivar_intensity_flag (#2236) fix #2241 Create directory containing -out_stat file (#2242) fix #2245 use unique run ID to name logger instance (#2247) fix #2244 develop fix diff tests (#2254) fixture to set pytest tmpdir (#2261) fix #1853 develop - PointStat don't require mask variables to be set (#2262) fix #2279 develop - buoy station file from 2022 (#2280) fix (#2313) fix ReadTheDocs requirements to include pillow which is a dependency of sphinx-gallery: see https://blog.readthedocs.com/defaulting-latest-build-tools/ for more info on why this was necessary fix bug described in https://github.com/pangeo-data/xESMF/issues/246 fix failing use case tests -- install python packages dateutil and requests via apk instead of pip because the pip commands began failing -- see PEP668 https://peps.python.org/pep-0668/ -- also changed scripts to create conda environments for use case tests to install all packages in a single call to mamba instead of individual calls --- .github/actions/run_tests/Dockerfile | 4 +- .github/parm/use_case_groups.json | 4 +- docs/Users_Guide/glossary.rst | 24 ++-- docs/Users_Guide/release-notes.rst | 7 + docs/Users_Guide/wrappers.rst | 58 ++------ ...idStat_fcstGFS_obsOMI_TotalColumnOzone.png | Bin 0 -> 173716 bytes ...ridStat_fcstGFS_obsOMI_TotalColumnOzone.py | 136 ++++++++++++++++++ internal/scripts/docker_env/README.md | 3 - .../scripts/docker_env/scripts/cfgrib_env.sh | 5 +- .../docker_env/scripts/cycloneplotter_env.sh | 4 +- .../scripts/docker_env/scripts/diff_env.sh | 3 +- .../docker_env/scripts/geovista_env.sh | 4 +- .../docker_env/scripts/icecover_env.sh | 5 +- .../docker_env/scripts/metdataio_env.sh | 4 +- .../docker_env/scripts/metplotpy_env.sh | 15 +- .../scripts/docker_env/scripts/pandac_env.sh | 12 -- .../docker_env/scripts/py_embed_base_env.sh | 3 +- .../scripts/docker_env/scripts/pygrib_env.sh | 3 +- .../docker_env/scripts/spacetime_env.sh | 7 +- .../docker_env/scripts/weatherregime_env.sh | 4 +- .../scripts/docker_env/scripts/xesmf_env.sh | 6 +- .../wrappers/tc_diag/test_tc_diag_wrapper.py | 22 ++- internal/tests/use_cases/all_use_cases.txt | 1 + metplus/wrappers/tc_diag_wrapper.py | 29 ++-- parm/met_config/TCDiagConfig_wrapped | 33 ++--- .../met_tool_wrapper/TCDiag/TCDiag.conf | 23 +-- ...dStat_fcstGFS_obsOMI_TotalColumnOzone.conf | 106 ++++++++++++++ .../read_omi-aura_l3-omto3e.py | 92 ++++++++++++ 28 files changed, 415 insertions(+), 202 deletions(-) create mode 100644 docs/_static/medium_range-GridStat_fcstGFS_obsOMI_TotalColumnOzone.png create mode 100644 docs/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.py create mode 100644 parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.conf create mode 100644 parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone/read_omi-aura_l3-omto3e.py diff --git a/.github/actions/run_tests/Dockerfile b/.github/actions/run_tests/Dockerfile index f76b50ffae..8e4636d235 100644 --- a/.github/actions/run_tests/Dockerfile +++ b/.github/actions/run_tests/Dockerfile @@ -3,8 +3,6 @@ FROM alpine:latest COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh -RUN apk add --update --no-cache docker python3 py3-pip bash - -RUN pip3 install python-dateutil requests +RUN apk add --update --no-cache docker python3 py3-pip bash py3-dateutil py3-requests ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/.github/parm/use_case_groups.json b/.github/parm/use_case_groups.json index 2ba2e011c4..4bf11ac758 100644 --- a/.github/parm/use_case_groups.json +++ b/.github/parm/use_case_groups.json @@ -1,7 +1,7 @@ [ { "category": "met_tool_wrapper", - "index_list": "0-29,59-61,63", + "index_list": "0-29,59-63", "run": false }, { @@ -101,7 +101,7 @@ }, { "category": "medium_range", - "index_list": "3-5", + "index_list": "3-5,10", "run": false }, { diff --git a/docs/Users_Guide/glossary.rst b/docs/Users_Guide/glossary.rst index 1ab1e903bf..6a3d717e5b 100644 --- a/docs/Users_Guide/glossary.rst +++ b/docs/Users_Guide/glossary.rst @@ -10302,20 +10302,19 @@ METplus Configuration Glossary | *Used by:* TCDiag - TC_DIAG_CENSOR_THRESH - Specify the value for 'censor_thresh' in the MET configuration file for TCDiag. + TC_DIAG_DOMAIN_INFO_OVERRIDE_DIAGS + Specify the value for the nth 'domain_info.override_diags' in the MET configuration file for TCDiag. | *Used by:* TCDiag - TC_DIAG_CENSOR_VAL - Specify the value for 'censor_val' in the MET configuration file for TCDiag. + TC_DIAG_CENSOR_THRESH + .. warning:: **DEPRECATED:** Please use :term:`BOTH_VAR_OPTIONS` instead. - | *Used by:* TCDiag + TC_DIAG_CENSOR_VAL + .. warning:: **DEPRECATED:** Please use :term:`BOTH_VAR_OPTIONS` instead. TC_DIAG_CONVERT - Specify the value for 'convert' in the MET configuration file for TCDiag. - - | *Used by:* TCDiag + .. warning:: **DEPRECATED:** Please use :term:`BOTH_VAR_OPTIONS` instead. TC_DIAG_DATA_DOMAIN Specify the value for 'data.domain' in the MET configuration file for TCDiag. @@ -10407,8 +10406,8 @@ METplus Configuration Glossary | *Used by:* TCDiag - TC_DIAG_NC_RNG_AZI_FLAG - Specify the value for 'nc_rng_azi_flag' in the MET configuration file for TCDiag. + TC_DIAG_NC_CYL_GRID_FLAG + Specify the value for 'nc_cyl_grid_flag' in the MET configuration file for TCDiag. | *Used by:* TCDiag @@ -10423,7 +10422,10 @@ METplus Configuration Glossary | *Used by:* TCDiag TC_DIAG_OUTPUT_PREFIX - Specify the value for 'output_prefix' in the MET configuration file for TCDiag. + .. warning:: **DEPRECATED:** Please use :term:`TC_DIAG_OUTPUT_BASE_FORMAT` instead. + + TC_DIAG_OUTPUT_BASE_FORMAT + Specify the value for 'output_base_format' in the MET configuration file for TCDiag. | *Used by:* TCDiag diff --git a/docs/Users_Guide/release-notes.rst b/docs/Users_Guide/release-notes.rst index 28054ff5c2..6042b24fb1 100644 --- a/docs/Users_Guide/release-notes.rst +++ b/docs/Users_Guide/release-notes.rst @@ -197,6 +197,13 @@ the use case will not run until the METplus configuration file has been updated. How to upgrade ^^^^^^^^^^^^^^ +This video provides a demonstration of the process to upgrade a use case. + +.. raw:: html + + + + Removing **_CONFIG_FILE**, e.g. :term:`GRID_STAT_CONFIG_FILE`, from the METplus config file will prevent the errors and allow the use case to run. diff --git a/docs/Users_Guide/wrappers.rst b/docs/Users_Guide/wrappers.rst index 1078f6466c..380c7e8673 100644 --- a/docs/Users_Guide/wrappers.rst +++ b/docs/Users_Guide/wrappers.rst @@ -8225,9 +8225,7 @@ METplus Configuration | :term:`TC_DIAG_DOMAIN_INFO_N_AZIMUTH` | :term:`TC_DIAG_DOMAIN_INFO_DELTA_RANGE_KM` | :term:`TC_DIAG_DOMAIN_INFO_DIAG_SCRIPT` -| :term:`TC_DIAG_CENSOR_THRESH` -| :term:`TC_DIAG_CENSOR_VAL` -| :term:`TC_DIAG_CONVERT` +| :term:`TC_DIAG_DOMAIN_INFO_OVERRIDE_DIAGS` | :term:`TC_DIAG_INPUT_DATATYPE` | :term:`TC_DIAG_DATA_DOMAIN` | :term:`TC_DIAG_DATA_LEVEL` @@ -8247,10 +8245,10 @@ METplus Configuration | :term:`TC_DIAG_RADIAL_VELOCITY_LONG_FIELD_NAME` | :term:`TC_DIAG_VORTEX_REMOVAL` | :term:`TC_DIAG_ONE_TIME_PER_FILE_FLAG` -| :term:`TC_DIAG_NC_RNG_AZI_FLAG` +| :term:`TC_DIAG_NC_CYL_GRID_FLAG` | :term:`TC_DIAG_NC_DIAG_FLAG` | :term:`TC_DIAG_CIRA_DIAG_FLAG` -| :term:`TC_DIAG_OUTPUT_PREFIX` +| :term:`TC_DIAG_OUTPUT_BASE_FORMAT` | :term:`TC_DIAG_SKIP_IF_OUTPUT_EXISTS` | :term:`TC_DIAG_MET_CONFIG_OVERRIDES` | :term:`TC_DIAG_SKIP_VALID_TIMES` @@ -8447,42 +8445,8 @@ ${METPLUS_DOMAIN_INFO_LIST} - domain_info.delta_range_km * - :term:`TC_DIAG_DOMAIN_INFO_DIAG_SCRIPT` - domain_info.diag_script - -${METPLUS_CENSOR_THRESH} -"""""""""""""""""""""""" - -.. list-table:: - :widths: 5 5 - :header-rows: 1 - - * - METplus Config(s) - - MET Config File - * - :term:`TC_DIAG_CENSOR_THRESH` - - censor_thresh - -${METPLUS_CENSOR_VAL} -""""""""""""""""""""" - -.. list-table:: - :widths: 5 5 - :header-rows: 1 - - * - METplus Config(s) - - MET Config File - * - :term:`TC_DIAG_CENSOR_VAL` - - censor_val - -${METPLUS_CONVERT} -"""""""""""""""""" - -.. list-table:: - :widths: 5 5 - :header-rows: 1 - - * - METplus Config(s) - - MET Config File - * - :term:`TC_DIAG_CONVERT` - - convert + * - :term:`TC_DIAG_DOMAIN_INFO_OVERRIDE_DIAGS` + - domain_info.override_diags ${METPLUS_DATA_FILE_TYPE} """"""""""""""""""""""""" @@ -8670,8 +8634,8 @@ ${METPLUS_ONE_TIME_PER_FILE_FLAG} * - :term:`TC_DIAG_ONE_TIME_PER_FILE_FLAG` - one_time_per_file_flag -${METPLUS_NC_RNG_AZI_FLAG} -"""""""""""""""""""""""""" +${METPLUS_NC_CYL_GRID_FLAG} +""""""""""""""""""""""""""" .. list-table:: :widths: 5 5 @@ -8679,8 +8643,8 @@ ${METPLUS_NC_RNG_AZI_FLAG} * - METplus Config(s) - MET Config File - * - :term:`TC_DIAG_NC_RNG_AZI_FLAG` - - nc_rng_azi_flag + * - :term:`TC_DIAG_NC_CYL_GRID_FLAG` + - nc_cyl_grid_flag ${METPLUS_NC_DIAG_FLAG} """"""""""""""""""""""" @@ -8715,8 +8679,8 @@ ${METPLUS_OUTPUT_PREFIX} * - METplus Config(s) - MET Config File - * - :term:`TC_DIAG_OUTPUT_PREFIX` - - output_prefix + * - :term:`TC_DIAG_OUTPUT_BASE_FORMAT` + - output_base_format ${METPLUS_MET_CONFIG_OVERRIDES} """"""""""""""""""""""""""""""" diff --git a/docs/_static/medium_range-GridStat_fcstGFS_obsOMI_TotalColumnOzone.png b/docs/_static/medium_range-GridStat_fcstGFS_obsOMI_TotalColumnOzone.png new file mode 100644 index 0000000000000000000000000000000000000000..965f3e58dbee772f04d90757a71e9b2c95250814 GIT binary patch literal 173716 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%0Ds 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 literal 0 HcmV?d00001 diff --git a/docs/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.py b/docs/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.py new file mode 100644 index 0000000000..521f84f209 --- /dev/null +++ b/docs/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.py @@ -0,0 +1,136 @@ +""" +Grid-Stat: Using Python Embedding for Total Column Ozone +================================================================================ + +model_applications/medium_range/GridStat_fcstGFS_obsOMI +_TotalColumnOzone.conf + +""" +############################################################################## +# Scientific Objective +# -------------------- +# To provide useful statistical information on the relationship between observation +# data in gridded format to a gridded forecast. The Ozone Monitoring Instrument (OMI) +# data covers a 36 hour period and is compared to the average of the gridded forecast +# files (all from the same initialization time). + +############################################################################## +# Datasets +# -------- +# +# | **Forecast:** GFS (1 degree Lat/Lon grid) +# | **Observation:** NASA's Level-3 Aura/OMI Global Total Ozone Mapping Spectrometer-Like (TOMS-Like) Total Column Ozone gridded product OMTO3e (0.25deg Lat/Lon grid) +# | **Location:** Click here for 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. + +############################################################################## +# METplus Components +# ------------------ +# +# This use case first runs PCPCombine on the forecast data to build a +# 36-hour Total Colum Ozone mean/average file. Then the forecast data +# are compared to the observation data using GridStat. This use case utilizes +# the METplus GridStat wrapper to read in the observation file using Python Embedding. + +############################################################################## +# METplus Workflow +# ---------------- +# +# The following tools are used for each run time: +# +# PCPCombine (forecast) > GridStat +# +# It processes the following run times: +# +# | **Valid:** 2023-12-05 06Z (36 hour period covering 2023-12-03 18Z - 2023-12-05 06Z) +# | **Init:** 2023-12-03 06Z +# | **Forecast lead:** 48 + +############################################################################## +# METplus Configuration +# --------------------- +# +# METplus first loads all of the configuration files found in parm/metplus_config, +# then it loads any configuration files passed to METplus via the command line +# parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.conf +# +# .. highlight:: bash +# .. literalinclude:: ../../../../parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.conf + +############################################################################## +# MET Configuration +# ----------------- +# +# METplus sets environment variables based on user settings in the METplus configuration file. +# See :ref:`How METplus controls MET config file settings` 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/GridStatConfig_wrapped + +############################################################################## +# Python Embedding +# ---------------- +# +# This use case uses one Python embedding script with GridStat to read the input observation data +# +# parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone/read_omi-aura_l3-omto3e.py +# +# .. highlight:: python +# .. literalinclude:: ../../../../parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone/read_omi-aura_l3-omto3e.py + + +############################################################################## +# Running METplus +# --------------- +# +# Pass the use case configuration file to the run_metplus.py script +# along with any user-specific system configuration files if desired:: +# +# run_metplus.py /path/to/METplus/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.conf /path/to/user_system.conf +# +# See :ref:`running-metplus` for more information. +# + +############################################################################## +# 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 this use case will be found in /model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone +# (relative to **OUTPUT_BASE**) +# and will contain the following files: +# +# * PCPCombine/pcp_combine.tozone_l0.mean.f048.init2023120306.nc +# * GridStat/grid_stat_GFS_vs_OMI_480000L_20231205_060000V.stat + +############################################################################## +# Keywords +# -------- +# +# .. note:: +# +# * PCPCombineToolUseCase +# * GridStatToolUseCase +# * MediumRangeAppUseCase +# * GRIBFileUseCase +# * PythonEmbeddingFileUseCase +# * RegriddingInToolUseCase +# * NOAAEMCOrgUseCase +# +# Navigate to the :ref:`quick-search` page to discover other similar use cases. +# +# +# +# sphinx_gallery_thumbnail_path = '_static/medium_range-GridStat_fcstGFS_obsOMI_TotalColumnOzone.png' +# diff --git a/internal/scripts/docker_env/README.md b/internal/scripts/docker_env/README.md index a3f70f3b39..6a121cde50 100644 --- a/internal/scripts/docker_env/README.md +++ b/internal/scripts/docker_env/README.md @@ -416,9 +416,6 @@ docker push dtcenter/metplus-envs:geovista.${METPLUS_ENV_VERSION} ``` export METPLUS_ENV_VERSION=v6.0 ./scripts/geovista_env.sh ${METPLUS_ENV_VERSION} - -cd /home/met_test/geovista -/home/met_test/.conda/envs/geovista.${METPLUS_ENV_VERSION}/bin/pip3 install --no-deps --editable . ``` ## pandac.v6.0 (from metplotpy.v6.0) diff --git a/internal/scripts/docker_env/scripts/cfgrib_env.sh b/internal/scripts/docker_env/scripts/cfgrib_env.sh index 123d99d45d..66799f1aef 100755 --- a/internal/scripts/docker_env/scripts/cfgrib_env.sh +++ b/internal/scripts/docker_env/scripts/cfgrib_env.sh @@ -21,7 +21,4 @@ METPLUS_VERSION=$1 ENV_NAME=cfgrib.${METPLUS_VERSION} mamba create -y --name ${ENV_NAME} -c conda-forge python=3.10.4 -mamba install -y --name ${ENV_NAME} -c conda-forge metpy==1.4.0 -mamba install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.6.2 -mamba install -y --name ${ENV_NAME} -c conda-forge cfgrib==0.9.10.1 -mamba install -y --name ${ENV_NAME} -c conda-forge pygrib==2.1.4 +mamba install -y --name ${ENV_NAME} -c conda-forge metpy==1.4.0 netcdf4==1.6.2 cfgrib==0.9.10.1 pygrib==2.1.4 diff --git a/internal/scripts/docker_env/scripts/cycloneplotter_env.sh b/internal/scripts/docker_env/scripts/cycloneplotter_env.sh index ae742ceaec..d7aa43e863 100755 --- a/internal/scripts/docker_env/scripts/cycloneplotter_env.sh +++ b/internal/scripts/docker_env/scripts/cycloneplotter_env.sh @@ -23,6 +23,4 @@ ENV_NAME=cycloneplotter.${METPLUS_VERSION} BASE_ENV=metplus_base.${METPLUS_VERSION} mamba create -y --clone ${BASE_ENV} --name ${ENV_NAME} -mamba install -y --name ${ENV_NAME} -c conda-forge cartopy==0.20.3 -mamba install -y --name ${ENV_NAME} -c conda-forge matplotlib==3.5.2 -mamba install -y --name ${ENV_NAME} -c conda-forge pandas==1.4.3 +mamba install -y --name ${ENV_NAME} -c conda-forge cartopy==0.20.3 matplotlib==3.5.2 pandas==1.4.3 diff --git a/internal/scripts/docker_env/scripts/diff_env.sh b/internal/scripts/docker_env/scripts/diff_env.sh index b5f62c4e2e..40048e841a 100755 --- a/internal/scripts/docker_env/scripts/diff_env.sh +++ b/internal/scripts/docker_env/scripts/diff_env.sh @@ -24,8 +24,7 @@ ENV_NAME=diff.${METPLUS_VERSION} BASE_ENV=netcdf4.${METPLUS_VERSION} mamba create -y --clone ${BASE_ENV} --name ${ENV_NAME} -mamba install -y --name ${ENV_NAME} -c conda-forge pandas==2.0.2 -mamba install -y --name ${ENV_NAME} -c conda-forge pillow==9.2.0 +mamba install -y --name ${ENV_NAME} -c conda-forge pandas==2.0.2 pillow==9.2.0 apt-get update apt-get install -y poppler-utils diff --git a/internal/scripts/docker_env/scripts/geovista_env.sh b/internal/scripts/docker_env/scripts/geovista_env.sh index 4c0a8a9398..9dce88d63d 100755 --- a/internal/scripts/docker_env/scripts/geovista_env.sh +++ b/internal/scripts/docker_env/scripts/geovista_env.sh @@ -25,6 +25,4 @@ apt install -y libgl1-mesa-glx apt install -y libegl1 mamba create -y --name ${ENV_NAME} -c conda-forge python=3.10.4 -mamba install -y --name ${ENV_NAME} -c conda-forge geovista==0.3.0 -mamba install -y --name ${ENV_NAME} -c conda-forge xarray==2023.8.0 -mamba install -y --name ${ENV_NAME} -c conda-forge iris==3.7.0 +mamba install -y --name ${ENV_NAME} -c conda-forge geovista==0.3.0 xarray==2023.8.0 iris==3.7.0 diff --git a/internal/scripts/docker_env/scripts/icecover_env.sh b/internal/scripts/docker_env/scripts/icecover_env.sh index fc5ea361cf..a622b869e0 100755 --- a/internal/scripts/docker_env/scripts/icecover_env.sh +++ b/internal/scripts/docker_env/scripts/icecover_env.sh @@ -23,7 +23,4 @@ ENV_NAME=icecover.${METPLUS_VERSION} BASE_ENV=py_embed_base.${METPLUS_VERSION} mamba create -y --clone ${BASE_ENV} --name ${ENV_NAME} -mamba install -y --name ${ENV_NAME} -c conda-forge xarray==2023.5.0 -mamba install -y --name ${ENV_NAME} -c conda-forge pyresample==1.27.1 -mamba install -y --name ${ENV_NAME} -c conda-forge scikit-learn==1.3.0 -mamba install -y --name ${ENV_NAME} -c conda-forge pyproj==3.6.0 +mamba install -y --name ${ENV_NAME} -c conda-forge xarray==2023.5.0 pyresample==1.27.1 scikit-learn==1.3.0 pyproj==3.6.0 diff --git a/internal/scripts/docker_env/scripts/metdataio_env.sh b/internal/scripts/docker_env/scripts/metdataio_env.sh index a1e2c291c8..a0eac3a869 100755 --- a/internal/scripts/docker_env/scripts/metdataio_env.sh +++ b/internal/scripts/docker_env/scripts/metdataio_env.sh @@ -23,6 +23,4 @@ BASE_ENV=metplus_base.${METPLUS_VERSION} mamba create -y --clone ${BASE_ENV} --name ${ENV_NAME} -mamba install -y --name ${ENV_NAME} -c conda-forge lxml==4.9.1 -mamba install -y --name ${ENV_NAME} -c conda-forge pymysql==1.0.2 -mamba install -y --name ${ENV_NAME} -c conda-forge pandas==1.5.1 +mamba install -y --name ${ENV_NAME} -c conda-forge lxml==4.9.1 pymysql==1.0.2 pandas==1.5.1 diff --git a/internal/scripts/docker_env/scripts/metplotpy_env.sh b/internal/scripts/docker_env/scripts/metplotpy_env.sh index c571404b65..6a55e6238e 100755 --- a/internal/scripts/docker_env/scripts/metplotpy_env.sh +++ b/internal/scripts/docker_env/scripts/metplotpy_env.sh @@ -33,17 +33,4 @@ BASE_ENV=metplus_base.${METPLUS_VERSION} mamba create -y --clone ${BASE_ENV} --name ${ENV_NAME} -mamba install -y --name ${ENV_NAME} -c conda-forge matplotlib==3.6.3 -mamba install -y --name ${ENV_NAME} -c conda-forge scipy==1.9.3 -mamba install -y --name ${ENV_NAME} -c conda-forge plotly==5.13.0 -mamba install -y --name ${ENV_NAME} -c conda-forge xarray==2023.1.0 -mamba install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.6.2 -mamba install -y --name ${ENV_NAME} -c conda-forge pyyaml==6.0 -#mamba install -y --name ${ENV_NAME} -c conda-forge statsmodels #==0.13.2 -mamba install -y --name ${ENV_NAME} -c conda-forge python-kaleido==0.2.1 -mamba install -y --name ${ENV_NAME} -c conda-forge imageio==2.25.0 -mamba install -y --name ${ENV_NAME} -c conda-forge imutils==0.5.4 -mamba install -y --name ${ENV_NAME} -c conda-forge scikit-image -mamba install -y --name ${ENV_NAME} -c conda-forge pint==0.20.1 -mamba install -y --name ${ENV_NAME} -c conda-forge metpy -mamba install -y --name ${ENV_NAME} -c conda-forge cartopy==0.21.1 +mamba install -y --name ${ENV_NAME} -c conda-forge matplotlib==3.6.3 scipy==1.9.3 plotly==5.13.0 xarray==2023.1.0 netcdf4==1.6.2 pyyaml==6.0 python-kaleido==0.2.1 imageio==2.25.0 imutils==0.5.4 scikit-image pint==0.20.1 metpy cartopy==0.21.1 diff --git a/internal/scripts/docker_env/scripts/pandac_env.sh b/internal/scripts/docker_env/scripts/pandac_env.sh index 05474b936e..571824f19a 100755 --- a/internal/scripts/docker_env/scripts/pandac_env.sh +++ b/internal/scripts/docker_env/scripts/pandac_env.sh @@ -24,20 +24,8 @@ BASE_ENV=metplotpy.${METPLUS_VERSION} mamba create -y --clone ${BASE_ENV} --name ${ENV_NAME} - -#mamba install -y --name ${ENV_NAME} -c conda-forge scipy==1.10.1 -#if [ $? != 0 ]; then -# echo install of scipy==1.10.1 failed -# exit 1 -#fi - mamba install -y --name ${ENV_NAME} -c conda-forge pygrib==2.1.4 if [ $? != 0 ]; then echo install of pygrib==2.1.4 failed exit 1 fi -#mamba install -y --name ${ENV_NAME} -c conda-forge matplotlib==3.6.3 -#if [ $? != 0 ]; then -# echo install of matplotlib==3.6.3 failed -# exit 1 -#fi diff --git a/internal/scripts/docker_env/scripts/py_embed_base_env.sh b/internal/scripts/docker_env/scripts/py_embed_base_env.sh index 1a59cd3b2d..bd28945ea7 100755 --- a/internal/scripts/docker_env/scripts/py_embed_base_env.sh +++ b/internal/scripts/docker_env/scripts/py_embed_base_env.sh @@ -19,5 +19,4 @@ METPLUS_VERSION=$1 ENV_NAME=py_embed_base.${METPLUS_VERSION} mamba create -y --name ${ENV_NAME} -c conda-forge python=3.10.4 -mamba install -y --name ${ENV_NAME} -c conda-forge xarray==2022.3.0 -mamba install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.6.2 +mamba install -y --name ${ENV_NAME} -c conda-forge xarray==2022.3.0 netcdf4==1.6.2 yaml==0.2.5 diff --git a/internal/scripts/docker_env/scripts/pygrib_env.sh b/internal/scripts/docker_env/scripts/pygrib_env.sh index 061ff2c951..ab2754ca01 100755 --- a/internal/scripts/docker_env/scripts/pygrib_env.sh +++ b/internal/scripts/docker_env/scripts/pygrib_env.sh @@ -23,5 +23,4 @@ BASE_ENV=py_embed_base.${METPLUS_VERSION} mamba create -y --clone ${BASE_ENV} --name ${ENV_NAME} -mamba install -y --name ${ENV_NAME} -c conda-forge pygrib==2.1.4 -mamba install -y --name ${ENV_NAME} -c conda-forge metpy==1.3.0 +mamba install -y --name ${ENV_NAME} -c conda-forge pygrib==2.1.4 metpy==1.3.0 diff --git a/internal/scripts/docker_env/scripts/spacetime_env.sh b/internal/scripts/docker_env/scripts/spacetime_env.sh index d56c2c3221..36e250496a 100755 --- a/internal/scripts/docker_env/scripts/spacetime_env.sh +++ b/internal/scripts/docker_env/scripts/spacetime_env.sh @@ -23,9 +23,4 @@ ENV_NAME=spacetime.${METPLUS_VERSION} mamba create -y --name ${ENV_NAME} -c conda-forge python=3.10.4 -mamba install -y --name ${ENV_NAME} -c conda-forge netCDF4==1.6.4 -mamba install -y --name ${ENV_NAME} -c conda-forge xarray==2023.8.0 -mamba install -y --name ${ENV_NAME} -c conda-forge scipy==1.11.2 -mamba install -y --name ${ENV_NAME} -c conda-forge matplotlib==3.7.2 -mamba install -y --name ${ENV_NAME} -c conda-forge pyngl==1.6.1 -mamba install -y --name ${ENV_NAME} -c conda-forge pyyaml==6.0.1 +mamba install -y --name ${ENV_NAME} -c conda-forge netCDF4==1.6.4 xarray==2023.8.0 scipy==1.11.2 matplotlib==3.7.2 pyngl==1.6.1 pyyaml==6.0.1 diff --git a/internal/scripts/docker_env/scripts/weatherregime_env.sh b/internal/scripts/docker_env/scripts/weatherregime_env.sh index e00b92e411..74932dc5e9 100755 --- a/internal/scripts/docker_env/scripts/weatherregime_env.sh +++ b/internal/scripts/docker_env/scripts/weatherregime_env.sh @@ -25,6 +25,4 @@ BASE_ENV=metplotpy.${METPLUS_VERSION} mamba create -y --clone ${BASE_ENV} --name ${ENV_NAME} -mamba install -y --name ${ENV_NAME} -c conda-forge scikit-learn==1.1.1 -mamba install -y --name ${ENV_NAME} -c conda-forge eofs==1.4.0 -mamba install -y --name ${ENV_NAME} -c conda-forge cmocean==2.0 +mamba install -y --name ${ENV_NAME} -c conda-forge scikit-learn==1.1.1 eofs==1.4.0 cmocean==2.0 diff --git a/internal/scripts/docker_env/scripts/xesmf_env.sh b/internal/scripts/docker_env/scripts/xesmf_env.sh index 779e0c36ff..3a7965b264 100755 --- a/internal/scripts/docker_env/scripts/xesmf_env.sh +++ b/internal/scripts/docker_env/scripts/xesmf_env.sh @@ -26,8 +26,4 @@ ENV_NAME=xesmf.${METPLUS_VERSION} BASE_ENV=metplus_base.${METPLUS_VERSION} mamba create -y --clone ${BASE_ENV} --name ${ENV_NAME} -mamba install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.6.2 -mamba install -y --name ${ENV_NAME} -c conda-forge xarray==2022.3.0 -mamba install -y --name ${ENV_NAME} -c conda-forge xesmf==0.8.2 -mamba install -y --name ${ENV_NAME} -c conda-forge esmf==8.3.1 - +mamba install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.6.2 xarray==2022.3.0 xesmf==0.8.2 esmf==8.3.1 diff --git a/internal/tests/pytests/wrappers/tc_diag/test_tc_diag_wrapper.py b/internal/tests/pytests/wrappers/tc_diag/test_tc_diag_wrapper.py index ec3458c8ea..2a0954cb2b 100644 --- a/internal/tests/pytests/wrappers/tc_diag/test_tc_diag_wrapper.py +++ b/internal/tests/pytests/wrappers/tc_diag/test_tc_diag_wrapper.py @@ -101,35 +101,31 @@ def set_minimum_config_settings(config): {'METPLUS_DOMAIN_INFO_LIST': 'domain_info = [{delta_range_km = 10.0;}];'}), ({'TC_DIAG_DOMAIN_INFO1_DIAG_SCRIPT': 'MET_BASE/python/tc_diag/compute_all_diagnostics.py,MET_BASE/python/tc_diag/compute_custom_diagnostics.py', }, {'METPLUS_DOMAIN_INFO_LIST': 'domain_info = [{diag_script = ["MET_BASE/python/tc_diag/compute_all_diagnostics.py", "MET_BASE/python/tc_diag/compute_custom_diagnostics.py"];}];'}), + ({'TC_DIAG_DOMAIN_INFO1_OVERRIDE_DIAGS': 'RMW,SST', }, + {'METPLUS_DOMAIN_INFO_LIST': 'domain_info = [{override_diags = ["RMW", "SST"];}];'}), ({'TC_DIAG_DOMAIN_INFO1_DOMAIN': 'parent', 'TC_DIAG_DOMAIN_INFO1_N_RANGE': '150', 'TC_DIAG_DOMAIN_INFO1_N_AZIMUTH': '8', 'TC_DIAG_DOMAIN_INFO1_DELTA_RANGE_KM': '10.0', 'TC_DIAG_DOMAIN_INFO1_DIAG_SCRIPT': 'MET_BASE/python/tc_diag/compute_all_diagnostics.py,MET_BASE/python/tc_diag/compute_custom_diagnostics.py', + 'TC_DIAG_DOMAIN_INFO1_OVERRIDE_DIAGS': 'RMW,SST', }, - {'METPLUS_DOMAIN_INFO_LIST': 'domain_info = [{domain = "parent";n_range = 150;n_azimuth = 8;delta_range_km = 10.0;diag_script = ["MET_BASE/python/tc_diag/compute_all_diagnostics.py", "MET_BASE/python/tc_diag/compute_custom_diagnostics.py"];}];'}), + {'METPLUS_DOMAIN_INFO_LIST': 'domain_info = [{domain = "parent";n_range = 150;n_azimuth = 8;delta_range_km = 10.0;diag_script = ["MET_BASE/python/tc_diag/compute_all_diagnostics.py", "MET_BASE/python/tc_diag/compute_custom_diagnostics.py"];override_diags = ["RMW", "SST"];}];'}), # domain_info 2 dictionaries in list ({'TC_DIAG_DOMAIN_INFO1_DOMAIN': 'parent', 'TC_DIAG_DOMAIN_INFO1_N_RANGE': '150', 'TC_DIAG_DOMAIN_INFO1_N_AZIMUTH': '8', 'TC_DIAG_DOMAIN_INFO1_DELTA_RANGE_KM': '10.0', 'TC_DIAG_DOMAIN_INFO1_DIAG_SCRIPT': 'MET_BASE/python/tc_diag/compute_all_diagnostics.py,MET_BASE/python/tc_diag/compute_custom_diagnostics.py', + 'TC_DIAG_DOMAIN_INFO1_OVERRIDE_DIAGS': 'RMW,SST', 'TC_DIAG_DOMAIN_INFO2_DOMAIN': 'nest', 'TC_DIAG_DOMAIN_INFO2_N_RANGE': '100', 'TC_DIAG_DOMAIN_INFO2_N_AZIMUTH': '7', 'TC_DIAG_DOMAIN_INFO2_DELTA_RANGE_KM': '12.0', 'TC_DIAG_DOMAIN_INFO2_DIAG_SCRIPT': 'MET_BASE/python/tc_diag/compute_sst_diagnostics.py', + 'TC_DIAG_DOMAIN_INFO2_OVERRIDE_DIAGS': 'SST', }, - {'METPLUS_DOMAIN_INFO_LIST': 'domain_info = [{domain = "parent";n_range = 150;n_azimuth = 8;delta_range_km = 10.0;diag_script = ["MET_BASE/python/tc_diag/compute_all_diagnostics.py", "MET_BASE/python/tc_diag/compute_custom_diagnostics.py"];},{domain = "nest";n_range = 100;n_azimuth = 7;delta_range_km = 12.0;diag_script = ["MET_BASE/python/tc_diag/compute_sst_diagnostics.py"];}];'}), - - ({'TC_DIAG_CENSOR_THRESH': '>12000,<5000', }, - {'METPLUS_CENSOR_THRESH': 'censor_thresh = [>12000, <5000];'}), - - ({'TC_DIAG_CENSOR_VAL': '12000,5000', }, - {'METPLUS_CENSOR_VAL': 'censor_val = [12000, 5000];'}), - - ({'TC_DIAG_CONVERT': '2*x', }, - {'METPLUS_CONVERT': 'convert(x) = 2*x;'}), + {'METPLUS_DOMAIN_INFO_LIST': 'domain_info = [{domain = "parent";n_range = 150;n_azimuth = 8;delta_range_km = 10.0;diag_script = ["MET_BASE/python/tc_diag/compute_all_diagnostics.py", "MET_BASE/python/tc_diag/compute_custom_diagnostics.py"];override_diags = ["RMW", "SST"];},{domain = "nest";n_range = 100;n_azimuth = 7;delta_range_km = 12.0;diag_script = ["MET_BASE/python/tc_diag/compute_sst_diagnostics.py"];override_diags = ["SST"];}];'}), ({'TC_DIAG_DATA_DOMAIN': 'parent,nest', }, {'METPLUS_DATA_DOMAIN': 'domain = ["parent", "nest"];'}), @@ -197,13 +193,13 @@ def set_minimum_config_settings(config): ({'TC_DIAG_VORTEX_REMOVAL': 'False', }, {'METPLUS_VORTEX_REMOVAL': 'vortex_removal = FALSE;'}), - ({'TC_DIAG_NC_RNG_AZI_FLAG': 'true', }, {'METPLUS_NC_RNG_AZI_FLAG': 'nc_rng_azi_flag = TRUE;'}), + ({'TC_DIAG_NC_CYL_GRID_FLAG': 'true', }, {'METPLUS_NC_CYL_GRID_FLAG': 'nc_cyl_grid_flag = TRUE;'}), ({'TC_DIAG_NC_DIAG_FLAG': 'true', }, {'METPLUS_NC_DIAG_FLAG': 'nc_diag_flag = TRUE;'}), ({'TC_DIAG_CIRA_DIAG_FLAG': 'True', }, {'METPLUS_CIRA_DIAG_FLAG': 'cira_diag_flag = TRUE;'}), - ({'TC_DIAG_OUTPUT_PREFIX': 'my_prefix', }, {'METPLUS_OUTPUT_PREFIX': 'output_prefix = "my_prefix";'}), + ({'TC_DIAG_OUTPUT_BASE_FORMAT': 's{storm_id}_{technique}_doper_{init_ymdh}', }, {'METPLUS_OUTPUT_BASE_FORMAT': 'output_base_format = "s{storm_id}_{technique}_doper_{init_ymdh}";'}), ({'TC_DIAG_ONE_TIME_PER_FILE_FLAG': 'false', }, {'METPLUS_ONE_TIME_PER_FILE_FLAG': 'one_time_per_file_flag = FALSE;'}), ] diff --git a/internal/tests/use_cases/all_use_cases.txt b/internal/tests/use_cases/all_use_cases.txt index 235c910c71..68f29e3873 100644 --- a/internal/tests/use_cases/all_use_cases.txt +++ b/internal/tests/use_cases/all_use_cases.txt @@ -115,6 +115,7 @@ Category: medium_range 7::TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics:: model_applications/medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics.conf:: cfgrib_env,py_embed 8::MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead::model_applications/medium_range/MTD_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead.conf:: netcdf4_env 9::GridStat_fcstGEFS_obsCADB_BinaryObsPOE:: model_applications/medium_range/GridStat_fcstGEFS_obsCADB_BinaryObsPOE.conf:: netcdf4_env +10::GridStat_fcstGFS_obsOMI_TotalColumnOzone:: model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.conf:: py_embed Category: pbl diff --git a/metplus/wrappers/tc_diag_wrapper.py b/metplus/wrappers/tc_diag_wrapper.py index e72f0efffa..554151a0f9 100755 --- a/metplus/wrappers/tc_diag_wrapper.py +++ b/metplus/wrappers/tc_diag_wrapper.py @@ -43,9 +43,6 @@ class TCDiagWrapper(RuntimeFreqWrapper): 'METPLUS_LEAD_LIST', 'METPLUS_DIAG_SCRIPT', 'METPLUS_DOMAIN_INFO_LIST', - 'METPLUS_CENSOR_THRESH', - 'METPLUS_CENSOR_VAL', - 'METPLUS_CONVERT', 'METPLUS_DATA_FILE_TYPE', 'METPLUS_DATA_DOMAIN', 'METPLUS_DATA_LEVEL', @@ -61,15 +58,19 @@ class TCDiagWrapper(RuntimeFreqWrapper): 'METPLUS_VORTEX_REMOVAL', 'METPLUS_VORTEX_REMOVAL', 'METPLUS_NC_DIAG_FLAG', - 'METPLUS_NC_RNG_AZI_FLAG', + 'METPLUS_NC_CYL_GRID_FLAG', 'METPLUS_CIRA_DIAG_FLAG', - 'METPLUS_OUTPUT_PREFIX', + 'METPLUS_OUTPUT_BASE_FORMAT', 'METPLUS_ONE_TIME_PER_FILE_FLAG', ] # deprecated env vars that are no longer supported in the wrapped MET conf DEPRECATED_WRAPPER_ENV_VAR_KEYS = [ 'OUTPUT_PREFIX', + 'METPLUS_OUTPUT_PREFIX', + 'METPLUS_CENSOR_THRESH', + 'METPLUS_CENSOR_VAL', + 'METPLUS_CONVERT', ] def __init__(self, config, instance=None): @@ -168,6 +169,7 @@ def create_c_dict(self): 'n_azimuth': 'int', 'delta_range_km': 'float', 'diag_script': 'list', + 'override_diags': ('list', 'allow_empty'), } if not add_met_config_dict_list(config=self.config, app_name=self.app_name, @@ -176,19 +178,6 @@ def create_c_dict(self): dict_items=dict_items): self.isOK = False - self.add_met_config(name='censor_thresh', - data_type='list', - extra_args={'remove_quotes': True}) - - self.add_met_config(name='censor_val', - data_type='list', - extra_args={'remove_quotes': True}) - - self.add_met_config(name='convert', - data_type='string', - extra_args={'remove_quotes': True, - 'add_x': True}) - # handle data dictionary, including field, domain, level, and file_type c_dict['VAR_LIST_TEMP'] = parse_var_list(self.config, data_type='FCST', @@ -228,11 +217,11 @@ def create_c_dict(self): self.add_met_config(name='one_time_per_file_flag', data_type='bool') - self.add_met_config(name='nc_rng_azi_flag', data_type='bool') + self.add_met_config(name='nc_cyl_grid_flag', data_type='bool') self.add_met_config(name='nc_diag_flag', data_type='bool') self.add_met_config(name='cira_diag_flag', data_type='bool') - self.add_met_config(name='output_prefix', data_type='string') + self.add_met_config(name='output_base_format', data_type='string') return c_dict diff --git a/parm/met_config/TCDiagConfig_wrapped b/parm/met_config/TCDiagConfig_wrapped index d081f2430d..8dacb81b26 100644 --- a/parm/met_config/TCDiagConfig_wrapped +++ b/parm/met_config/TCDiagConfig_wrapped @@ -88,21 +88,17 @@ ${METPLUS_DOMAIN_INFO_LIST} //////////////////////////////////////////////////////////////////////////////// // -// Data censoring and conversion +// Cylindrical coordinate transformation regridding options // May be set separately in each diag_data "field" entry // -// censor_thresh = []; -${METPLUS_CENSOR_THRESH} - -// censor_val = []; -${METPLUS_CENSOR_VAL} - -// convert(x) = x; -${METPLUS_CONVERT} +//regrid = { +${METPLUS_REGRID_DICT} // // Data fields +// censor_thresh, censor_val, and convert(x) may be set separately +// in each data "field" array entry // data = { @@ -122,12 +118,6 @@ data = { //////////////////////////////////////////////////////////////////////////////// -// -// Regridding options -// -//regrid = { -${METPLUS_REGRID_DICT} - // // Optionally convert u/v winds to tangential/radial winds // @@ -168,8 +158,8 @@ ${METPLUS_ONE_TIME_PER_FILE_FLAG} // // Flags to control output files // -//nc_rng_azi_flag = -${METPLUS_NC_RNG_AZI_FLAG} +//nc_cyl_grid_flag = +${METPLUS_NC_CYL_GRID_FLAG} //nc_diag_flag = ${METPLUS_NC_DIAG_FLAG} @@ -177,14 +167,15 @@ ${METPLUS_NC_DIAG_FLAG} //cira_diag_flag = ${METPLUS_CIRA_DIAG_FLAG} +// +// Output base file naming convention +// +//output_base_format = +${METPLUS_OUTPUT_BASE_FORMAT} //////////////////////////////////////////////////////////////////////////////// tmp_dir = "${MET_TMP_DIR}"; - -//output_prefix = -${METPLUS_OUTPUT_PREFIX} - //version = "V11.1.0"; //////////////////////////////////////////////////////////////////////////////// diff --git a/parm/use_cases/met_tool_wrapper/TCDiag/TCDiag.conf b/parm/use_cases/met_tool_wrapper/TCDiag/TCDiag.conf index 385148ee0b..37f191c712 100644 --- a/parm/use_cases/met_tool_wrapper/TCDiag/TCDiag.conf +++ b/parm/use_cases/met_tool_wrapper/TCDiag/TCDiag.conf @@ -45,12 +45,6 @@ TC_DIAG_INPUT1_TEMPLATE = subset.gfs.t12z.pgrb2.0p50.f* TC_DIAG_INPUT1_DOMAIN = parent TC_DIAG_INPUT1_TECH_ID_LIST = AVNO - -TC_DIAG_INPUT2_DIR = {INPUT_BASE}/met_test/new/model_data/grib2/gfs -TC_DIAG_INPUT2_TEMPLATE = subset.gfs.t12z.pgrb2.0p50.f* -TC_DIAG_INPUT2_DOMAIN = nest -TC_DIAG_INPUT2_TECH_ID_LIST = AVNO - TC_DIAG_OUTPUT_DIR = {OUTPUT_BASE}/tc_diag TC_DIAG_OUTPUT_TEMPLATE = {date?fmt=%Y} @@ -96,17 +90,8 @@ TC_DIAG_DOMAIN_INFO1_DOMAIN = parent TC_DIAG_DOMAIN_INFO1_N_RANGE = 150 TC_DIAG_DOMAIN_INFO1_N_AZIMUTH = 8 TC_DIAG_DOMAIN_INFO1_DELTA_RANGE_KM = 10.0 -#TC_DIAG_DOMAIN_INFO1_DIAG_SCRIPT = - -TC_DIAG_DOMAIN_INFO2_DOMAIN = nest -TC_DIAG_DOMAIN_INFO2_N_RANGE = 150 -TC_DIAG_DOMAIN_INFO2_N_AZIMUTH = 8 -TC_DIAG_DOMAIN_INFO2_DELTA_RANGE_KM = 2.0 - - -#TC_DIAG_CENSOR_THRESH = -#TC_DIAG_CENSOR_VAL = -#TC_DIAG_CONVERT = +TC_DIAG_DOMAIN_INFO1_DIAG_SCRIPT = MET_BASE/python/tc_diag/compute_tc_diag.py MET_BASE/python/tc_diag/config/post_resample.yml MET_BASE/tc_data/v2023-04-07_gdland_table.dat +TC_DIAG_DOMAIN_INFO1_OVERRIDE_DIAGS = #TC_DIAG_DATA_DOMAIN = #TC_DIAG_DATA_LEVEL = @@ -128,9 +113,9 @@ TC_DIAG_DOMAIN_INFO2_DELTA_RANGE_KM = 2.0 #TC_DIAG_RADIAL_VELOCITY_LONG_FIELD_NAME = #TC_DIAG_VORTEX_REMOVAL = #TC_DIAG_ONE_TIME_PER_FILE_FLAG = -#TC_DIAG_NC_RNG_AZI_FLAG = +#TC_DIAG_NC_CYL_GRID_FLAG = #TC_DIAG_NC_DIAG_FLAG = #TC_DIAG_CIRA_DIAG_FLAG = -#TC_DIAG_OUTPUT_PREFIX = +#TC_DIAG_OUTPUT_BASE_FORMAT = #LOG_LEVEL=DEBUG \ No newline at end of file diff --git a/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.conf b/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.conf new file mode 100644 index 0000000000..02c1e5b1b8 --- /dev/null +++ b/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.conf @@ -0,0 +1,106 @@ +[config] + +# Documentation for this use case can be found at +# https://metplus.readthedocs.io/en/latest/generated/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone.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 = PCPCombine, GridStat + +### +# 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 = 2023120506 +VALID_END = 2023120506 +VALID_INCREMENT = 21600 + +LEAD_SEQ = 48 + +### +# File I/O +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info +### + +# PCP_COMBINE +FCST_PCP_COMBINE_RUN = True +FCST_PCP_COMBINE_INPUT_DIR = {INPUT_BASE}/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone/fcst +FCST_PCP_COMBINE_INPUT_TEMPLATE = tozne.pgbf{lead?fmt=%HH}.gfs.{init?fmt=%Y%m%d%H} +FCST_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone/PCPCombine +FCST_PCP_COMBINE_OUTPUT_TEMPLATE = pcp_combine.tozone_l0.mean.f{lead?fmt=%HHH}.init{init?fmt=%Y%m%d%H}.nc + +# GRID_STAT +FCST_GRID_STAT_INPUT_DIR = {FCST_PCP_COMBINE_OUTPUT_DIR} +FCST_GRID_STAT_INPUT_TEMPLATE = {FCST_PCP_COMBINE_OUTPUT_TEMPLATE} +OBS_GRID_STAT_INPUT_TEMPLATE = PYTHON_NUMPY +GRID_STAT_OUTPUT_DIR = {OUTPUT_BASE}/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone/GridStat +GRID_STAT_OUTPUT_TEMPLATE = + +### +# Field Info +# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info +### + +CONFIG_DIR = {PARM_BASE}/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone + +# GRID_STAT +GRID_STAT_ONCE_PER_FIELD = False +FCST_VAR1_NAME = TOZNE_L0_mean +FCST_VAR1_LEVELS = (*,*) +OBS_VAR1_NAME = {CONFIG_DIR}/read_omi-aura_l3-omto3e.py {INPUT_BASE}/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone/obs/OMI-Aura_L3-OMTO3e_{valid?fmt=%Y?shift=-86400}m{valid?fmt=%m%d?shift=-86400}_v883-{valid?fmt=%Y}m{valid?fmt=%m%d}t010905.he5 obs + +### +# PCPCombine Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine +### +FCST_PCP_COMBINE_METHOD = DERIVE +FCST_PCP_COMBINE_STAT_LIST = mean +FCST_PCP_COMBINE_DERIVE_LOOKBACK = 42H +FCST_PCP_COMBINE_MIN_FORECAST = 12 +FCST_PCP_COMBINE_MAX_FORECAST = 48 +FCST_IS_PROB = false +FCST_PCP_COMBINE_INPUT_DATATYPE = GRIB +FCST_PCP_COMBINE_INPUT_ACCUMS = 6H +FCST_PCP_COMBINE_INPUT_NAMES = TOZNE +FCST_PCP_COMBINE_INPUT_LEVELS = L0 +FCST_PCP_COMBINE_INPUT_OPTIONS = GRIB_lvl_typ = 200; +FCST_PCP_COMBINE_OUTPUT_ACCUM = 36H +FCST_PCP_COMBINE_OUTPUT_NAME = + +### +# GridStat Settings +# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gridstat +### + +MODEL = GFS +OBTYPE = OMI +GRID_STAT_OUTPUT_PREFIX = {MODEL}_vs_{OBTYPE} +GRID_STAT_DESC = NA +GRID_STAT_REGRID_TO_GRID = G004 +GRID_STAT_REGRID_METHOD = BILIN +GRID_STAT_REGRID_WIDTH = 2 +GRID_STAT_MASK_POLY = +GRID_STAT_CLIMO_CDF_WRITE_BINS = False +GRID_STAT_OUTPUT_FLAG_SL1L2 = STAT +GRID_STAT_OUTPUT_FLAG_CNT = STAT +GRID_STAT_NC_PAIRS_FLAG_LATLON = FALSE +GRID_STAT_NC_PAIRS_FLAG_RAW = FALSE +GRID_STAT_NC_PAIRS_FLAG_DIFF = FALSE +GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE +GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE +GRID_STAT_GRID_WEIGHT_FLAG = COS_LAT diff --git a/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone/read_omi-aura_l3-omto3e.py b/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone/read_omi-aura_l3-omto3e.py new file mode 100644 index 0000000000..38b963e672 --- /dev/null +++ b/parm/use_cases/model_applications/medium_range/GridStat_fcstGFS_obsOMI_TotalColumnOzone/read_omi-aura_l3-omto3e.py @@ -0,0 +1,92 @@ +""" +Mallory Row - SAIC at NOAA/NWS/NCEP/EMC +Designed to read in NASA OMI Total Column Ozone +""" + +import sys +import os +import numpy as np +import netCDF4 as netcdf +import datetime + +print("Python Script:\t" + repr(sys.argv[0])) + +# Process script arguements +if len(sys.argv) != 3: + print("Must specify the following elements: omi_file file_flag") + sys.exit(1) +omi_file = os.path.expandvars(sys.argv[1]) +if not os.path.exists(omi_file): + print(f"OMI file {omi_file} does not exist, exit") + sys.exit(1) +file_flag = sys.argv[2] +if file_flag not in ['fcst', 'obs']: + print(f"File flag {file_flag} not valid (fcst, obs), exit") + sys.exit(1) + +print(f"Processing {omi_file} as {file_flag} data") + +# Read in OMI data +omi_data = netcdf.Dataset(omi_file) +omi_StartUTC = omi_data['/HDFEOS/ADDITIONAL/FILE_ATTRIBUTES'].StartUTC +omi_StartUTC_dt = datetime.datetime.strptime(omi_StartUTC.split(':')[0], + '%Y-%m-%dT%H') +omi_EndUTC = omi_data['/HDFEOS/ADDITIONAL/FILE_ATTRIBUTES'].EndUTC +omi_EndUTC_dt = datetime.datetime.strptime(omi_EndUTC.split(':')[0], + '%Y-%m-%dT%H') +omi_delta_lat = float(eval( + omi_data['/HDFEOS/GRIDS/OMI Column Amount O3'].GridSpacing +)[0]) +omi_delta_lon = float(eval( + omi_data['/HDFEOS/GRIDS/OMI Column Amount O3'].GridSpacing +)[1]) +omi_ColumnAmountO3 = omi_data[ + '/HDFEOS/GRIDS/OMI Column Amount O3/Data Fields/ColumnAmountO3' +] +omi_lat_ll = float(eval( + omi_data['/HDFEOS/GRIDS/OMI Column Amount O3'].GridSpan +)[2]) +omi_lon_ll = float(eval( + omi_data['/HDFEOS/GRIDS/OMI Column Amount O3'].GridSpan +)[0]) +omi_nlat = int( + omi_data['/HDFEOS/GRIDS/OMI Column Amount O3'].NumberOfLatitudesInGrid +) +omi_nlon = int( + omi_data['/HDFEOS/GRIDS/OMI Column Amount O3'].NumberOfLongitudesInGrid +) +omi_ColumnAmountO3_vals = omi_ColumnAmountO3[:] +omi_ColumnAmountO3_Units = omi_ColumnAmountO3.Units + +# There is no geolocation data, so construct it ourselves. +latitude = np.arange(0., omi_nlat) * omi_delta_lat + omi_lat_ll + 0.125 +longitude = np.arange(0., omi_nlon) * omi_delta_lon + omi_lon_ll + 0.125 + +# Set data up for MET +met_data = omi_ColumnAmountO3_vals.copy() +omi_MidPointUTC_dt = omi_StartUTC_dt + ((omi_EndUTC_dt - omi_StartUTC_dt)/2) +print(f"Data runs from {omi_StartUTC_dt:%Y%m%d_%H%M%S} to " + +f"{omi_EndUTC_dt:%Y%m%d_%H%M%S}...setting valid date as " + +f"{omi_EndUTC_dt:%Y%m%d_%H%M%S}") +met_data.attrs = { + 'valid': f"{omi_EndUTC_dt:%Y%m%d_%H%M%S}", + 'init': f"{omi_EndUTC_dt:%Y%m%d_%H%M%S}", + 'lead': '00', + 'accum': '00', + 'name': 'ColumnAmountO3', + 'standard_name': 'total_column_ozone', + 'long_name': 'total_column_ozone', + 'level': 'TotalColumn', + 'units': omi_ColumnAmountO3_Units, + 'grid': { + 'type': 'LatLon', + 'name': 'OMI Grid', + 'lat_ll': omi_lat_ll, + 'lon_ll': omi_lon_ll, + 'delta_lat': omi_delta_lat, + 'delta_lon': omi_delta_lon, + 'Nlat': omi_nlat, + 'Nlon': omi_nlon, + } +} +attrs = met_data.attrs