-
Notifications
You must be signed in to change notification settings - Fork 31
NXICBinaryFormat
Guillaume Galibert edited this page Jun 26, 2015
·
1 revision
FSI do not seem to provide information on the format of the binary files output by the NXIC CTD sensor. This page details my attempts to reverse engineer the format. All multi-byte values are stored in little endian format.
All .ctd files begin with a header section of 220 bytes.
Offset | Length | Description | Type | Note |
---|---|---|---|---|
0 | 2 | File ID (9b00 )? |
? | |
2 | 2 | Instrument serial number | uint16 | |
17 | 1 | Start second | uint8 | |
18 | 1 | Start minute | uint8 | |
19 | 1 | start hour | uint8 | 24 hour |
20 | 1 | Start day | uint8 | |
21 | 1 | start month | uint8 | |
22 | 1 | Start year | uint8 | add 2000 |
28 | 1 | Interval hour | uint8 | |
29 | 1 | Interval minute | uint8 | |
30 | 1 | Interval second | uint8 | |
31 | 1 | Record hour | uint8 | |
32 | 1 | Record minute | uint8 | |
33 | 1 | Record second | uint8 | |
155 | 7 | Calibration date | char | ddMMMYY |
199 | 1 | Sample length | uint8 | Length of sample packets in bytes |
The header is followed by sample data. The structure of a sample packet varies depending on auxillary sensor configuration, but all sample packets have at least the following fields:
Offset | Length | Description | Type | Note |
---|---|---|---|---|
0 | 4 | Time | uint32 | Unix time |
4 | 1 | Second fraction | uint8 | |
5 | 4 | Conductivity | float | mmho/cm |
9 | 4 | Temperature | float | Degrees Celsius |
13 | 4 | Pressure | float | dbar |
17 | 4 | Salinity | float | PSU |
21 | 4 | Sound velocity | float | m/s |
25 | 4 | Battery voltage | float | V |
29 | 2 | Turbidity | uint16 | Divide by 1310.7133018216962 to convert into FTU |
31 | 2 | Flourescence | uint16 | Divide by 655.387164 to convert into ug/L |