Working with LIGO Data Using C

C developers have at least two options for libraries that will read LIGO data files - the Frame Library and HDF5. If you have no strong reason to prefer C, you may find the python-based instructions in the Introductory Tutorial a quicker way to get started.

The Frame Library

LIGO data files in the gravitational wave frame file format (.gwf) may be read using the Frame Library.

HDF5

LIGO data files in the HDF5 file format (.hdf5) may be read using the HDF5 Library. The HDF5 in C example script is a minimal example, showing how to extract the most essential data from a LIGO data file. More complete documentation on HDF5 is available on the HDF Group web site.

In the LIGO computing enviornment, the example script may be compiled with this command:

gcc -o hdf5_losc hdf5_losc.c  -lhdf5  -D H5_USE_16_API 
On a mac, macports may be used to install HDF5, in which case the example script may be compiled with a command similar to this:
gcc -o hdf5_losc hdf5_losc.c  -lhdf5  -D H5_USE_16_API -I /opt/local/include -L/opt/local/lib 
All computing envoirnments are a little different, so compiling on your computer may not work in exactly the same way.

Running the example script should produce output similar to this:

$ ./hdf5_losc
/quality/simple/DQmask:
 [ 196591 196591 196591 196591 196591 196591 196591 196591 196591 196591 ... ]
The total live time for this 4096 s file is: 3481 seconds
/strain/Strain:
 [ 8.302311e-17 9.192293e-17 1.007950e-16 1.095800e-16 1.182704e-16
1.269312e-16 1.354517e-16 1.439318e-16 1.522801e-16 1.605206e-16 ... ]

LOSC Data File Structure

For an overview of the LOSC data file structure, see the Introduction to LIGO Data Files tutorial. In addition, both the HDF5 Library and the Frame Library provide tools for reading or "dumping" the structure of a file. For example, HDFView provides a GUI interface to HDF5 files. If working with GWF files, the FrDump is a quick way to see what information is available in a frame file.