The hwrf Python package implements the individual pieces of the HWRF system, and provides means by which they can be connected to one another.  This represents the HWRF Layer in the Layered System of the Python HWRF.  This page documents the various pieces of the hwrf package at a high level.  It does not aim to provide detailed, low-level documentation: that can be found in the documentation automatically generated from the Python docstrings.

FIXME: Fill in this page with information.

Modules for Utilities and Abstract Base Classes

This section describes low-level modules in the hwrf package.  These modules do not implement the HWRF itself, instead they implement common functionality missing from the Python standard library specific to the way the hwrf is designed.  Their purpose is to simplify the rest of this package by collecting commonly reocurring code into functions or base classes.

Module hwrf.exceptions: Exceptions Thrown By hwrf

This module contains all Exception subclasses thrown by the hwrf package, except for excpetions in the standard library or produtil package.  The number of exceptions is quite large, so the reader is directed towards the docstring documentation.  However, the module defines a tree of exception classes, so calling code only needs to be aware of the higher-level classes unless very specific error handling is desired.

Module hwrf.numerics: Time and Numerics Utilities

This module defines a number of numerical utilities to simplify the rest of the hwrf package.  The hwrf package performs a large amount of date and time manipulation to, for example, compute file output names based on WRF timestep settings or determine the valid time of a forecast hour, given its analysis time.  The Python standard library can be used to do all of this work, but results in very verbose code.  This module provides utilities to simplify that code.  In addition, there are a number of non-time-related utilities to perform simple numerical computing tasks such as, for example, computing the great arc length between two points. 

There are two classes defined in this package that bear further mentioning:

hwrf.numerics.TimeArray – an array-like object that maps an equally spaced list of times each to an object.

hwrf.numerics.TimeMapping – an object that acts similar to the standard library map class, but mapping times to an object.  Times within some epsilon of a known time are treated as that time.

Module hwrf.namelist: Fortran Namelist Utilities

This module contains code to generate Fortran namelists from in-memory Python objects.  It knows how to convert certain Python objects, such as strings or datetime.datetime to a fortran namelist expression of the same, and back again.  The hwrf package this module to generate namelists from the parm/hwrf.conf file in the Experiment Layer.

Module hwrf.hwrftask: Simplifying HWRF Tasks

Module hwrf.constants: Constants and "Constants"

Modules for Describing HWRF Components

Module hwrf.config: Configuring HWRF Components

Modules hwrf.wrfbase and hwrf.wrf: Describing WRF Simulations

Module hwrf.regrib: Low-Level Regribbing Routines

Module hwrf.storminfo: Reading and Writing Storm Vitals

Module hwrf.revital: Rewriting the TCVitals

Modules for Running HWRF

Module hwrf.fcsttask: HWRFTasks that Run WRF and Real

Module hwrf.wps: Generating Inputs to WRF

Module hwrf.post: HWRFTasks that Post-Process WRF Output

Module hwrf.gribtask: A Regribbing HWRFTask

Module hwrf.tracker: The GFDL Vortex Tracker

Module hwrf.copywrf: Delivering WRF Native Output and Input

Module hwrf.nhc_products: Swaths and Custom NHC Products

  • No labels