Change Log
Version 1.1--April, 2001
1) Corrected bugs.
1.a) Previous version of svdeofs() used a denominator of
(N-1) to compute the variance, whilst the data sets were standardized using the
sample variance (N) in the denominator. Thus, PCs were actually scaled by
the factor sqrt((N-1)/N) and eigenvalues (variances) by a factor
(N-1)/N. We are using N in all denominators in this
version (hopefully).
1.b) readdat.py is able to handle comments like "#Variance of XXX"
(without blank between the "#" and "Variance", which
caused a crash in previous versions.
2) To be able to run under Python 2.0, all exception strings have been
removed and converted to classes. All the exceptions are instances
of a root class (PyClimateException) which can be printed with a
very comprehensive message via the __str__ method. The exceptions have an
alternative method GetExceptionValue(), which returns
the most important data relevant to each exception.
3) The differential operators have been extended. They can work using
periodic and non periodic boundary conditions in the longitudinal direction.
For latitudes, the previous approach (backward and forward second order finite
difference schemes) is used at the borders. In the current version, they are
able to work using 3D (Z,lat,lon) and 4D (time,Z,lat,lon) fields
arranged according to COARDS conventions, not just 2D fields, like
in PyClimate 1.0. This allows to compute the operation for all the records in
a data set (if it fits into memory) or for all the levels in a record.
4) A new module 'writedat.py' provides simple functions to write arrays
in a way that can be directly inverted by readdat.py.
5) Easier interface for the routines which compute EOFs and the SVD
decomposition of coupled fields. The input data sets can be arbitrarily shaped,
with the only precondition that the leading axis is the time dimension.
The fields are automatically reshaped inside the routines before returning.
Similarly, the eigenvectors and singular vectors are automatically
reshaped to the original shape before returning to the caller.
Some simple functions added to these modules (svd and svdeofs).
6) New versions of the manual and the tests cover the previously described
changes.
7) We have slowly started to provide __doc__ strings to SOME (very few, yet)
of the routines.
8) New function create_bare_COARDS() to create the bare minimum of a
COARDS compliante netCDF file in ncstruct.py
Jon Saenz and Jesus Fernandez, April 2001.