PCP-Combine: Compute 1m Soil Moisture and 30 year Climatology

model_applications/s2s_soil_moisture/PcpCombine_obsERA5_obsOnly_soilMoisturePreProcessing.conf

Scientific Objective

This use case performs pre-processing on Soil Moisture data to prepare it to be run through Grid-Stat or another program for verification. As part of that pre-processing, 1 m soil moisture is calculated by adding the soil moisture for the top three layers (0-7cm, 7-28 cm, 28-100 cm), each multipled by the layer thickness. After 1m soil moisture is calculated for each month, a 30 year climatology is calculated by computing the mean and standard deviation for each month between 1991 and 2020.

Version Added

METplus version 6.1

Datasets

Forecast: None

Observation: ERA-5 Land Soil Moisture top 3 layers

Climatology: None

Location: The input data required for PCP-Combine in this use case can be found in a sample data tarball. Each use case category will have one or more sample data tarballs. It is only necessary to download the tarball with the use case’s dataset and not the entire collection of sample data. Click here to access 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 calls Regrid-Data-Plane once and PCP-Combine twice.

METplus Workflow

Beginning time (VALID_BEG): 1991-01-01

End time (VALID_END): 2020-12-01

Increment between beginning and end times (VALID_INCREMENT): 1 month

Sequence of forecast leads to process (LEAD_SEQ): 0

The call to Regrid-Data-Plane regrids the data to a 1 degree latitude/longitude grid. It loops over valid time, running once for each month between 1991 and 2020, for a total of 360 runs.

The first PCP-Combine run computes the sum of soil moisture of the top three layers multiplied by the thickness of each layer. Like the call to Regrid-Data-Plane, it loops over valid time, running once for each valid time which is monthly data for 1991 through 2020. This is a total of 360 PCP-Combine runs. The second call to PCP-Combine computes a 30 year mean and standard deviation. It runs once for each month, for a total of 12 runs.

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, i.e. parm/use_cases/model_applications/s2s_soil_moisture/PcpCombine_obsERA5_obsOnly_soilMoisturePreProcessing.conf

[config]

# Documentation for this use case can be found at
# https://metplus.readthedocs.io/en/latest/generated/model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_Blocking.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 = RegridDataPlane, PcpCombine(create_1m), PcpCombine(obs_mean_stdev)


###
# 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
###

LOG_LEVEL = INFO

LOOP_BY = VALID
VALID_TIME_FMT = %Y%m%d%H
VALID_BEG = 1991010100
VALID_END = 2020120100
VALID_INCREMENT = 1m
LEAD_SEQ = 0


###
# RegridDataPlane File I/O
# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info
###
OBS_REGRID_DATA_PLANE_RUN = True

OBS_REGRID_DATA_PLANE_INPUT_DIR = {INPUT_BASE}/model_applications/s2s_soil_moisture/PcpCombine_obsERA5_obsOnly_soilMoisturePreProcessing/ERA5_land
OBS_REGRID_DATA_PLANE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_soil_moisture/PcpCombine_obsERA5_obsOnly_soilMoisturePreProcessing/ERA5_land_regrid

OBS_REGRID_DATA_PLANE_INPUT_TEMPLATE = ERA5_soilm_layers_mon_{valid?fmt=%Y}01_{valid?fmt=%Y}12.nc
OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = ERA5_soilm_1x1_layers_mon_{valid?fmt=%Y%m}.nc

###
# RegridDataPlane Field Info
# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info
###

OBS_REGRID_DATA_PLANE_VAR1_INPUT_FIELD_NAME = swvl1
OBS_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = "({valid?fmt=%Y%m%d_%H%M%S},*,*)"

OBS_REGRID_DATA_PLANE_VAR2_INPUT_FIELD_NAME = swvl2
OBS_REGRID_DATA_PLANE_VAR2_INPUT_LEVEL = "({valid?fmt=%Y%m%d_%H%M%S},*,*)"

OBS_REGRID_DATA_PLANE_VAR3_INPUT_FIELD_NAME = swvl3
OBS_REGRID_DATA_PLANE_VAR3_INPUT_LEVEL = "({valid?fmt=%Y%m%d_%H%M%S},*,*)"

###
# RegridDataPlane Settings
# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#regriddataplane
###

REGRID_DATA_PLANE_ONCE_PER_FIELD = False

REGRID_DATA_PLANE_VERIF_GRID = latlon 360 181 -90 0 1.0 1.0

REGRID_DATA_PLANE_METHOD = NEAREST

REGRID_DATA_PLANE_WIDTH = 1


[create_1m]
###
# PCPCombine(create_1m) File I/O
# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info
###

OBS_PCP_COMBINE_INPUT_DIR = {OBS_REGRID_DATA_PLANE_OUTPUT_DIR}
OBS_PCP_COMBINE_INPUT_TEMPLATE = {OBS_REGRID_DATA_PLANE_OUTPUT_TEMPLATE}

OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_soil_moisture/PcpCombine_obsERA5_obsOnly_soilMoisturePreProcessing/ERA5_land_soilm1m
OBS_PCP_COMBINE_OUTPUT_TEMPLATE = ERA5_soilm1m_1x1_mon_{valid?fmt=%Y%m}.nc

###
# PCPCombine(create_1m) Field Info
# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info
###

OBS_PCP_COMBINE_OUTPUT_NAME = soilm1m


###
# PCPCombine(create_1m) Settings
# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine
###

OBS_PCP_COMBINE_RUN = True

