GFDLTracker: Tropical Cyclone Use Case

met_tool_wrapper/GFDLTracker/GFDLTracker_TC.conf

Scientific Objective

Setup and run GFDL Tracker applications to track tropical cyclones. See GFDL Tracker (optional) for more information.

Datasets

Forecast: HWRF
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.

METplus Components

This use case utilizes the METplus GFDLTracker wrapper to generate a command to run the GFDL Tracker Fortran applications.

METplus Workflow

GFDLTracker is the only tool called in this example. It processes the following run time:

Init: 2016-09-06 00Z
Forecast lead: All available leads (0 - 126 hour)

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 with the -c option, i.e. -c parm/use_cases/met_tool_wrapper/GFDLTracker/GFDLTracker_TC.conf

[config]

# Documentation for this use case can be found at
# https://metplus.readthedocs.io/en/latest/generated/met_tool_wrapper/GFDLTracker/GFDLTracker_TC.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 = GFDLTracker


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

INIT_TIME_FMT = %Y%m%d%H
INIT_BEG = 2016090600
INIT_END = 2016090600
LEAD_SEQ = *
#LEAD_SEQ = begin_end_incr(0, 18, 6)H
#LEAD_SEQ = begin_end_incr(0, 9, 1)H, begin_end_incr(12,126,3)H


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

GFDL_TRACKER_INPUT_DIR = {INPUT_BASE}/met_test/gfdl/hwrf
GFDL_TRACKER_INPUT_TEMPLATE = hwrf.25x25.EP152016.{init?fmt=%Y%m%d%H}.f{lead?fmt=%5M}

GFDL_TRACKER_TC_VITALS_INPUT_DIR = {GFDL_TRACKER_INPUT_DIR}
GFDL_TRACKER_TC_VITALS_INPUT_TEMPLATE = tcvit_rsmc_storms.txt

GFDL_TRACKER_OUTPUT_DIR = {OUTPUT_BASE}/gfdl_tracker/tc
GFDL_TRACKER_OUTPUT_TEMPLATE = hwrf.{init?fmt=%Y%m%d%H}.track.txt


###
# GFDLTracker Settings
# https://metplus.readthedocs.io/en/latest/Users_Guide/wrappers.html#gfdltracker
###

GFDL_TRACKER_GRIB_VERSION = 1

GFDL_TRACKER_NML_TEMPLATE_FILE = {PARM_BASE}/use_cases/met_tool_wrapper/GFDLTracker/template.nml

GFDL_TRACKER_DATEIN_INP_MODEL = 17
GFDL_TRACKER_DATEIN_INP_MODTYP = "regional"
GFDL_TRACKER_DATEIN_INP_LT_UNITS = "hours"
GFDL_TRACKER_DATEIN_INP_FILE_SEQ = "multi"
GFDL_TRACKER_DATEIN_INP_NESTTYP = "moveable"

GFDL_TRACKER_ATCFINFO_ATCFNUM = 81
GFDL_TRACKER_ATCFINFO_ATCFNAME = "HWRF"
GFDL_TRACKER_ATCFINFO_ATCFFREQ = 100

GFDL_TRACKER_TRACKERINFO_TYPE = "tracker"
GFDL_TRACKER_TRACKERINFO_MSLPTHRESH = 0.0015
GFDL_TRACKER_TRACKERINFO_USE_BACKUP_MSLP_GRAD_CHECK = True
GFDL_TRACKER_TRACKERINFO_V850THRESH = 1.5
GFDL_TRACKER_TRACKERINFO_USE_BACKUP_850_VT_CHECK = True
GFDL_TRACKER_TRACKERINFO_ENABLE_TIMING = 1
GFDL_TRACKER_TRACKERINFO_GRIDTYPE = "regional"
GFDL_TRACKER_TRACKERINFO_CONTINT = 100.0
GFDL_TRACKER_TRACKERINFO_WANT_OCI = T
GFDL_TRACKER_TRACKERINFO_OUT_VIT = True
GFDL_TRACKER_TRACKERINFO_USE_LAND_MASK = True
GFDL_TRACKER_TRACKERINFO_INP_DATA_TYPE = "grib"
GFDL_TRACKER_TRACKERINFO_GRIBVER = 1
GFDL_TRACKER_TRACKERINFO_G2_JPDTN = 0
GFDL_TRACKER_TRACKERINFO_G2_MSLP_PARM_ID = 192
GFDL_TRACKER_TRACKERINFO_G1_MSLP_PARM_ID = 2
GFDL_TRACKER_TRACKERINFO_G1_SFCWIND_LEV_TYP = 105
GFDL_TRACKER_TRACKERINFO_G1_SFCWIND_LEV_VAL = 10

