This is a header-only C++ library for en/decoding CADU frames, as used in the Terra/Aqua satellite missions. These files are sometimes called "Level 0" data, and can be found at the NASA archives such as LAADS DAAC.
Also contained are the following command-line tools:
caduinfo
- Displays the header contents of a CADU stream from stdin.cadupack
- Pack bytes from stdin into a CADU stream on stdout.caduunpack
- Unpack a CADU stream from stdin to stdout.caduhead
- Output the first part of a CADU stream from stdin, in whole CADUs, up to a given index.cadutail
- Output the last part of a CADU stream from stdin, in whole CADUs, from a given index.
The available command line options are available from each program with the -h
flag.
Dependencies:
Building:
make
make install
Detection of whether CADU is a "fill" CADU (as used in gov/nasa/gsfc/drl/rtstps/core/ccsds/CaduService.java) l202
Packet routing system to replace RT-STPS
NASA have decoders for Level 0 data already implemented in the IPOPP MODISL1DB algorithm available at the Direct Readout Laboratory website.
This wraps the ocssw tools from the OceanColor Data software repositories.
A description of the protocol in found in this document. Note that the checksum, although documented as an XOR, is actually implemented as addition in the official NASA data decoders - we therefore implemented addition as well.
Many thanks to Jonathan Tanner for his help in writing this library.