The use of the Consolidated Prediction Format at Zimmerwald Werner Gurtner Astronomical Institute University of Bern ILRS Workshop 3-7 October 2005 Eastbourne
CPF Format: Summary u List of geocentric earth-fixed positions (and velocities) of the satellites, in well-defined coordinate system (ITRS) u Should be suited for satellites, moon, interplanetary ranges (to transponders) u Interval suited for easy interpolation (polynomials, e.g., degree 9) u Auxiliary data in CPF file header u Computation of ranges and pointing directions by the stations (sample software provided) u Daily files with a few days worth of positions
Open issues u Do we need velocities? u Do we need outbound (and inbound) geocentric vectors or state vectors? u How do we handle general relativistic corrections? u For satellites up to GPS/Glonass geocentric earth-fixed state vectors alone are OK
Sources of CPF Files u NSGF u Starlette, Stella, Topex, Etalon-1/2, Lageos 1/2, Ajisai, GFO-1, (Envisat) u AIUB/CODE u GPS 35/36, Glonass 84/87/89/95 u HTSI u Beacon-C, Larets u UTX u ICESat
Handling of CPF Files (separately for each satellite) u CPF files are daily received by mail (a few days worth of data) u Add new records to / replace old records in merged file (Take only records in and around predicted pass intervals to keep merged file smaller, delete records older than 10 days) u Generate weekly pass list u Compute velocity for late epoch (Lagrange interpolation: Sr HERMITE) u Compute osculating elements for late epoch u Determine actual pass times (geometry, visibility, illumination)
Example: CPF file for GPS-35 From:AIUAS3::LASER 19-SEP :01:28.92 To:LASER Subj:GPS-35 DAILY CPFS CODE H1 CPF 1 AIUB H H
Prediction Generation u Interpolate satellite positions for reflection times in appropriate intervals during satellite pass u Interpolation: Sr HERMITE u Iteration u Compute u Ranges / flight times (subtract corner cube z positions for GPS, Glonass) u Pointing elements (azimuth, elevation) u Point-behind angle u Allow for u Tropospheric corrections u Time biases
Ranges and pointing angles t tbtb trtr trtr tbtb t rtbrtb r br Station Satellite t b-1 point – behind angle r = r tb + r br 2 * r bb r bb t t : transmit time t b : bounce time t r : receive time r tt r rr
Lagrange Polynomial Interpolation Ú Easy to program Ú Use n points to interpolate with polynomial of degree n-1 Ú No need for equally spaced points Ú Apply formula to center interval of given values only Ú First derivative of the formula gives velocities Ú Separate interpolation for x, y, z Ø Does not explicitly give polynomial coefficients Ø Not optimized for speed n=6
Lagrange Polynomial Interpolation Ú Easy to program Ú Use n points to interpolate with polynomial of degree n-1 Ú No need for equally spaced points Ú Apply formula to center interval of given values only Ú First derivative of the formula gives velocities Ú Separate interpolation for x, y, z Ø Does not explicitly give polynomial coefficients Ø Not optimized for speed n=6
Software: Interpolation Subroutine SUBROUTINE HERMITE(ITYP,X,Y,Z,NMAX,NVAL,XP,YP,ZP,IRCODE) Interpolation by a polynomial using NVAL out of NMAX given data points Input : ITYP : 1: use Lagrange polynomial of degree NVAL-1 2: use Hermite formula: Polynomial of degree 2*NVAL-1 NVAL : number of points to use for interpolation NMAX : number of given points in list X(I) : arguments of given values (I=1,...,NMAX) Y(I) : functional values Y=f(X) Z(I) : derivatives Z=f’(X) XP : interpolation argument Output: YP : interpolated value at XP ZP : first derivative of YP (ITYP=1 only) IRCODE: return code (0=ok, 2=error) The function selects the NVAL values to be used for interpolation such that the interpolated data point is located in the center interval. (Works best for NVAL = even number, of course).
Subroutine CPF_INTER ******************** INPUT: TT : EPOCH (TRANSMIT=FIRING TIME) MODE : 0: NO FLIGHT TIME APPLIED FLIGHT TIME = 2 * INSTANT RANGE AT EPOCH TT 1: OUTBOUND VECTOR (AZIMUTH, ELEVATION) FLIGHT TIME = 2 * INSTANT RANGE AT BOUNCE TIME 2: OUTBOUND AND INBOUND VECTOR FLIGHT TIME = OUTBOUND + INBOUND STAGEO() : GEOCENTRIC STATION COORDINATES XYZ STALON : STATION LONGITUDE (EAST > 0, RADIANS) STALAT : STATION LATITUDE (NORTH > 0, RADIANS) TTAB() : TABULATED EPOCHS OBJTABX(): TABULATED X-COORD. OF OBJECT (ITRF) OBJTABY(): TABULATED Y-COORD. OF OBJECT (ITRF) OBJTABZ(): TABULATED Z-COORD. OF OBJECT (ITRF) NTAB : NUMBER OF TABULATED EPOCHS/COORDINATES NINT : NUMBER OF TABULATED VALUES TO USE OUTPUT: RANGE : ONE-WAY RANGE (M) FLTIME : TWO-WAY FLIGHT TIME (SEC) AZIOUT : OUTBOUND AZIMUTH (DEG) ELEOUT : OUTBOUND ELEVATION (DEG) DIFAZI : POINT-BEHIND (AZIMUTH, ARC SECONDS) DIFELE : POINT-BEHIND (ELEVATION, ARC SECONDS) DIFFERENCE INBOUND MINUS OUTBOUND AT EPOCH TT
Flight time difference CPF-IRV (Lageos-2) NSGF
Flight time difference CPF-IRV (GPS-36) / NSGF (6 hrs)
Flight time difference IRV-CPF (ICESat)
Lageos-1: Observed - predicted
Lageos-2: Observed - predicted
Glonass-84: Observed - predicted
GPS-36: Observed - predicted
ICESat: Observed - predicted
Earth Tides not applied applied
Performance u GPSCODE< 2 ns (!) u GlonassCODE< 4 ns u AjisaiNSGF< 10 ns u BE-CNSGF< 200 ns (occ. up to 500 ns) u EnvisatNSGF< 20 ns (IRV ESOC up to500 ns!) u ICESatUTX< 200 ns (occ. up to 1000 ns) u LageosNSGF< 7 ns u LaretsHTSI< 100 ns (recently worse)
Conclusions u Relatively easy to implement u Core computation easy u Handling of CPF files: Merge daily mails or ftp-ed files, keep them limited in size u Significant improvement of prediction accuracy u Approach all prediction providers to generate CPF in parallel with IRV u Encourage stations to switch to CPF predictions (allow for both, CPF and IRV, in the transition phase)