GFDL_TRACKER_PHASEINFO_PHASEFLAG = True
GFDL_TRACKER_PHASEINFO_PHASESCHEME = "both"
GFDL_TRACKER_PHASEINFO_WCORE_DEPTH = 1.0

GFDL_TRACKER_STRUCTINFO_STRUCTFLAG = False
GFDL_TRACKER_STRUCTINFO_IKEFLAG = False

GFDL_TRACKER_FNAMEINFO_GMODNAME = "hwrf"
GFDL_TRACKER_FNAMEINFO_RUNDESCR = "25x25"
GFDL_TRACKER_FNAMEINFO_ATCFDESCR = "EP152016"

GFDL_TRACKER_WAITINFO_USE_WAITFOR = True
GFDL_TRACKER_WAITINFO_WAIT_MIN_AGE = 10
GFDL_TRACKER_WAITINFO_WAIT_MIN_SIZE = 100
GFDL_TRACKER_WAITINFO_WAIT_MAX_WAIT = 3600
GFDL_TRACKER_WAITINFO_WAIT_SLEEPTIME = 5
GFDL_TRACKER_WAITINFO_USE_PER_FCST_COMMAND = True
GFDL_TRACKER_WAITINFO_PER_FCST_COMMAND = "./deliver %[FHOUR] %[FMIN]"

GFDL_TRACKER_NETCDFINFO_LAT_NAME = ""
GFDL_TRACKER_NETCDFINFO_LMASKNAME = ""
GFDL_TRACKER_NETCDFINFO_LON_NAME = ""
GFDL_TRACKER_NETCDFINFO_MSLPNAME = ""
GFDL_TRACKER_NETCDFINFO_NETCDF_FILENAME = ""
GFDL_TRACKER_NETCDFINFO_NUM_NETCDF_VARS = 0
GFDL_TRACKER_NETCDFINFO_RV700NAME = ""
GFDL_TRACKER_NETCDFINFO_RV850NAME = ""
GFDL_TRACKER_NETCDFINFO_TIME_NAME = ""
GFDL_TRACKER_NETCDFINFO_TIME_UNITS = ""
GFDL_TRACKER_NETCDFINFO_TMEAN_300_500_NAME = ""
GFDL_TRACKER_NETCDFINFO_U500NAME = ""
GFDL_TRACKER_NETCDFINFO_U700NAME = ""
GFDL_TRACKER_NETCDFINFO_U850NAME = ""
GFDL_TRACKER_NETCDFINFO_USFCNAME = ""
GFDL_TRACKER_NETCDFINFO_V500NAME = ""
GFDL_TRACKER_NETCDFINFO_V700NAME = ""
GFDL_TRACKER_NETCDFINFO_V850NAME = ""
GFDL_TRACKER_NETCDFINFO_VSFCNAME = ""
GFDL_TRACKER_NETCDFINFO_Z200NAME = ""
GFDL_TRACKER_NETCDFINFO_Z300NAME = ""
GFDL_TRACKER_NETCDFINFO_Z350NAME = ""
GFDL_TRACKER_NETCDFINFO_Z400NAME = ""
GFDL_TRACKER_NETCDFINFO_Z450NAME = ""
GFDL_TRACKER_NETCDFINFO_Z500NAME = ""
GFDL_TRACKER_NETCDFINFO_Z550NAME = ""
GFDL_TRACKER_NETCDFINFO_Z600NAME = ""
GFDL_TRACKER_NETCDFINFO_Z650NAME = ""
GFDL_TRACKER_NETCDFINFO_Z700NAME = ""
GFDL_TRACKER_NETCDFINFO_Z750NAME = ""
GFDL_TRACKER_NETCDFINFO_Z800NAME = ""
GFDL_TRACKER_NETCDFINFO_Z850NAME = ""
GFDL_TRACKER_NETCDFINFO_Z900NAME = ""

