HWRF  trunk@4391
Functions | Variables
hwrf_expt Namespace Reference

Generates the object structure of the HWRF system for use by the scripts. More...

Detailed Description

Generates the object structure of the HWRF system for use by the scripts.

This module is the part of the HWRF Experiment Layer that creates an object structure from classes in the hwrf and pom packages. It defines what the HWRF experiment will run, and how the various parts of the HWRF system connect to one another. As this module has gotten more complex, some of its implementation has been moved to the hwrf.hwrfsystem module, which contains helper functions for defining parts of the workflow.

See also
hwrf.launcher The launcher module creates the initial directory structure, and runs sanity checks on the hwrf_expt
scripts The scripts load this hwrf_expt module and call the run() (or similar) function for one or more objects within.
hwrf The hwrf package contains classes that know how to run each part of the HWRF system.
pom The pom package defines the initialization of the MPIPOMTC ocean model.
hwrf_alerts The hwrf_alerts module adds product alerts needed to ensure data is delivered to forecasters and the public in the NCEP production system.

Functions

def prelaunch (conf, logger, cycle)
 This function makes per-cycle modifications to the configuration file storm1.conf. More...
 
def sanity_check (logger)
 Runs a sanity check on this module's contents. More...
 
def inputiter ()
 Iterates over all inputs required by this configuration. More...
 
def init_module
 Initializes the HWRF object structure. More...
 

Variables

