CODAS processing stages

CODAS processing operates on data which reside on the disk, i.e. after the acquisition program had done its job. CODAS processing of ADCP data consists of two stages:

  1. getting the data into the CODAS database
  2. editing and calibration of data already in the CODAS database


The term “processing” implies both steps; whereas “post-processing” generally refers to step 2, i.e. steps that can be run more than once.

This flow chart shows the split between what happens before the data are in the CODAS database (acquisition + averaging + loading the database) and the steps that operate on the CODAS database itself.

This figure is a cartoon showing where CODAS processing fits with LTA and UHDAS datasets.

CODAS processing is managed by the Python program

(1) Loading averages into CODAS

In this stage, is typically called with a control file with parameters it needs to know for processing, and typically can only be run once.

If dealing with single-ping data:

  • read the ADCP and ancillary serial data
  • find UTC time, add position and attitude
  • edit out bad single-ping velocities
  • average the single-ping data; write to disk.

pre-averaged data

For PINGDATA and VmDAS LTA or STA data, very little single-ping editing is done prior to averaging.

Then we load these files, whatever their source, into the CODAS database

Heading Correction

  • obtain a heading correction for the gyro headings, using an accurate (preferrably gps-based) attitude device
  • check the health of the accurate heading device

If there are two heading devices, we use one as a reliable heading (usually a gyro) and the more accurate one as a correction to the reliable one. This is typically applied once, but if there are gaps (eg. during at-sea processing) one may need to “unrotate”, patch, and rerotate.

(2) CODAS (Post) Processing

In this stage, is called with the argument --steps2rerun. These components can be run multiple times.

  • Navigation
    • find and smooth the reference layer
  • Calibration
    • determine preliminary angle and amplitude calibrations from watertrack and/or bottom track data (using corrected headings)
    • if large corrections are required, do that before editing
  • Editing
    • editing (bottom interference, wire interference, bubbles, ringing, identifying problems with heading and underway bias),
  • Calibration (check)
    • final calibration based on edited data
  • Documentation
    • leave notes so someone can see what was done or reproduce the processing steps if necessary
  • Extract data files
    • data can be extracted in Matlab or NetCDF format
  • Make figures
    • A simple web-figure generator exists and is useful for distribution and a basic quick look at the data

This ascii chart shows (most of) the steps performs, the directory in which it does the work, the input files it generates, the programs it runs, and the output files it generates.