HWRF  trunk@4391
Public Member Functions | List of all members
hwrf.coupling.CoupledWRF Class Reference

Detailed Description

Runs the NCEP coupler and WRF, coupled to at least one ocean or
wave model.  This class is not thread-safe due to how self.couple
is implemented.

Definition at line 78 of file coupling.py.

Inheritance diagram for hwrf.coupling.CoupledWRF:
hwrf.fcsttask.WRFAtmos hwrf.fcsttask.WRFTaskBase hwrf.fcsttask.FcstTask hwrf.hwrftask.HWRFTask produtil.datastore.Task produtil.datastore.Datum hwrf.hycom.WRFCoupledHYCOM hwrf.mpipomtc.WRFCoupledPOM hwrf.ww3.WRFCoupledWW3 hwrf.ww3.WRFWW3POM

Public Member Functions

def __init__ (self, dstore, conf, section, wrf, keeprun=True, wrfdiag_stream='auxhist1', kwargs)
 
def check_all_inputs
 
def link_all_inputs
 
def run
 
def run_exe (self)
 
def make_coupler_namelist
 
def coupleiter (self)
 Component manipulation. More...
 
def couple
 
def remove_wave ()
 
def remove_ocean ()
 
def uncouple
 Removes a component, or all components, from the coupling. More...
 
def component (self, which)
 
def order (self, name)
 
def add_coupled_stream (self, stream, times)
 Products. More...
 
def add_coupled_product (self, stream, time, product)
 
def coupled_products
 
def products (self, domains=None, stream=None, time=None, kwargs)
 
- Public Member Functions inherited from hwrf.fcsttask.WRFAtmos
def __init__ (self, dstore, conf, section, wrf, keeprun=True, wrfdiag_stream='auxhist1', kwargs)
 WRFAtmos constructor. More...
 
def make_wrf (self, wrf)
 creates a WRFSimulation for an uncoupled forecast run More...
 
def unrun (self)
 deletes output files More...
 
def run (self)
 runs the uncoupled WRF forecast More...
 
def products (self, kwargs)
 iterates over all WRF products. More...
 
def exproducts (self, kwargs)
 iterates over all WRF products. More...
 
def wrf_check (self, kwargs)
 checks the status of the WRF simulation. More...
 
def run_exe
 runs the wrf program More...
 
def update_state (self)
 checks the wrf state and updates it in the HWRF database file More...
 
def deliver_products (self, args, kwargs)
 does nothing More...
 
- Public Member Functions inherited from hwrf.fcsttask.WRFTaskBase
def __init__ (self, dstore, conf, section, wrf, keeprun=True, kwargs)
 constructor More...
 
def make_wrf (self, wrf)
 creates a WRFSimulation object for this class More...
 
def add_geogrid (self, g)
 adds a geogrid input source More...
 
def add_metgrid (self, m)
 adds a metgrid input source More...
 
def add_prep_hybrid (self, p)
 adds a prep_hybrid input source More...
 
def use_prep_hybrid (self)
 returns True if prep_hybrid was requested, and False otherwise. More...
 
def add_wrfinput (self, r)
 adds a wrfinput_d01 input source More...
 
def add_wrfbdy (self, r)
 adds a wrfbdy_d01 input source More...
 
def add_fort65 (self, r)
 adds a coupler fort.65 input source More...
 
def add_real (self, r)
 add a fort.65, wrfinput_d01 and wrfbdy_d01 input source More...
 
def add_wrfanl (self, r, domain)
 add a wrfanl input source for a specific domain More...
 
def make_products (self)
 called from constructor, creates Products More...
 
def link_fix (self)
 links or copies fixed data files More...
 
def check_all_inputs (self)
 Checks to see if all needed input is available. More...
 
def link_all_inputs
 Links all inputs provided by the various add_* member functions. More...
 
def need_all_metgrid (self)
 Returns True if all metgrid files are needed as input to this Task.
 
def run_exe
 runs the executable More...
 
def final_prerun (self)
 last step before running executable More...
 
def initial_prerun (self)
 called immediately after cding to a scrub directory More...
 
def run (self)
 run the wrf or real_nmm More...
 
def postrun (self)
 called just after run_exe() succeeds. More...
 
def deliver_products (self)
 delivers products to their destinations More...
 
def make_namelist
 generates the wrf namelist.input file More...
 
def wrf (self)
 Returns the WRFSimulation object used by this task. More...
 
def sim (self)
 Returns the WRFSimulation object used by this task. More...
 