list __all__ = []
 Ensures that accidental "from hwrf_expt import *" does nothing. More...
 
 ww3init = None
 An hwrf.ww3.WW3Init that initializes wavewatch3, or None if wave coupling is disabled.
 
 hycominit = None
 An hwrf.hycom.HYCOMInit that initializes hycom, or None if hycom coupling is not in use. More...
 
 ww3post = None
 An hwrf.ww3.WW3Post that post-processes wavewatch3 output, or None if wave coupling is disabled. More...
 
 hycompost = None
 An hwrf.hycom.HYCOMPost that post-processes hycom output, or None if hycom coupling is not in use.
 
 conf = None
 An hwrf.launcher.HWRFLauncher for configuration information. More...
 
 ds = None
 A produtil.datstore.Datastore for product and task information storage. More...
 
 moad = None
 The hwrf.wrf.WRFDomain for the Mother Of All Domains (MOAD)
 
 storm1outer = None
 The hwrf.wrf.WRFDomain for the intermediate resolution domain.
 
 storm1inner = None
 The hwrf.wrf.WRFDomain for the innermost resolution domain.
 
 wrf = None
 The hwrf.wrf.WRFSimulation describing the simulation to run.
 
 runwrf = None
 The hwrf.fcsttask.WRFAtmos or hwrf.mpipomtc.WRFCoupledPOM that runs the full-length forecast. More...
 
 nonsatpost = None
 The hwrf.post.PostManyWRF for generating non-satellite, native E grid GRIB1 files from the runwrf object. More...
 
 satpost = None
 The hwrf.post.PostManyWRF for generating synthetic satellite, native E grid GRIB1 files from the runwrf object. More...
 
 gfs_init = None
 The hwrf.init.HWRFInit that runs initialization tasks such as WPS and real_nmm on the parent global model analysis. More...
 
 gribber = None
 The hwrf.gribtask.GRIBTask that takes satpost and nonsatpost output, regrids it and converts to GRIB2 format. More...
 
 tracker = None
 The hwrf.tracker.TrackerTask that runs the tracker on output from the gribber. More...
 
 pominit = None
 The initialization for the MPIPOMTC ocean model that is coupled to WRF in the runwrf object. More...
 
 nhcp = None
 The hwrf.nhc_products.NHCProducts object that generates custom products for the National Hurricane Center. More...
 
 wrfcopier = None
 An object that copies WRF inputs and outputs to the COM directory. More...
 
 WORKhwrf = None
 The scrub directory for this job.
 
 HOMEhwrf = None
 The HWRF installation location.
 
 fgat_init = None
 The FGAT initialization, which interpolates parent global model forecasts to the HWRF grid and runs other initialization jobs to prepare inputs to the GSI. More...
 
 non_ocean_basins = None
 A list of one-letter basin IDs that are not supported by the selected ocean model. More...
 
 bufrprep = None
 An hwrf.bufrprep.Bufrprep object that turns data tanks into bufr files for input to GSI. More...
 
 gsi_d02 = None
 The intermediate resolution GSI, an hwrf.gsi.FGATGSI, which knows how to run the GSI data assimilation system on output from the fgat_init, bufrprep and other objects. More...
 
 gsi_d03 = None
 The innermost domain resolution GSI, an hwrf.gsi.FGATGSI, which knows how to run the GSI data assimilation system on output from the fgat_init, bufrprep and other objects. More...
 
 gsid03_flag = None
 A boolean value, True if gsi_d03 should be run and False otherwise.
 
 gdas_merge = None
 An hwrf.relocate.Merge object that merges output from GSI and the fgat_init's hwrf.relocate.Stage3 to create the final input fields to the runwrf.
 
 cycle = None
 A synonym of conf.cycle: the cycle being run.
 
 ensda = None
 An hwrf.ensda.DAEnsemble filled with hwrf.ensda.FromGFSENKF objects that run six hour forecasts based on the GFS ENKF.
 
 prior_ensda = None
 An hwrf.ensda.DAEnsemble filled with hwrf.ensda.FromPriorCycle objects that provide access to the prior cycle's ENSDA six hour forecasts. More...
 
 entest = None
 An hwrf.ensda.FromGFSENKF for testing. More...
 
 da_ensemble_size = None
 Number of members in the ensda.
 
 trackerd01 = None
 If enabled, an hwrf.tracker.TrackerTask that only uses the moad data to generate the track. More...
 
 trackerd02 = None
 If enabled, an hwrf.tracker.TrackerTask that only uses the moad and intermediate resolution domains' data to generate the track. More...
 
 gsipost = None
 An hwrf.gsipost.GSIPost that post-processes inputs and outputs to the gsi_d02 and gsi_d03 to create native E grid GRIB files input to the gsigribber.
 
 gsigribber = None
 An hwrf.gribtask.GRIBTask that takes the gsipost output and turns it into lat-lon GRIB2 files suitable for analysis of the effect of GSI. More...
 
 ensda_pre = None
 Output from hwrf.ensda.ensda_pre_object_for(), the object that determines whether the data assimiltation ensemble should be run. More...
 

Function Documentation

def hwrf_expt.init_module (   CONFhwrf = None,
  make_ensemble_da = True,
  make_post = True 
)

Initializes the HWRF object structure.

This function is called from all scripts and the hwrf.launcher.HWRFLauncher to initialize the HWRF object structure. The created objects know how to run various parts of the system, and this function connects those objects to one another.

Parameters
CONFhwrfthe configuration filename
make_ensemble_daif True, the ensemble data assimilation objects are created
make_postif True, the post-processing objects are created

Definition at line 384 of file hwrf_expt.py.

Referenced by scripts.exhwrf_forecast.doit(), scripts.exhwrf_products.doit(), scripts.exhwrf_ensda_pre.main(), scripts.exhwrf_unpost.main(), scripts.exhwrf_ensda_output.main(), scripts.exhwrf_ocean_init.main(), scripts.exhwrf_bufrprep.main(), scripts.exhwrf_gsi_post.main(), scripts.exhwrf_input.main(), scripts.exhwrf_merge.main(), scripts.exhwrf_gsi.main(), scripts.exhwrf_ensda.main(), scripts.exhwrf_relocate.main(), scripts.exhwrf_init.main(), scripts.exhwrf_check_init.main(), scripts.exhwrf_output.main(), scripts.exhwrf_para_archive.main_tape(), scripts.exhwrf_post.post(), hwrf.launcher.HWRFLauncher.sanity_check_expt(), setup_hurricane.StormCurses.setup(), and scripts.exhwrf_products.slave_main().