GFDL_TRACKER_USER_WANTS_TO_TRACK_ZETA700 = True
GFDL_TRACKER_USER_WANTS_TO_TRACK_WCIRC850 = True
GFDL_TRACKER_USER_WANTS_TO_TRACK_WCIRC700 = True
GFDL_TRACKER_USER_WANTS_TO_TRACK_GPH850 = True
GFDL_TRACKER_USER_WANTS_TO_TRACK_GPH700 = True
GFDL_TRACKER_USER_WANTS_TO_TRACK_MSLP = True
GFDL_TRACKER_USER_WANTS_TO_TRACK_WCIRCSFC = True
GFDL_TRACKER_USER_WANTS_TO_TRACK_ZETASFC = True
GFDL_TRACKER_USER_WANTS_TO_TRACK_THICK500850 = False
GFDL_TRACKER_USER_WANTS_TO_TRACK_THICK200500 = False
GFDL_TRACKER_USER_WANTS_TO_TRACK_THICK200850 = False
GFDL_TRACKER_USER_WANTS_TO_TRACK_ZETA850 = True

GFDL_TRACKER_VERBOSE_VERB = 3
GFDL_TRACKER_VERBOSE_VERB_G2 = 0

GFDL Tracker Configuration

METplus replaces values in the template configuration files read by the tracker based on user settings in the METplus configuration file.

YOU SHOULD NOT SET ANY OF THESE ENVIRONMENT VARIABLES YOURSELF! THEY WILL BE OVERWRITTEN BY METPLUS WHEN IT CALLS THE MET TOOLS!

&datein
  inp%bcc = ${METPLUS_DATEIN_INP_BCC},
  inp%byy = ${METPLUS_DATEIN_INP_BYY},
  inp%bmm = ${METPLUS_DATEIN_INP_BMM},
  inp%bdd = ${METPLUS_DATEIN_INP_BDD},
  inp%bhh = ${METPLUS_DATEIN_INP_BHH},
  inp%model = ${METPLUS_DATEIN_INP_MODEL},
  inp%modtyp = ${METPLUS_DATEIN_INP_MODTYP},
  inp%lt_units = ${METPLUS_DATEIN_INP_LT_UNITS},
  inp%file_seq = ${METPLUS_DATEIN_INP_FILE_SEQ},
  inp%nesttyp = ${METPLUS_DATEIN_INP_NESTTYP},
/

&atcfinfo
  atcfnum = ${METPLUS_ATCFINFO_ATCFNUM},
  atcfname = ${METPLUS_ATCFINFO_ATCFNAME},
  atcfymdh = ${METPLUS_ATCFINFO_ATCFYMDH},
  atcffreq = ${METPLUS_ATCFINFO_ATCFFREQ},
/

