atmqty
Manual: How To Use The PackageThere are three ways of using this package:
(1) for its central definition of atmospheric constants,
(2) as a suite of procedures to calculate selected atmospheric
quantities using Numeric
arrays as input, and
(3) for the AtmQty
object, which manages the calculation of a
self-consistent set of atmospheric quantities.
The first use is pretty obvious. The second and third uses deserve a little elaboration.
One of the strengths of Python is its flexibility. Thus, even though it is an object-oriented language, it can also be used as a procedural language. While objects enable software engineers to write more portable and robust code (at least for industrial applications), many climate scientists both think and program procedurally. Often in climate science you have a bunch of data in memory you just want to do stuff to. There is also some cognitive science research that suggests procedural expressions more closely map the cognition framework used by experts to solve physical science problems.
Thus, because atmqty
is written for climate scientists
(and not computer scientists) to use, it made sense to make as much
of the functionality procedural as well as object-oriented. Thus,
a number of the methods provided in class AtmQty
to
calculate atmospheric quantities actually call procedural functions
that perform the task on generic Numeric
arrays
(e.g. the theta
method and function).
Besides being called by the AtmQty
methods,
these procedural functions have a number of other uses:
Numeric
arrays
of arbitrary shape and size, the procedures can be used on
problems where the data is not already formatted on a
latitude-longitude-level domain (as is assumed in AtmQty
).
A summary list of these procedural functions is found here.
For some types of calculations, however, objects really provide a
powerful organizing tool, by binding methods and attributes together,
and enable more robust coding. This is particularly true if there is
some structure to the problem domain. The AtmQty
class provides a more robust framework for managing interrelated
atmospheric quantities, within a fixed latitude-longitude-level domain.
As a result, some of the methods in AtmQty
are not
available procedurally in the atmqty
package, as
those methods make use of the linking of methods and attributes.
An example is vort_rel
which calculates relative
vorticity: this method requires the data be embedded in a structure
that can be broken down into horizontal rectilinear grids, something
that AtmQty
automatically provides.
In summary, this package is quite easily adapted to the needs of your problem. Pick, choose, and combine the features as you need. The package description on the package home page provides a quick summary of the features. This manual provides more details. Happy computing!