JPL GNSS Products
Loading...
Searching...
No Matches
Time Dependent Parameters (tdp files)

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:

  1. time continuous seconds past Jan. 1, 2000 11:59:47 UTC. GCORE standard for time
  2. nominal_value a nominal value for the parameter
  3. value value at the given time
  4. sigma standard deviation for the parameter
  5. name An arbitrary sequence of letters [A-Z,a-z], digits[0-9], and "." without spaces.

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"