CODAS (Common Ocean Data Access System) is more than a database. The
word has come to be associated with a suite of open-source programs
for processing ADCP data. CODAS consists of C, Matlab, and scripts
that will run on Windows, Linux, SunOS, or Mac OSX, and can process
pingdata from a Narrowband ADCP or Broadband or Ocean Surveyor data
collected by VmDAS. Older scripts were written in Perl, but we have
shifted to Python for the newer versions of these scripts.
Some kind of data treatment is necessary because the acquisition programs
write binary files to the disk that are not readable by commercial plotting
packages. In fact, there are not actually any ocean velocities stored in
the files. A shipboard ADCP reports currents measured along each of its
beams. These currents must be transformed into earth coordinates, and the
motion of the ship taken out. Ancillary data such as heading and position
are used to extract the ocean velocity from the measured velocies. There are
at present three different generations of ADCPs collecting data on ships.
CODAS processing can deal with data collected by any of the instruments,
under DAS2.48 (for narrowband instruments) or VmDAS (for broadband or phased
array instruments).
There are at least four necessary processing steps which are performed by
(or made possible) by the CODAS routines. First, an ocean reference
layer is used to remove the ship's speed from the measured velocities.
By assuming the ocean reference layer is relatively smooth, positions can be
nudged to smooth the ship's velocity, which directly results in the smooth
reference layer velocity. (This was more important when fixes were rare
or jumpy (such as with LORAN) or dithered (such as SA GPS signals prior to
2001).
Second, calibration routines are available to estimate the heading
misalignment from either bottomtrack or watertrack data. Watertrack
calibration routines use sudden accelerations (such as stopping and starting
of the ship when doing station-work) to derive a heading misalignment. For a
ship travelling at 10 kts, a 1-degree heading error results in a 10 cm/s
cross-track veliocity error. It is critical that the misalignment be
accounted for if one is to avoid cross-track biases in the velocities.
Third, a GPS-derived heading source (such as Ashtech, POSMV, or Seapath) may
provide a more accurate (though often less reliable) heading source than a
gyro. Routines are in place for pingdata (and are under development for
VmDAS-acquired data) to correct the gyro heading with the GPS-derived
heading, using a quality-controlled difference in headings. Gyro headings
may be reliable but they can vary with oscillations of several degrees over
several hours, thus creating spurious "eddies" which are soley the result of
cross-track velocity errors (from the associated gyro heading errors).
Fourth, it is crucial that bad data be edited out prior to use.
Traditionally, the data available from the DAS2.48 narrowband data was
averaged in 5 minute groups. VmDAS also outputs time-averaged data (in LTA
or STA files). With CODAS processing, a graphical interface allows
identification fo the bottom and selection of bad profiles or bad bins based
on a variety of criteria. To some extent this can be automated, but under
some conditions it still requires a user to visually inspect all the averages
from a cruise. The graphic interface vastly speeds up editing to the point
where it takes only a few minutes of user time per day of data for a typical
cruise.
Finally, CODAS processing is moving beyond averaged data to the realm of
single-ping data. Whatever acquisition program was used to record the data
also averages it. Prior to averaging, some attempt is made to eliminate bad
pings. CODAS processing now includes routines that average single-ping data
collected by VmDAS or UHDAS (open source acquisition software that runs
narrowband or Ocean Surveyor instruments). These routines allow the
single-ping data to be screened more extensively prior to averaging. Under
certain conditions, this may be necessary to avoid subtle underway biases
caused by bubbles or ice near the transducer. This includes the ability to
read single-ping data files and look at the characteristics of the instrument
(such as acoustic backscatter or beam velocities) one ping at a time.
We are beginning to deal with a new generation of instruments (the RDI Phased Arrays) and CODAS processing is changing to meet the new data.