OBS_PCP_COMBINE_METHOD = USER_DEFINED
OBS_PCP_COMBINE_COMMAND = -add {OBS_PCP_COMBINE_INPUT_DIR}/{OBS_PCP_COMBINE_INPUT_TEMPLATE} 'name="swvl1"; level="(*,*)"; convert(x)= x*70; set_attr_units = "mm";' {OBS_PCP_COMBINE_INPUT_DIR}/{OBS_PCP_COMBINE_INPUT_TEMPLATE} 'name="swvl2"; level="(*,*)"; convert(x) = x*210;' {OBS_PCP_COMBINE_INPUT_DIR}/{OBS_PCP_COMBINE_INPUT_TEMPLATE} 'name="swvl3"; level="(*,*)"; convert(x)= x*720;'


[obs_mean_stdev]
###
# PCPCombine(obs_mean_stdev) File I/O
# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#directory-and-filename-template-info
###

OBS_PCP_COMBINE_INPUT_DIR = {OUTPUT_BASE}/s2s_soil_moisture/PcpCombine_obsERA5_obsOnly_soilMoisturePreProcessing/ERA5_land_soilm1m
OBS_PCP_COMBINE_OUTPUT_DIR = {OUTPUT_BASE}/s2s_soil_moisture/PcpCombine_obsERA5_obsOnly_soilMoisturePreProcessing/ERA5_land_clim

OBS_PCP_COMBINE_INPUT_TEMPLATE = ERA5_soilm1m_1x1_mon_{valid?fmt=%Y%m}.nc
OBS_PCP_COMBINE_OUTPUT_TEMPLATE = ERA5_soilm1m_1x1_30year_1991_2020_{valid?fmt=%m}_mean_stdev.nc


###
# PCPCombine(obs_mean_stdev) Field Info
# https://metplus.readthedocs.io/en/latest/Users_Guide/systemconfiguration.html#field-info
###

OBS_PCP_COMBINE_INPUT_NAMES = soilm1m
OBS_PCP_COMBINE_INPUT_LEVELS = "(*,*)"


###
# PCPCombine(obs_mean_stdev) Settings
# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#pcpcombine
###

VALID_BEG = 2020010100

OBS_PCP_COMBINE_RUN = True

OBS_PCP_COMBINE_METHOD = DERIVE
OBS_PCP_COMBINE_STAT_LIST = mean,stdev

OBS_PCP_COMBINE_INPUT_ACCUMS = 1Y

OBS_PCP_COMBINE_DERIVE_LOOKBACK = 30Y

MET Configuration

There are no MET configuration files in this use case.

Python Embedding

This use case does not use Python embedding.

User Scripting

There are no user scripts in this use case.

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/s2s_soil_moisture/PcpCombine_obsERA5_obsOnly_soilMoisturePreProcessing.conf /path/to/user_system.conf

See 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 {OUTPUT_BASE}/model_applications/s2s_soil_moisture/PcpCombine_obsERA5_obsOnly_soilMoisturePreProcessing. Output for the Regrid-Data-Plane run will be in the ERA5_land_regrid subdirectory and will contain 360 files, one for each month, with the format shown below (for January and February 1991):

* ERA5_soilm_1x1_layers_mon_199101.nc
* ERA5_soilm_1x1_layers_mon_199102.nc

Output from the first PCP-Combine call will be in the ERA5_land_soilm1m subdirectory and will contain 360 files, one for each month, with the format shown below (for January and February 1991):

* ERA5_soilm1m_1x1_mon_199101.nc
* ERA5_soilm1m_1x1_mon_199102.nc

Output from the second call to PCP-Combine will be in the ERA5_land_clim subdirectory and will contain 12 files:

* ERA5_soilm1m_1x1_30year_1991_2020_01_mean_stdev.nc
* ERA5_soilm1m_1x1_30year_1991_2020_02_mean_stdev.nc
* ERA5_soilm1m_1x1_30year_1991_2020_03_mean_stdev.nc
* ERA5_soilm1m_1x1_30year_1991_2020_04_mean_stdev.nc
* ERA5_soilm1m_1x1_30year_1991_2020_05_mean_stdev.nc
* ERA5_soilm1m_1x1_30year_1991_2020_06_mean_stdev.nc
* ERA5_soilm1m_1x1_30year_1991_2020_07_mean_stdev.nc
* ERA5_soilm1m_1x1_30year_1991_2020_08_mean_stdev.nc
* ERA5_soilm1m_1x1_30year_1991_2020_09_mean_stdev.nc
* ERA5_soilm1m_1x1_30year_1991_2020_10_mean_stdev.nc
* ERA5_soilm1m_1x1_30year_1991_2020_11_mean_stdev.nc
* ERA5_soilm1m_1x1_30year_1991_2020_12_mean_stdev.nc

The netCDF output files for the Regrid-Data-Plane run contain three variables (not including the lat/lon fields):

* swvl1(lat, lon)
* swvl2(lat, lon)
* swvl3(lat, lon)

The netCDF output files for the first PCP-Combine run contains one variable (not including the lat/lon fields):

* soilm1m(lat, lon)

The netCDF output files for the second PCP-Combine run contains two variables (not including the lat/lon fields):

* soilm1m_mean(lat, lon)
* soilm1m_stdev(lat, lon)

Keywords

Note

  • S2SAppUseCase

  • S2SSoilMoistureAppUseCase

  • PCPCombineToolUseCase

  • RegridDataPlaneToolUseCase

  • NetCDFFileUseCase

Navigate to the METplus Quick Search for Use Cases page to discover other similar use cases.

Gallery generated by Sphinx-Gallery