JPL GNSS Products
|
This file contains descriptions of two possible tdp file formats, and a binary record format used in shared memory (sometimes directly converted into packets for network transport): (1) ASCII file - suggested suffix .tdp[.gz] (2) Binary file - suggested suffix .tdpb[.gz] (3) Binary record Both file formats (1) and (2) may be gzip compressed.
Time Dependent Parameter files describe a time series of values. The file must be time ordered (earliest times first).
TimeDepParmsReader is C++ reader and interpolator - see it for details on interpolation and extrapolation options.
Note for GCORE parameters the units follow gcore convention:
Internal units are MKS (meter, kilogram, second), angles are in radians. For example: YawRate values are in radians/second. If you are uncertain of the units, see TreeFormat, which will have the units clearly specified. For instance .Clk.Bias, you will see:
Clk Model On | Off # turns on/off model and computation of partials, default Off Epoch <float> # GPS time (continuous seconds past 1-JAN-2000 11:59:47.0000 UTC), default 0 Bias <float> # meters, default 0
For GCORE parameter naming convention see ParameterNames. GCORE/bin/goaTdp2rtg.py provides a limited coversion utility for GIPSY II to GCORE.
For a description of Source.ID record contents, see SourceID.
(1) ASCII file This file consists of a series of lines with space delimited fields. Each line has the following fields:
time nominal_value value sigma(flag) name
where:
Comment lines may be entered by having the first non-whitespace character be a "#". Blank lines, consisting only of whitespace, are ignored.
Example: GPS clocks
375958800.0000 0.00000000000000 -110937.208992753 0.0368 .Satellite.GPS23.Clk.Bias 375958800.0000 0.00000000000000 -29353.6260510073 0.03289 .Satellite.GPS55.Clk.Bias 375958800.0000 0.00000000000000 -56334.9377148186 0.02548 .Satellite.GPS45.Clk.Bias 375958800.0000 0.00000000000000 -6204.53013079112 0.03307 .Satellite.GPS40.Clk.Bias 375958800.0000 0.00000000000000 -62620.3640976035 0.0237 .Satellite.GPS46.Clk.Bias 375958800.0000 0.00000000000000 -63071.7717481915 0.02545 .Satellite.GPS59.Clk.Bias 375958800.0000 0.00000000000000 -63439.1644293312 0.03634 .Satellite.GPS56.Clk.Bias ...
(2) Binary file Binary tdp files consist of multiple record types, each identified by a preceding char. If the first column of any record description below is a numeric value, it is the size of the corresponding entry in bytes.
Protocol record - once at the top of each file
char 'p' - record ID for file protocol 10 a hex coded string that evaluates to "JPLRTGXTDP"
Name record - one per parameter name
char 'n' - record ID for names to integer mapping uint64_t "length" of the parameter name string length parameter name string
Epoch record - one per epoch
char 't' - record ID for tdp epochs int64_t integer part of the epoch's TimePrecise representation double double part of the epoch's TimePrecise representation
Version record - one per tdp record
char 'v' - record ID for version of this record
uint8_t the version number
Record - one per tdp value per epoch
char 'r' - record ID for tdp record values
double nominal value double estimated value double sigma uint64_t number (n) of this parameter name - matches the nth 'n' record
(3) Binary record
Binary TDP records take the following form, with all variables in native Linux (little-endian) formatting. As above, for GCORE the values and sigmas are in physical MKS units (angles in radians) 8 bytes: uint64_t = total record size = 64 + <name_size> 8 bytes: uint64_t = version = 1 8 bytes: int64_t = integer part of ttag 8 bytes: double = fractional part of ttag n.b. doesn’t appear separately in dump 8 bytes: double = nominal value 8 bytes: double = estimated value 8 bytes: double = sigma 8 bytes: uint64_t = <name_size> = size of <parameter_name> string <name_size> bytes: actual <parameter_name> string for example, the total size = 84 + <sat_name_size> bytes for satellite clock parameters of the form <parameter_name> = ".Satellite.<sat_name>.Clk.Bias"