- Public Member Functions inherited from hwrf.fcsttask.FcstTask
def __init__ (self, dstore, conf, section, outdir=None, taskname=None, kwargs)
 Creates a FcstTask object. More...
 
def has_input (self, typename)
 is there any input data of this type to this task? More...
 
def add_input (self, typename, inobj)
 add input of a specified type More...
 
def check_input (self, typenames, kwargs)
 check if input data is available More...
 
def link_input (self, typenames, just_check=False, kwargs)
 link or check for inputs More...
 
- Public Member Functions inherited from hwrf.hwrftask.HWRFTask
def __init__ (self, dstore, conf, section, taskname=None, workdir=None, outdir=None, storminfo=UNSPECIFIED, taskvars=UNSPECIFIED, kwargs)
 Creates an HWRFTask. More...
 
def isfakestorm (self)
 
def ismultistorm (self)
 
def get_workdir (self)
 Returns the directory the class should work in, as set by the "workdir" metadata value. More...
 
def set_workdir (self, val)
 Sets the directory the class should work in. More...
 
def get_outdir (self)
 Gets the directory that should receive output data. More...
 
def set_outdir (self, val)
 Sets the directory that should receive output data. More...
 
def realtime (self)
 Is this job a real-time forecast job? More...
 
def redirect (self)
 Should subprograms' outputs be redirected to separate files?
 
def scrub (self)
 Should temporary files be deleted as soon as they are not needed?
 
def tvset (self, opt, val)
 Sets a taskvar option's value. More...
 
def tvdel (self, opt)
 Deletes an object-local value set by tvset. More...
 
def tvget (self, opt)
 Gets a taskvar's value. More...
 
def tvhave
 Is a taskvar set? More...
 
def taskvars (self)
 The dict of object-local values used for string substitution. More...
 
def confint
 Alias for self.conf.getint for section self.section. More...
 
def confstr
 Alias for self.conf.getstr for section self.section. More...
 
def conffloat
 Alias for self.conf.getfloat for section self.section. More...
 
def confbool
 Alias for self.conf.getbool for section self.section. More...
 
def confget
 Alias for self.conf.get for section self.section. More...
 
def confitems
 Alias for self.conf.items for section self.section. More...
 
def confstrinterp (self, string, section=None, kwargs)
 Alias for self.icstr for backward compatibility. More...
 
def conftimestrinterp (self, string, ftime, atime=None, section=None, kwargs)
 Alias for self.timestr for backward comaptibility. More...
 
def confraw
 Get a raw configuration value before string expansion. More...
 
def icstr (self, string, section=None, kwargs)
 Expands a string in the given conf section. More...
 
def timestr (self, string, ftime, atime=None, section=None, kwargs)
 Expands a string in the given conf section, including time vars. More...
 
def getdir
 Alias for hwrf.config.HWRFConfig.get() for the "dir" section. More...
 
def getexe
 Alias for hwrf.config.HWRFConfig.get() for the "exe" section. More...
 
def getconf (self)
 Returns this HWRFTask's hwrf.config.HWRFConfig object. More...
 
def getsection (self)
 Returns this HWRFTask's section name in the HWRFConfig. More...
 
def log
 Obtain a logging domain. More...
 
def inputiter (self)
 Iterates over all inputs required by this task. More...
 
- Public Member Functions inherited from produtil.datastore.Task
def __init__ (self, dstore, taskname, logger=None, kwargs)
 Task constructor. More...
 
def jlogfile (self)
 returns the jlogfile logger. More...
 
def postmsg (self, message, args, kwargs)
 same as produtil.log.jlogger.info() More...
 
def setstate (self, val)
 Sets the state of this job. More...
 
def getstate (self)
 Returns the job state. More...
 
def strstate (self)
 A string representation of the job state. More...
 
def gettaskname (self)
 Returns the task name part of the database ID, which is the same as the prodname. More...
 
def products (self, args, kwargs)
 Iterate over the products this task produces. More...
 
def log (self)
 Returns the logger object for this task. More...
 
def clean (self)
 Cleans up any unneeded data used by this task. More...
 
def unrun (self)
 Undoes the effect of run(). More...
 
def run (self)
 Performs the work this Task should do and generates all products. More...
 
def is_completed (self)
 Is this task complete? More...
 
def completed (self)
 Read-only property: is this task completed? Same as is_completed() More...
 
def runpart (self)
 Run some of this task's work, deliver some products. More...
 
- Public Member Functions inherited from produtil.datastore.Datum
def __init__ (self, dstore, prodname, category, meta=None, cache=30, location=None, kwargs)
 Datum constructor. More...
 