&trackerinfo
  trkrinfo%type = ${METPLUS_TRACKERINFO_TYPE},
  trkrinfo%mslpthresh = ${METPLUS_TRACKERINFO_MSLPTHRESH},
  trkrinfo%use_backup_mslp_grad_check = ${METPLUS_TRACKERINFO_USE_BACKUP_MSLP_GRAD_CHECK},
  trkrinfo%v850thresh = ${METPLUS_TRACKERINFO_V850THRESH},
  trkrinfo%use_backup_850_vt_check = ${METPLUS_TRACKERINFO_USE_BACKUP_850_VT_CHECK},
  trkrinfo%enable_timing = ${METPLUS_TRACKERINFO_ENABLE_TIMING},
  trkrinfo%gridtype = ${METPLUS_TRACKERINFO_GRIDTYPE},
  trkrinfo%contint = ${METPLUS_TRACKERINFO_CONTINT},
  trkrinfo%want_oci = ${METPLUS_TRACKERINFO_WANT_OCI},
  trkrinfo%out_vit = ${METPLUS_TRACKERINFO_OUT_VIT},
  trkrinfo%use_land_mask = ${METPLUS_TRACKERINFO_USE_LAND_MASK},
  trkrinfo%inp_data_type = ${METPLUS_TRACKERINFO_INP_DATA_TYPE},
  trkrinfo%gribver = ${METPLUS_TRACKERINFO_GRIBVER},
  trkrinfo%g2_jpdtn = ${METPLUS_TRACKERINFO_G2_JPDTN},
  trkrinfo%g2_mslp_parm_id = ${METPLUS_TRACKERINFO_G2_MSLP_PARM_ID},
  trkrinfo%g1_mslp_parm_id = ${METPLUS_TRACKERINFO_G1_MSLP_PARM_ID},
  trkrinfo%g1_sfcwind_lev_typ = ${METPLUS_TRACKERINFO_G1_SFCWIND_LEV_TYP},
  trkrinfo%g1_sfcwind_lev_val = ${METPLUS_TRACKERINFO_G1_SFCWIND_LEV_VAL},
  trkrinfo%westbd = ${METPLUS_TRACKERINFO_WESTBD},
  trkrinfo%eastbd = ${METPLUS_TRACKERINFO_EASTBD},
  trkrinfo%southbd = ${METPLUS_TRACKERINFO_SOUTHBD},
  trkrinfo%northbd = ${METPLUS_TRACKERINFO_NORTHBD},
/

&phaseinfo
  phaseflag = ${METPLUS_PHASEINFO_PHASEFLAG},
  phasescheme = ${METPLUS_PHASEINFO_PHASESCHEME},
  wcore_depth = ${METPLUS_PHASEINFO_WCORE_DEPTH},
/

&structinfo
  structflag = ${METPLUS_STRUCTINFO_STRUCTFLAG},
  ikeflag = ${METPLUS_STRUCTINFO_IKEFLAG},
/

&fnameinfo
  gmodname = ${METPLUS_FNAMEINFO_GMODNAME},
  rundescr = ${METPLUS_FNAMEINFO_RUNDESCR},
  atcfdescr = ${METPLUS_FNAMEINFO_ATCFDESCR},
/

&waitinfo
  use_waitfor = ${METPLUS_WAITINFO_USE_WAITFOR},
  wait_min_age = ${METPLUS_WAITINFO_WAIT_MIN_AGE},
  wait_min_size = ${METPLUS_WAITINFO_WAIT_MIN_SIZE},
  wait_max_wait = ${METPLUS_WAITINFO_WAIT_MAX_WAIT},
  wait_sleeptime = ${METPLUS_WAITINFO_WAIT_SLEEPTIME},
  use_per_fcst_command = ${METPLUS_WAITINFO_USE_PER_FCST_COMMAND},
  per_fcst_command = ${METPLUS_WAITINFO_PER_FCST_COMMAND},
/

&netcdflist
  netcdfinfo%lat_name = ${METPLUS_NETCDFINFO_LAT_NAME},
  netcdfinfo%lmaskname = ${METPLUS_NETCDFINFO_LMASKNAME},
  netcdfinfo%lon_name = ${METPLUS_NETCDFINFO_LON_NAME},
  netcdfinfo%mslpname = ${METPLUS_NETCDFINFO_MSLPNAME},
  netcdfinfo%netcdf_filename = ${METPLUS_NETCDFINFO_NETCDF_FILENAME},
  netcdfinfo%num_netcdf_vars = ${METPLUS_NETCDFINFO_NUM_NETCDF_VARS},
  netcdfinfo%rv700name = ${METPLUS_NETCDFINFO_RV700NAME},
  netcdfinfo%rv850name = ${METPLUS_NETCDFINFO_RV850NAME},
  netcdfinfo%time_name = ${METPLUS_NETCDFINFO_TIME_NAME},
  netcdfinfo%time_units = ${METPLUS_NETCDFINFO_TIME_UNITS},
  netcdfinfo%tmean_300_500_name = ${METPLUS_NETCDFINFO_TMEAN_300_500_NAME},
  netcdfinfo%u500name = ${METPLUS_NETCDFINFO_U500NAME},
  netcdfinfo%u700name = ${METPLUS_NETCDFINFO_U700NAME},
  netcdfinfo%u850name = ${METPLUS_NETCDFINFO_U850NAME},
  netcdfinfo%usfcname = ${METPLUS_NETCDFINFO_USFCNAME},
  netcdfinfo%v500name = ${METPLUS_NETCDFINFO_V500NAME},
  netcdfinfo%v700name = ${METPLUS_NETCDFINFO_V700NAME},
  netcdfinfo%v850name = ${METPLUS_NETCDFINFO_V850NAME},
  netcdfinfo%vsfcname = ${METPLUS_NETCDFINFO_VSFCNAME},
  netcdfinfo%z200name = ${METPLUS_NETCDFINFO_Z200NAME},
  netcdfinfo%z300name = ${METPLUS_NETCDFINFO_Z300NAME},
  netcdfinfo%z350name = ${METPLUS_NETCDFINFO_Z350NAME},
  netcdfinfo%z400name = ${METPLUS_NETCDFINFO_Z400NAME},
  netcdfinfo%z450name = ${METPLUS_NETCDFINFO_Z450NAME},
  netcdfinfo%z500name = ${METPLUS_NETCDFINFO_Z500NAME},
  netcdfinfo%z550name = ${METPLUS_NETCDFINFO_Z550NAME},
  netcdfinfo%z600name = ${METPLUS_NETCDFINFO_Z600NAME},
  netcdfinfo%z650name = ${METPLUS_NETCDFINFO_Z650NAME},
  netcdfinfo%z700name = ${METPLUS_NETCDFINFO_Z700NAME},
  netcdfinfo%z750name = ${METPLUS_NETCDFINFO_Z750NAME},
  netcdfinfo%z800name = ${METPLUS_NETCDFINFO_Z800NAME},
  netcdfinfo%z850name = ${METPLUS_NETCDFINFO_Z850NAME},
  netcdfinfo%z900name = ${METPLUS_NETCDFINFO_Z900NAME},
/

&parmpreflist
  user_wants_to_track_zeta700 = ${METPLUS_USER_WANTS_TO_TRACK_ZETA700},
  user_wants_to_track_wcirc850 = ${METPLUS_USER_WANTS_TO_TRACK_WCIRC850},
  user_wants_to_track_wcirc700 = ${METPLUS_USER_WANTS_TO_TRACK_WCIRC700},
  user_wants_to_track_gph850 = ${METPLUS_USER_WANTS_TO_TRACK_GPH850},
  user_wants_to_track_gph700 = ${METPLUS_USER_WANTS_TO_TRACK_GPH700},
  user_wants_to_track_mslp = ${METPLUS_USER_WANTS_TO_TRACK_MSLP},
  user_wants_to_track_wcircsfc = ${METPLUS_USER_WANTS_TO_TRACK_WCIRCSFC},
  user_wants_to_track_zetasfc = ${METPLUS_USER_WANTS_TO_TRACK_ZETASFC},
  user_wants_to_track_thick500850 = ${METPLUS_USER_WANTS_TO_TRACK_THICK500850},
  user_wants_to_track_thick200500 = ${METPLUS_USER_WANTS_TO_TRACK_THICK200500},
  user_wants_to_track_thick200850 = ${METPLUS_USER_WANTS_TO_TRACK_THICK200850},
  user_wants_to_track_zeta850 = ${METPLUS_USER_WANTS_TO_TRACK_ZETA850},
/

&verbose
  verb = ${METPLUS_VERBOSE_VERB},
  verb_g2 = ${METPLUS_VERBOSE_VERB_G2},
/

Running METplus

This use case can be run by passing in the conf file to the run script:

run_metplus.py /path/to/METplus/parm/use_cases/met_tool_wrapper/GFDLTracker/GFDLTracker_TC.conf

See the Running METplus section of the User’s Guide for more information on how to run use cases.

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 gfdl_tracker/tc (relative to OUTPUT_BASE) and will contain the following file:

  • hwrf.2016090600.track.txt

  • input.201609060000.nml

Keywords

Note

  • GFDLTrackerToolUseCase

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

Total running time of the script: (0 minutes 0.000 seconds)

Gallery generated by Sphinx-Gallery