Name Template: PUB/MISSION/level1a/opnGps/opnGps_YYYY.DDD.LLL.NN.TT_bnx
DDD | Day of year |
IIII | Mission ID (CHAM, SACC, CO01-06, GPSM, etc) |
LLL | LEO number (1-6 for COSMIC) |
MISSION | Mission ID (eight characters or less--champ, champrt, sacc, sacctst, etc) |
NN | Dump number since midnight |
PUB | Base directory for the pub hierarchy |
TT | The number of the LEO antenna which received these data (1-N) |
YYYY | Year |
Atmospheric occultation data in a simple custom binary format.
This data file contains
all high rate atmospheric data sent us by the GNSS receiver on the LEO.
A simple perl reader for this format can be found
here: dump_opnGps.pl.
The data in these files are ordered by GPS PRN number. The block containing
PRN 1 data appears before the block with PRN 2 data, etc. The byte offsets
of these sections appear in the trailer block at the end of the file, so
quick searches can be done if you know the PRN you are looking for.
This data file consists of three types of records:
- One second header values. These are values that are supplied by the
instument every second and which do not change over the second.
- High rate data values. These high rate data are interleaved with
the one second headers. For 50 Hz data, there will be 50 high rate records
after each one second header.
- Trailer. Each file has a fixed-length binary section at the end which
contains format information and file offsets of each of the PRN sections.
The normal plan for reading these data is to seek to the end of file and then
read the 64 byte trailer. This tells the location and data format of each PRN block.
Then seek to the start of the PRN block desired and read the time-ordered data
sequentially. One can seek past the high rate records (which are all the same size)
until the correct time is found.
PRN block
Main sections of data, one per PRN, containing low rate and high rate sections
|
Repeated element: One second data block |
Repeated: once per second of data |
rate |
1 uint2 |
|
The data rate in Hz, or the number of high rate records per low rate record |
|
50 or 100 |
|
PRN |
1 uint2 |
|
The PRN number of the satellite |
|
1 to 32 |
|
GPS seconds (integer) |
1 uint4 |
|
integral GPS time |
|
seconds |
|
pr0 |
1 double |
|
CA range or range model |
|
|
datalen |
1 uint1 |
|
One byte Blackjack packet length--do not use! |
|
|
trkstatus |
1 uint1 |
|
Open loop tracking status |
|
21-26: clock link data, 32: flywheeling, 33: CL portion of OL, setting, 34: OL setting, 35: OL rising, 36 => 'CL portion of OL, rising |
|
flystatus |
1 uint1 |
|
Flywheeling status |
|
000000XX: Bit 1: flywheeling data, Bit 2: L2C data |
|
P2range |
1 double |
|
P2 Range or range model (L2C only--version 3) |
|
|
|
Repeated element: High rate data block |
Repeated: once per epoch of data (see 'rate' field above) |
time_offset |
1 uint1 |
|
Time offset from the integer GPS time above |
|
seconds |
|
L1 |
1 double |
|
L1 phase |
|
meters |
|
L2 |
1 double |
|
L2 phase |
|
meters |
|
SNR1 |
1 ushort |
|
L1 signal to noise ratio |
|
10 * volts/volt |
|
SNR2 |
1 ushort (16 bits) |
|
L2 signal to noise ratio |
|
10 * volts/volt |
|
camdl |
1 double (64 bits) |
|
CA phase model (open loop data--version=1,3 only) |
|
meters |
|
dfaz |
1 float (32 bits) |
|
Delta phase (open loop data--version=1,3 only ) |
|
meters |
|
p2mdl |
1 double (64 bits) |
|
P2 phase model (L2C open loop data--version 3 only) |
|
meters |
|
dfaz2 |
1 float (32 bits) |
|
L2 Delta phase (L2C open loop data--version 3 only ) |
|
meters |
|
Trailer
Contains byte offsets of PRN blocks and file version and format information
|
Repeated element: PRN offsets |
Repeated: 32 times (once for each PRN number possible) |
offset |
1 signed long (32 bits) |
|
The byte offset from the beginning of the file to the start of a block of data from a given PRN (for PRNs 1 to 32). -1 means no data for this PRN |
|
bytes |
|
version |
1 unsigned byte (8 bits) |
|
Version number of data format |
|
1 = open loop data, 2 = closed loop data, 3 = open loop L2C data |
|
hrformat |
31 unsigned char (8 bits) |
|
Format of high rate data block (eg fddSSdf = float, 2*double, 2*short, double, float --see perldoc -f pack for letter values) |
|
|
lrformat |
32 unsigned char (8 bits) |
|
Format of low rate (one second) data block (eg SSLdCCCC = 2*Short, long, double, 4*Char --see perldoc -f pack for letter values) |
|
|
|