HWRF  trunk@4391
__init__.py
1 ##@namespace hwrf
2 # Defines classes that know how to run all parts of the HWRF system.
3 #
4 # @anchor hwrf_overview
5 # The hwrf package implements the atmospheric and coupling aspects of
6 # the HWRF system. It provides many classes that perform
7 # initialization, forecast, post-processing and data delivery.
8 # Broadly speaking, these are divided into three groups: high-level
9 # packages that actually run parts of the system, packages that
10 # describe the work to be done by the HWRF system, and low-level
11 # packages that provide simple utilities and abstract base classes.
12 #
13 # @section highlevel High-Level Packages
14 #
15 # The packages in this section implement the high-level logic of the
16 # HWRF system, such as running GSI or WRF, or copying files to COM.
17 # By and large, these packages define hwrf.hwrftask.HWRFTask
18 # subclasses. The batch jobs or scripts then call the run() function
19 # on the task of interest to tell it to do its job. Later tasks in
20 # the workflow obtain data from earlier tasks by calling the
21 # products() iterator on those tasks.
22 #
23 # Relevant modules, in the approximate order in which they're used in
24 # the workflow, are:
25 # * hwrf.launcher --- creates the initial HWRF working directories and
26 # important files such as the database, configuration, holdvars,
27 # and storm information.
28 # * hwrf.input --- obtains input data from disk, FTP, SSH or tape to meet
29 # the input data requirements given by each tasks' inputiter() iterator.
30 # * hwrf.wps --- runs the WRF Pre-Processing System (WPS) on parent model
31 # data to produce inputs to the real_nmm and wrf programs.
32 # * hwrf.prep --- runs the prep_hybrid program on parent model spectral
33 # data to produce inputs to the real_nmm
34 # * hwrf.relocate --- relocates, resizes and modifies the intensity of
35 # the tropical cyclone vortex.
36 # * hwrf.bufrprep --- converts data dumps to bufr files for input to GSI
37 # * hwrf.gsi --- runs the GSI data assimilation system
38 # * hwrf.fcsttask --- runs the atmosphere-only WRF and real_nmm, including
39 # short simulations for generating wrfanl files, six hour analysis cycle
40 # simulations and the full 126hr forecast job.
41 # * hwrf.mpipomtc --- interfaces with the pom package to run the POM
42 # ocean model initialization and run the POM-coupled WRF forecast
43 # * hwrf.post -- runs the HWRF post to convert model output to GRIB files
44 # * hwrf.gsipost -- a wrapper around hwrf.post that handles inputs and
45 # outputs to GSI, assisting in GSI diagnostics.
46 # * hwrf.gribtask --- runs copygb, wgrib, grbindex and similar programs
47 # to manipulate GRIB files and copy them to their final destination
48 # * hwrf.copywrf --- copies WRF input and output data to some destination
49 # * hwrf.nhc_products --- NHC-specific product creation and delivery
50 # * hwrf.tracker --- runs the GFDL vortex tracker
51 # * hwrf.ensda --- data assimilation ensemble
52 # * hwrf.rocoto -- utilities to interface between HWRF and the Rocoto
53 # workflow automation system
54 #
55 # @section describers Packages that Describe the HWRF System
56 #
57 # Some packages in the HWRF system only describe the workflow and how
58 # it is to be executed. These modules allow for complex querying and
59 # modification of the work before the work is actually started. This
60 # way, tasks know in detail the inputs and outputs to all other tasks
61 # in the workflow.
62 #
63 # These modules include:
64 # * hwrf.wrf, hwrf.wrfbase --- describe a WRF simulation, generates
65 # the WRF namelist from the HWRF configuration files, predicts input
66 # and output filenames based on namelist settings
67 # * hwrf.regrib --- describes regribbing operations and has most of
68 # the implementation of those operations. This is used by
69 # hwrf.gribtask to do the actual regribbing.
70 # * hwrf.ensda --- contains classes to describe a two-dimensional
71 # ensemble-vs-time array of tasks that represent the steps of an
72 # ENKF or hybrid ENKF data assimilation system. Also has wrappers
73 # around many of the high-level modules to create the GFS ENKF-based
74 # HWRF DA ensemble, hwrf.ensda.FromGFSENKF.
75 # * hwrf.hwrfsystem --- a wrapper around many of the high-level modules that
76 # simplifies the definition of the HWRF post-processing and data
77 # delivery.
78 # * hwrf.init --- a wrapper around many of the high-level modules that
79 # combines objects in complex ways to create the HWRF initialization
80 # system.
81 #
82 # @section lowlevel Low-Level Logic Modules
83 #
84 # Several of the modules in the hwrf package provide utilities or
85 # abstract base classes that simplify the higher-level modules
86 # described above.
87 #
88 # * hwrf.config, hwrf.hwrftask --- allows for configuration of the
89 # HWRF system using UNIX Conf files. Implements some functionality
90 # common to all, or nearly all, HWRF tasks. This includes product
91 # listing, directory and executable specification, scrubbing
92 # settings, input data requirements and others.
93 # * hwrf.exceptions --- exception classes thrown by the HWRF module.
94 # All exceptions defined in the hwrf package that can leave an hwrf
95 # module are defined here to avoid cyclic dependencies in the import
96 # statements. This allows one to just do "from hwrf.exceptions
97 # import *" to get all HWRF-specific exceptions.
98 # * hwrf.constants --- constant values used in the HWRF system
99 # * hwrf.numerics --- time and date manipulation and other numerical
100 # routines used throughout the HWRF system.
101 # * hwrf.prelaunch --- utilities for changing the HWRF configuration
102 # before the hwrf.launcher completes. This allows per-cycle
103 # configuration changes, such as only running a 12hr forecast for 6Z
104 # and 18Z cycles.
105 # * hwrf.storminfo --- parsing of ATCF, message and tcvitals files, which
106 # specify storm information.
107 # * hwrf.revital --- complex manipulations of tcvitals data