HWRF
trunk@4391
|
This is a HWRF task that extracts the meteorological fields from GRIB formatted files and write the fields to intermediate files. More...
This is a HWRF task that extracts the meteorological fields from GRIB formatted files and write the fields to intermediate files.
It is a wrapper around the WPS ungrib.exe program.
Public Member Functions | |
def | __init__ (self, args, kwargs) |
Creates a new Ungrib. More... | |
def | one_time (self) |
If True, we are pretending that hour 0 is valid for all times. More... | |
def | gribs_per_time (self) |
How many grib files are processed for each time? This is 2 if an item2 or in_item2 were given in the config or constructor, respectively. More... | |
def | inputiter (self) |
Iterates over all input files needed. More... | |
def | input_at |
Finds input data for a specific time and GRIB file. More... | |
def | get_grib |
Link or copies all the input GRIB files to the current working directory. More... | |
def | run (self) |
Links inputs and runs ungrib. More... | |
def | check_outfiles (self) |
Checks the expected ungrib output files to make sure they all exist and are non-empty. More... | |
def | deliver_products (self, args, kwargs) |
Does nothing. More... | |
def | products (self, kwargs) |
Ungrib delivers no products. More... | |
![]() | |
def | __init__ (self, dstore, conf, section, sim, domains, taskname=None, wpsdir=None, starttime=None, increment=None, endtime=None, parent_atime=None, geogrid_from=None, kwargs) |
Create a new WPSTask. More... | |
def | io_suffix (self, stream) |
Guesses the file suffix (.nc, etc.) for the specified stream. More... | |
def | getsim (self) |
The WRFSimulation object for which we are preparing input. More... | |
def | check_geogrid (self) |
Checks to see if the geogrid MOAD output file is present and non-empty in the current working directory. More... | |
def | link_geogrid (self) |
Links geogrid output from the specified Geogrid task to the current working directory. More... | |
def | times (self) |
Iterates over all output times. More... | |
def | domains (self) |
Iterates over the domains in this WPSTask. | |
def | link_fix |
Links all fix files for ungrib to the current working directory. More... | |
def | make_product_structure (self, stream) |
Generates the self._products data structure used by the products method. More... | |
def | make_products (self) |
This subroutine should be implemented in subclasses. More... | |
def | products |
Iterates over all products. More... | |
def | make_namelist (self) |
Returns the namelist.wps contents as a string. More... | |
def | undeliver_products |
Deletes all delivered products and marks them as unavailable. More... | |
def | deliver_products |
This is called from self.run to deliver all products to the intercom directory. More... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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 | |
inputs | |
the hwrf.input.DataCatalog to use for obtaining input data | |
in_atime | |
Parent model analysis time. | |
in_ftime | |
Parent model forecast hour that maps to the analysis time of this model. | |
in_dataset | |
Input dataset for the first GRIB source. | |
in_dataset2 | |
Input dataset for the second GRIB source. | |
in_item | |
Input item for the first GRIB source. | |
in_item2 | |
Input item for the second GRIB source. | |
state | |
![]() | |
location | |
nl | |
an hwrf.namelist.Conf2Namelist with the namelist.wps information | |
starttime | |
Simulation start time. More... | |
endtime | |
Simulation end time. More... | |
increment | |
Simulation boundary input interval. | |
parent_atime | |
Parent model analysis time. | |
![]() | |
storminfo | |
The hwrf.storminfo.StormInfo describing the vitals information for the storm processed by this HWRFTask. More... | |
Additional Inherited Members | |
![]() | |
nocolons | |
Read-only property that guesses whether colons should be omitted from filenames (True) or not (False) More... | |
maxdom = property(_maxdom,None,None,"The number of WRF domains.") | |
The number of WRF domains. More... | |
MOAD = property(_MOAD,None,None,"Returns the Mother of All Domains (MOAD)") | |
The Mother Of All Domains (MOAD) as an hwrf.wrf.WRFDomain. | |
sim | |
Read-only property: the hwrf.wrf.WRFSimulation for this WPSTask. More... | |
![]() | |
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... | |
![]() | |
state | |
Read-write property: the job state. More... | |
taskname | |
Read-only property: the name of this task. More... | |
![]() | |
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... | |
def hwrf.wps.Ungrib.__init__ | ( | self, | |
args, | |||
kwargs | |||
) |
Creates a new Ungrib.
All arguments are passed to the WRFTask constructor. The only new arguments are:
args,kwargs | passed to WPSTask.__init__ |
def hwrf.wps.Ungrib.check_outfiles | ( | self | ) |
Checks the expected ungrib output files to make sure they all exist and are non-empty.
Definition at line 1019 of file wps.py.
Referenced by hwrf.wps.Ungrib.run().
def hwrf.wps.Ungrib.deliver_products | ( | self, | |
args, | |||
kwargs | |||
) |
Does nothing.
Ungrib has no products to deliver.
args,kwargs | Ignored. |
Definition at line 1037 of file wps.py.
Referenced by hwrf.ww3.WW3Init.run().
def hwrf.wps.Ungrib.get_grib | ( | self, | |
require = False |
|||
) |
Link or copies all the input GRIB files to the current working directory.
Note that if two grib files are requested, then this is done by copying the data.
require | if True, then hwrf.exceptions.UngribNoInput is raised when inputs cannot be found. |
Definition at line 802 of file wps.py.
Referenced by hwrf.wps.Ungrib.run().
def hwrf.wps.Ungrib.gribs_per_time | ( | self | ) |
How many grib files are processed for each time? This is 2 if an item2 or in_item2 were given in the config or constructor, respectively.
Otherwise it is 1.
Definition at line 742 of file wps.py.
Referenced by hwrf.wps.Ungrib.get_grib().
def hwrf.wps.Ungrib.input_at | ( | self, | |
dt, | |||
igrib = 1 , |
|||
require = False |
|||
) |
Finds input data for a specific time and GRIB file.
dt | the forecast time as a datetime.datetime, relative to the in_ftime |
igrib | 1 or 2, which input file is used (in_item or in_item2 This is needed for models like GFS and GEFS that split their GRIB files into two parts. |
require | if True, then hwrf.exceptions.UngribNoInput is raised when inputs cannot be found. |
Definition at line 767 of file wps.py.
Referenced by hwrf.wps.Ungrib.get_grib().
def hwrf.wps.Ungrib.inputiter | ( | self | ) |
Iterates over all input files needed.
This is meant to be plugged in to an hwrf.input.InputSource to obtain input data in the scripts.exhwrf_input job.
def hwrf.wps.Ungrib.one_time | ( | self | ) |
If True, we are pretending that hour 0 is valid for all times.
This is equivalent to constant boundary conditions. If in_ftime is non-zero, then that hour is used instead.
Definition at line 735 of file wps.py.
Referenced by hwrf.wps.Ungrib.inputiter().
def hwrf.wps.Ungrib.products | ( | self, | |
kwargs | |||
) |
Ungrib delivers no products.
Everything is kept in the WPS temporary directory and reused by metgrid. The Metgrid implementation assumes it is running in the same directory as Ungrib, so no call to products() is needed.
kwargs | Ignored. |
Definition at line 1040 of file wps.py.
Referenced by hwrf.wrf.ExternalWRFTask.__init__(), hwrf.wrf.ExternalWRFTask.unrun(), and hwrf.wrf.ExternalWRFTask.wrf_check().
def hwrf.wps.Ungrib.run | ( | self | ) |
Links inputs and runs ungrib.
Ungrib has no deliverables: it only places files in the local directory for a later Metgrid.run() to pick up and use.
Definition at line 986 of file wps.py.
Referenced by produtil.datastore.Task.runpart().