def __enter__ (self)
 Acquires this object's thread lock. More...
 
def __exit__ (self, etype, evalue, traceback)
 Releases this object's thread lock. More...
 
def validate (self)
 Validates this object's Datastore, prodname and category. More...
 
def getid (self)
 Returns the database ID of this datum. More...
 
def getdatastore (self)
 Returns the datastore of this datum. More...
 
def transaction (self)
 Creates, but does not lock, a Transaction for this datum's datastore. More...
 
def getprodtype (self)
 Returns the product type of this Datum. More...
 
def getprodname (self)
 Returns the product name part of the database ID. More...
 
def getcategory (self)
 Returns the product category part of the database ID. More...
 
def getlocation (self)
 Returns the "location" field of this Datum's database entry. More...
 
def setlocation (self, v)
 Sets the "location" field of this Datum's database entry. More...
 
def __hash__ (self)
 Integer hash function. More...
 
def __str__ (self)
 Human-readable description of this Datum. More...
 
def __repr__ (self)
 Python code-like description of this Datum. More...
 
def __cmp__ (self, other)
 Compares two Datums' prodnames and categories. More...
 
def set_loc_avail (self, loc, avail)
 Sets the location and availability of this Datum in a single transaction. More...
 
def update (self)
 Discards all cached metadata and refreshes it from the Datastore. More...
 
def __getitem__ (self, k)
 Returns the value of the specified metadata key or raises KeyError. More...
 
def meta
 Return the value of a metadata key. More...
 
def get
 Alias for self.meta() Returns the value of the specified metadata key or returns default if it is unset. More...
 
def __setitem__ (self, k, v)
 Sets the value of the specified metadata key. More...
 
def __delitem__ (self, k)
 Deletes the specified metadata key, which must not be "available" or "location". More...
 
def __contains__ (self, k)
 Determines if a metadata key is set. More...
 
def iteritems (self)
 Iterates over all metadata (key,value) pairs for this Datum, including "available" and "location". More...
 

Additional Inherited Members

- Public Attributes inherited from hwrf.fcsttask.WRFAtmos
 state
 runs the uncoupled WRF forecast More...
 
- Public Attributes inherited from hwrf.fcsttask.WRFTaskBase
 dt_epsilon
 epsilon value for time equality comparisons
 
 keeprun
 if False, temporary files are deleted, otherwise they're kept
 
 location
 
- Public Attributes inherited from hwrf.fcsttask.FcstTask
 inputs
 a mapping of typename to a list of input objects
 
- Public Attributes inherited from hwrf.hwrftask.HWRFTask
 storminfo
 The hwrf.storminfo.StormInfo describing the vitals information for the storm processed by this HWRFTask. More...
 
- Properties inherited from hwrf.hwrftask.HWRFTask
 workdir
 The directory in which this task should be run. More...
 
 outdir
 The directory in which this task should deliver its final output. More...
 
 conf
 This HWRFTask's hwrf.config.HWRFConfig object. More...
 
 section
 The confsection in self.section for this HWRFTask (read-only) More...
 
- Properties inherited from produtil.datastore.Task
 state
 Read-write property: the job state. More...
 
 taskname
 Read-only property: the name of this task. More...
 
- Properties inherited from produtil.datastore.Datum
 prodname = property(getprodname,None,None,)
 Read-only property, an alias for getprodname(): the product name part of the database ID. More...
 
 category = property(getcategory,None,None,)
 Read-only property, an alias for getcategory(), the category name part of the database ID. More...
 
 prodtype
 Read-only property, an alias for getprodtype(), the product type. More...
 
 did
 Read-only property, an alias for getid(). More...
 
 dstore
 Read-only property, an alias for getdatastore(), the Datastore in which this Datum resides. More...
 
 location
 Read-write property, an alias for getlocation() and setlocation(). More...
 

Member Function Documentation

def hwrf.coupling.CoupledWRF.add_coupled_product (   self,
  stream,
  time,
  product 
)
Adds a product for a non-WRF output stream at a given time.

Definition at line 356 of file coupling.py.

def hwrf.coupling.CoupledWRF.add_coupled_stream (   self,
  stream,
  times 
)

Products.

Adds a new non-WRF output stream.

Definition at line 342 of file coupling.py.

Referenced by hwrf.mpipomtc.WRFCoupledPOM.__init__().

def hwrf.coupling.CoupledWRF.check_all_inputs (   self,
  coupled = None 
)
Returns True if all inputs needed to run the forecast are
present, and false otherwise.  If coupled=True (the default),
then coupled components inputs are also checked, otherwise
only WRF inputs are checked.

