Software for Data Acquisition and Analysis

The software development group provides broad software support for all projects in the group. This includes support for all of our field instruments, lab instruments and data analysis. With experience in all phases of instrument design, operation and analysis, we work closely with the other engineers, scientists and students in the group to help ensure that the instruments we build will be able to collect and deliver the required data. We also serve as a resource within the group for issues of software design and data analysis.

Data Acquisition Software

Full ConfigurationDesigning data acquisition and control software for field experiments has unique challenges. Like the electronics, the software must be robust in the face of a harsh environment. It must be able to recover gracefully from instrument component failures and power outages without losing data. It must be easily and reliably reconfigurable to adapt to midcourse changes. Our instruments operate autonomously, so the acquisition system must provide a high level language for algorithm design. After the data is acquired, there must be a method of archiving the data that can certify the integrity of the data and maintain the ability to regenerate data products from previous data sets even as the data formats evolve. Over the course of the past 25 years, we have developed, tested, refined and rewritten a system targeted at these requirements.

In operation, data acquisition and control inherently involves the coordination of a number of independent tasks, as illustrated in figure 1. Some of these are common to all instruments while others are customized or configured for each instrument.

We have created a number of custom languages for specifying various features of an instrument, including: 

  • TMC: Data flow language for telemetry data definitions
  • TMCALGO: High-level algorithm specification language
  • CMDGEN: Command syntax definition language
  • Table: Data display specification language
  • SOLFMT: Simple command cycle language

It is fairly straightforward to develop drivers to interface to either custom or commercial electronics. We have also developed drivers to allow the use of some of our custom electronics from Matlab and LabView.

Analysis Software

ICOSfit is a C++ program for fitting spectra from ICOS and Herriot Cell laser absorption instruments. It is also a suite of Matlab utilities to support the fitting operations. While there are many tools available for fitting absorption spectra, ICOS spectra present several unique challenges. ICOSfit uses an innovative strategy to optimize the calculations necessary for a multi variable non linear least squares fit, allowing for timely data analysis in the lab and during field operations

Data Acquisition Systems Documentation