def hwrf_expt.inputiter ( )

Iterates over all inputs required by this configuration.

Calls the inputiter() function on all tasks in the module scope that are expected to have input data. The result can be passed into the "data" argument of hwrf.input.InputSource.get. Iterates over dicts that contain the following:

  • dataset — string name of the dataset (gfs, gdas1, gefs, enkf, etc.)
  • item — string name of the object (ie.: gfs_sf, gfs_sfcanl, bufr)
  • atime — self.conf.cycle
  • ftime — only present when relevant: the forecast time, in a format accepted by to_datetime_rel
  • enkfmem — only present when relevant: the ENKF member ID
  • obstype — only present when relevant: the bufr data type.
  • optional — True if the absence of this data is not considered a failure.

Definition at line 148 of file hwrf_expt.py.

Referenced by scripts.exhwrf_input.main().

def hwrf_expt.prelaunch (   conf,
  logger,
  cycle 
)

This function makes per-cycle modifications to the configuration file storm1.conf.

This is called in scripts.exhwrf_launch and run_hwrf.py by hwrf.launcher.launch() on the configuration object (hwrf.launcher.HWRFLauncher, a subclass of hwrf.config.HWRFConfig), before the per-cycle storm1.conf configuration file is written. Any changes made to the conf object will be stored in storm1.conf file and used in later jobs. This allows modifications to the configuration on a per-cycle basis. Note that cycle=None and conf.cycle is unavailable when run_hwrf.py calls prelaunch.

Parameters
confthe hwrf.launcher.HWRFLauncher to modify
loggera logging.Logger for log messages
cyclethe cycle to run, or None if this is being run from run_hwrf.py or the ush.psychoanalyst

Definition at line 55 of file hwrf_expt.py.

def hwrf_expt.sanity_check (   logger)

Runs a sanity check on this module's contents.

This should be called after init_module.

This sanity check routine is called automatically by hwrf.launcher.HWRFLauncher.sanity_check_expt() as part of the standard sanity checks in the scripts.exhwrf_launch job. It checks to see if all expected module-scope variables are present and initialized correctly.

Parameters
loggera logging.Logger for log messages

Definition at line 83 of file hwrf_expt.py.

Referenced by hwrf.launcher.HWRFLauncher.sanity_check_expt().

Variable Documentation

hwrf_expt.__all__ = []

Ensures that accidental "from hwrf_expt import *" does nothing.

Definition at line 34 of file hwrf_expt.py.

hwrf_expt.bufrprep = None

An hwrf.bufrprep.Bufrprep object that turns data tanks into bufr files for input to GSI.

Definition at line 311 of file hwrf_expt.py.

hwrf_expt.conf = None

An hwrf.launcher.HWRFLauncher for configuration information.

Definition at line 221 of file hwrf_expt.py.

hwrf_expt.ds = None

A produtil.datstore.Datastore for product and task information storage.

Definition at line 225 of file hwrf_expt.py.

hwrf_expt.ensda_pre = None

Output from hwrf.ensda.ensda_pre_object_for(), the object that determines whether the data assimiltation ensemble should be run.

Definition at line 382 of file hwrf_expt.py.

hwrf_expt.entest = None

An hwrf.ensda.FromGFSENKF for testing.

Bug:
the hwrf_expt.entest is no longer needed and should be removed

Definition at line 352 of file hwrf_expt.py.

hwrf_expt.fgat_init = None

The FGAT initialization, which interpolates parent global model forecasts to the HWRF grid and runs other initialization jobs to prepare inputs to the GSI.

This is an hwrf.init.FGATInit object.

Definition at line 299 of file hwrf_expt.py.

hwrf_expt.gfs_init = None

The hwrf.init.HWRFInit that runs initialization tasks such as WPS and real_nmm on the parent global model analysis.

Definition at line 261 of file hwrf_expt.py.

hwrf_expt.gribber = None

The hwrf.gribtask.GRIBTask that takes satpost and nonsatpost output, regrids it and converts to GRIB2 format.

Definition at line 266 of file hwrf_expt.py.

hwrf_expt.gsi_d02 = None

The intermediate resolution GSI, an hwrf.gsi.FGATGSI, which knows how to run the GSI data assimilation system on output from the fgat_init, bufrprep and other objects.

Definition at line 317 of file hwrf_expt.py.

hwrf_expt.gsi_d03 = None

The innermost domain resolution GSI, an hwrf.gsi.FGATGSI, which knows how to run the GSI data assimilation system on output from the fgat_init, bufrprep and other objects.

Definition at line 323 of file hwrf_expt.py.

hwrf_expt.gsigribber = None

An hwrf.gribtask.GRIBTask that takes the gsipost output and turns it into lat-lon GRIB2 files suitable for analysis of the effect of GSI.

Definition at line 377 of file hwrf_expt.py.

hwrf_expt.hycominit = None

An hwrf.hycom.HYCOMInit that initializes hycom, or None if hycom coupling is not in use.

Definition at line 207 of file hwrf_expt.py.

hwrf_expt.nhcp = None

The hwrf.nhc_products.NHCProducts object that generates custom products for the National Hurricane Center.

Definition at line 280 of file hwrf_expt.py.

hwrf_expt.non_ocean_basins = None

A list of one-letter basin IDs that are not supported by the selected ocean model.

This is used by the scripts.exhwrf_check_init to determine if the ocean initialization incorrectly decided not to run the ocean.

Definition at line 306 of file hwrf_expt.py.

hwrf_expt.nonsatpost = None

The hwrf.post.PostManyWRF for generating non-satellite, native E grid GRIB1 files from the runwrf object.

Definition at line 251 of file hwrf_expt.py.

hwrf_expt.pominit = None

The initialization for the MPIPOMTC ocean model that is coupled to WRF in the runwrf object.

This is an hwrf.mpipomtc.POMInit object.

Definition at line 275 of file hwrf_expt.py.

hwrf_expt.prior_ensda = None

An hwrf.ensda.DAEnsemble filled with hwrf.ensda.FromPriorCycle objects that provide access to the prior cycle's ENSDA six hour forecasts.

Definition at line 347 of file hwrf_expt.py.

hwrf_expt.runwrf = None

The hwrf.fcsttask.WRFAtmos or hwrf.mpipomtc.WRFCoupledPOM that runs the full-length forecast.

Definition at line 246 of file hwrf_expt.py.

hwrf_expt.satpost = None

The hwrf.post.PostManyWRF for generating synthetic satellite, native E grid GRIB1 files from the runwrf object.

Definition at line 256 of file hwrf_expt.py.

hwrf_expt.tracker = None

The hwrf.tracker.TrackerTask that runs the tracker on output from the gribber.

Definition at line 270 of file hwrf_expt.py.

hwrf_expt.trackerd01 = None

If enabled, an hwrf.tracker.TrackerTask that only uses the moad data to generate the track.

Definition at line 361 of file hwrf_expt.py.

hwrf_expt.trackerd02 = None

If enabled, an hwrf.tracker.TrackerTask that only uses the moad and intermediate resolution domains' data to generate the track.

Definition at line 366 of file hwrf_expt.py.

hwrf_expt.wrfcopier = None

An object that copies WRF inputs and outputs to the COM directory.

This is an hwrf.copywrf.WRFCopyTask object.

Definition at line 285 of file hwrf_expt.py.

hwrf_expt.ww3post = None

An hwrf.ww3.WW3Post that post-processes wavewatch3 output, or None if wave coupling is disabled.

Definition at line 212 of file hwrf_expt.py.