Definition at line 95 of file coupling.py.

def hwrf.coupling.CoupledWRF.component (   self,
  which 
)
Returns information about the component with the specified
name (a string) or at the specified zero-based index (an
int).  Returns a mutable object of class Component.

Definition at line 308 of file coupling.py.

Referenced by hwrf.mpipomtc.WRFCoupledPOM.pominit().

def hwrf.coupling.CoupledWRF.couple (   self,
  name,
  exe,
  rankname,
  rankdefault = None,
  initer = None 
)
Adds the specified coupling component.  Returns self.
   name -- a user-defined name of this component, must be a string.
   exe -- option in the [exe] section with the executable path
   rankname -- name of the option in this task's section that
      has the number of ranks
   rankdefault -- number of ranks if the rankname option is
      missing or empty.  Can be None, in which case the
      rankname option must be set.
   initer -- the object that will link inputs ot the working
      directory before the forecast begins.  Can be None.
Note that the superclass, WRFAtmos, initializes the WRF 
component and this class initializes the coupler, so you can
pass None for those components' "initer" objects.

This subroutine is not thread-safe.

Definition at line 234 of file coupling.py.

Referenced by hwrf.mpipomtc.WRFCoupledPOM.__init__().

def hwrf.coupling.CoupledWRF.coupled_products (   self,
  stream = None,
  time = None 
)
Iterates over non-WRF products.

Definition at line 360 of file coupling.py.

Referenced by hwrf.coupling.CoupledWRF.products().

def hwrf.coupling.CoupledWRF.coupleiter (   self)

Component manipulation.

Iterates over all Component objects that describe coupling
components.

Definition at line 226 of file coupling.py.

Referenced by hwrf.coupling.CoupledWRF.check_all_inputs(), hwrf.coupling.CoupledWRF.link_all_inputs(), hwrf.coupling.CoupledWRF.run_exe(), and hwrf.coupling.CoupledWRF.uncouple().

def hwrf.coupling.CoupledWRF.link_all_inputs (   self,
  just_check = False,
  coupled = None 
)
If just_check=True, links or copies inputs required by all
components of the coupled simulation.  If just_check=False,
runs through all steps required to link or copy inputs without
actually linking or copying.  That mode is intended to be an
expensive but more thurough check than check_all_inputs.

Returns True if all inputs were linked, and False otherwise.

Definition at line 109 of file coupling.py.

Referenced by hwrf.fcsttask.WRFTaskBase.check_all_inputs().

def hwrf.coupling.CoupledWRF.make_coupler_namelist (   self,
  filename = 'cpl_nml' 
)
Makes the namelist for the NCEP Coupler

Definition at line 203 of file coupling.py.

Referenced by hwrf.coupling.CoupledWRF.link_all_inputs().

def hwrf.coupling.CoupledWRF.order (   self,
  name 
)
Components of coupling are ordered by where they show up in
the MPI execution.  The NCEP coupler must be first.  This
function returns the zero-based order.  Hence, if one does:

    self.couple("coupler",...).couple("hycom",...).couple("wrf",...)

then:

    self.order("coupler") = 0
    self.order("hycom")   = 1
    self.order("wrf")     = 2 

Other values will raise KeyError.

Definition at line 321 of file coupling.py.

Referenced by hwrf.coupling.CoupledWRF.couple(), and hwrf.coupling.CoupledWRF.uncouple().

def hwrf.coupling.CoupledWRF.products (   self,
  domains = None,
  stream = None,
  time = None,
  kwargs 
)
def hwrf.coupling.CoupledWRF.run (   self,
  coupled = None 
)
Runs the coupled simulation.  Sets the internal coupled
vs. uncoupled flag to the specified value.  Default: True
(coupled).

Definition at line 148 of file coupling.py.

Referenced by produtil.datastore.Task.runpart().

def hwrf.coupling.CoupledWRF.run_exe (   self)
Runs the MPI command for the coupled coupled simulation.
Do not call this directly: call self.run instead.

Definition at line 156 of file coupling.py.

def hwrf.coupling.CoupledWRF.uncouple (   self,
  which = None 
)

Removes a component, or all components, from the coupling.

Parameters
whichthe name of the component to remove. If None or unspecified, run totally uncoupled.
Returns
self

Definition at line 286 of file coupling.py.

Referenced by hwrf.mpipomtc.WRFCoupledPOM.remove_ocean(), and hwrf.coupling.CoupledWRF.uncouple().


The documentation for this class was generated from the following file: