HWRF  trunk@4391
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
hwrf.wrf.ExternalWRFTask Class Reference

monitors a running wrf simulation More...

Detailed Description

monitors a running wrf simulation

This class represents a WRF simulation that is running in an external workflow. It reads the WRF configuration to internally generate namelist information, as if it was going to run the WRF itself. It then monitors the running or completed WRF simulation for simulation output, making it available as Product objects. All WRF outputs are available as UpstreamProduct objects.

The WRFSimulation object is available as the public "wrf" member variable and is initialized by the ExternalWRFTask constructor using arguments similar to the WRFSimulation constructor. The simulation start, end and timestep, if unspecified, are taken from the specified conf section's variables by the same name.

Definition at line 1296 of file wrf.py.

Inheritance diagram for hwrf.wrf.ExternalWRFTask:
hwrf.hwrftask.HWRFTask produtil.datastore.Task produtil.datastore.Datum hwrf.multistorm.ForecastWatcher

Public Member Functions

def __init__ (self, dstore, conf, section, wrf, relocate=False, kwargs)
 ExternalWRFTask constructor. More...
 
def change_location (self)
 
def wrf (self)
 returns the WRFSimulation object that describes the simulation More...
 
def unrun (self)
 marks products as not having been delivered More...
 
def clear_cached_products (self)
 clears cached Product objects More...
 
def as_product
 Converts a WRFOutput to a Product. More...
 
def products
 Iterate over products. More...
 
def wrf_check
 Update file availability information. More...
 
def update_state (self)
 Is the WRF running, completed or failed? 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...
 

Public Attributes

 state
 
- Public Attributes inherited from hwrf.hwrftask.HWRFTask
 storminfo
 The hwrf.storminfo.StormInfo describing the vitals information for the storm processed by this HWRFTask. More...
 

Protected Member Functions

def _get_cache (self, wrfout)
 Returns the product cached for the specified wrfout or None if not found. More...
 

Additional Inherited Members

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

Constructor & Destructor Documentation

def hwrf.wrf.ExternalWRFTask.__init__ (   self,
  dstore,
  conf,
  section,
  wrf,
  relocate = False,
  kwargs 
)

ExternalWRFTask constructor.

Creates an ExternalWRFTask, as a wrapper around a WRFSimulation. The conf, section, moad, simstart, simend and timestep are passed on to the WRFSimulation. If simstart, simend, or timestep are None or missing, then they are taken from the configuration section for this task.

Definition at line 1311 of file wrf.py.

Member Function Documentation

def hwrf.wrf.ExternalWRFTask._get_cache (   self,
  wrfout 
)
protected

Returns the product cached for the specified wrfout or None if not found.

Parameters
wrfoutthe hwrf.wrfbase.WRFOutput

Definition at line 1363 of file wrf.py.

Referenced by hwrf.multistorm.ForecastWatcher.as_product().

def hwrf.wrf.ExternalWRFTask.as_product (   self,
  wrfout,
  relocate = False 
)

Converts a WRFOutput to a Product.

Returns a Product for a WRFOutput. The Product is cached in self.__prodcache and as_product() will return that cached value if one is available. Otherwise, a new one is created. Call clear_cached_products() to clear the cache.

Definition at line 1377 of file wrf.py.

Referenced by hwrf.wrf.ExternalWRFTask.products().

def hwrf.wrf.ExternalWRFTask.change_location (   self)
Allows subclasses to change self.location in the
constructor before product generation.

Definition at line 1340 of file wrf.py.

Referenced by hwrf.wrf.ExternalWRFTask.__init__().

def hwrf.wrf.ExternalWRFTask.clear_cached_products (   self)

clears cached Product objects

Clears the cache of WRFOutput -> Product mappings, used to speed up as_product. Calling this will ensure that any later calls to as_product will generate new Product objects.

Definition at line 1356 of file wrf.py.

def hwrf.wrf.ExternalWRFTask.products (   self,
  domains = None,
  stream = None,
  time = None,
  relocate = False 
)

Iterate over products.

Iterates over all Products subject to the given constraints, or all Products if no constraints are given:

Parameters
domainsonly these WRFDomains
streamonly these streams (strings)
timeonly these times. The earliest output time that is not before the target time is yielded
relocatepassed to self.as_product. Forces an update of the product location

Definition at line 1406 of file wrf.py.

Referenced by hwrf.wrf.ExternalWRFTask.__init__(), hwrf.wrf.ExternalWRFTask.unrun(), and hwrf.wrf.ExternalWRFTask.wrf_check().

def hwrf.wrf.ExternalWRFTask.unrun (   self)

marks products as not having been delivered

Marks all products as not having been delivered. Does not delete anything.

Definition at line 1349 of file wrf.py.

def hwrf.wrf.ExternalWRFTask.update_state (   self)

Is the WRF running, completed or failed?

Scans the rsl.out.0000 file to automatically determine the state of the WRF simulation. Looks for "SUCCESS COMPLETE" and "FATAL CALLED" to detect successful completion, or calling of wrf_error_fatal. Sets self.state to produtil.datastore.COMPLETED, produtil.datastore.FAILED, produtil.datastore.RUNNING or produtil.datastore.UNSTARTED based on the contents of rsl.out.0000

Definition at line 1451 of file wrf.py.

def hwrf.wrf.ExternalWRFTask.wrf (   self)

returns the WRFSimulation object that describes the simulation

Returns the underlying WRFSimulation object that describes the simulation that is being run.

Definition at line 1343 of file wrf.py.

def hwrf.wrf.ExternalWRFTask.wrf_check (   self,
  product = None,
  stream = None,
  time = None 
)

Update file availability information.

Calls produtil.datastore.UpstreamFile.check() to update the availability information on all products() that match the given constraints.

Parameters
productonly this product is checked
streamonly these streams (strings)
timeonly these times. The earliest output time that is not before the target time is yielded

Definition at line 1435 of file wrf.py.


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