Home Page     Data Center     Research Tools     Post Process Results     Climate Processing  
  Data Access     Data Download Interface     File Formats     Documentation  

Name Template: PUB/MISSION/level1a/opnGps/opnGps_YYYY.DDD.LLL.NN.TT_bnx

DDDDay of year
IIIIMission ID (CHAM, SACC, CO01-06, GPSM, etc)
LLLLEO number (1-6 for COSMIC)
MISSIONMission ID (eight characters or less--champ, champrt, sacc, sacctst, etc)
NNDump number since midnight
PUBBase directory for the pub hierarchy
TTThe number of the LEO antenna which received these data (1-N)

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:

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

pr0 1 double
CA range or range model

datalen 1 uint1
One byte Blackjack packet length--do not use!

ant 1 uint1
Antenna ID

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

L1 1 double
L1 phase

L2 1 double
L2 phase

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)

dfaz 1 float (32 bits)
Delta phase (open loop data--version=1,3 only )

p2mdl 1 double (64 bits)
P2 phase model (L2C open loop data--version 3 only)

dfaz2 1 float (32 bits)
L2 Delta phase (L2C open loop data--version 3 only )



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

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)