OAX Demonstration and Test Case
Last Updated December 4, 2003
OAX analysis package was developed at the Bedford Institute of Oceanography
by I. He, R. Hendry and G. Boudreau. It uses optimal linear interpolation
(objective analysis) to estimate data values at grid points based on data
at a finite number of nearest neighbours.
The two key features of OAX5 are 1) the underlying data structure that
allows for efficient searching for nearest neighbours and thus makes it
possible to process large data sets and 2) allowance for spatially variable
correlation scales.
The original code (oax5.c) was released in September 1995. Since then there
have been substantial changes in compiler technology, c language standards,
and computer architecture. The revision oax51.c attempted to bring the code
up to modern standards and fix a bug to stop segfaults and array out of
bounds errors with some compilers. We now have reports that on some
machine/compiler combinations oax51 crashes or gives strange results.
This is not entirely unexpected as getting OAX to run on new machine/compiler
combinations has always been a bit of an adventure. It usually requires
experimenting with the compiler flags.
We will work on this as time and resources allow. In the meantime we have
decided to post both versions of the code. We would appreciate feedback
on your experiences and any bug fixes. At the bottom
of the page we categorize some of the code changes.
Feedback and questions can be directed to "ChaffeyJ" at "mar.dfo-mpo.gc.ca".
The OAX demonstration and test case provides the OAX source code, some
documentation, and a worked example based on estimating seasonal temperature,
salinity and density (sigma-t) fields for Georges Bank in the Gulf of Maine.
The source code here is oax5.c, the original version.
Oax51.c is available below.
Demonstration case:
Download the compressed file (1.7 MB) (2002-11-04)
Documentation only:
Hendry, R. and I. He. Technical Report on Objective Analysis (OA) Project.
In preparation for Can. Tech. Rep. Hydrog. Ocean Sci.
This is a draft document. (postscript)
Description of the algorithm. R. Hendry and I. He (postscript)
OAX
Demonstration and Test Case. C. Hannah, M.J. Graca and J. Loder (postscript)
Source Code only:
oax5.c: the original code which was released on 1995-09-06
oax51.c: modified code (oax51.c) which was last changed on 2002-11-04
Broad categories of code changes between oax5.c and oax51.c:
- The format of most of the function declarations have
been changed.
- In several places arrays are explicitly set to
zero.
- In several places the way floating point comparisons
are done is
changed.
- If (a< b) is changed to if (a-b < FLT_EPSILON).
|
For further information: Contact Jason Chaffey (ChaffeyJ) at mar.dfo-mpo.gc.ca. To be kept informed about updates to this program, please enter your name and email address in the form below.
|
|