Kinematic orbit determination of LEO satellites
This cookbook chapter describes exemplarily the steps for determining kinematic orbits of low-Earth orbit (LEO) satellites.
An example scenario for this task is available at https://ftp.tugraz.at/outgoing/ITSG/groops/scenario/scenarioLeoKinematicOrbit.zip. It includes GROOPS scripts and data for the example, but not the general GROOPS data and metadata found at https://ftp.tugraz.at/outgoing/ITSG/groops (data folder or zipped archive). The scenario generally represents what is described in this cookbook, but may slightly differ in certain settings.
Prepare GNSS satellite data
Most of the required metadata files are provided in GROOPS file formats at https://ftp.tugraz.at/outgoing/ITSG/groops. These files are regularly updated.
Data that has to be gathered from other sources comprises:
- Receiver observations: GNSS measurements converted from RINEX format (see RinexObservation2GnssReceiver)
- Precise orbits: precise orbits in CRF for orbit integration (see Sp3Format2Orbit)
- Precise clocks: precise clocks (see GnssClockRinex2InstrumentClock)
- Attitude: rotation from body frame to CRF (see SimulateStarCameraGnss or GnssOrbex2StarCamera)
- Signal biases: code (and phase) biases (see GnssSinexBias2SignalBias)
The example scenario includes a small set of this data.
The script 010groopsConvert.xml
can be used to convert these external formats into GROOPS formats.
Prepare LEO metadata
Metadata for several LEO missions is availabe at https://ftp.tugraz.at/outgoing/ITSG/groops/data/gnss/receiverLowEarthOrbiter.
If you want to process another mission, you can create the necessary files with these steps:
- For creating the GnssSatelliteInfo file use PlatformCreate. Note that the rotation from the satellite reference frame into the antenna reference frame, as well as the change of the center of mass due to fuel consumption, has to be considered here.
- The GnssReceiverDefinition file can be created by using GnssReceiverDefinitionCreate. Here you can specify which GNSS signal types the receiver observes.
- For creating the GnssAntennaDefinition file use GnssAntennaDefinitionCreate. Here you can define phase center offsets for the antenna.
-
For determining the elevation dependent accuracies the program GnssAntennaDefinitionCreate is used again.
- antenna: set to new
-
Set the patterns for code (type=
C**
) and phase (type=L**
). The standard deviation is expressed e.g. with values=0.001/cos(2*PI/180*zenith)
.
Prepare LEO data
The example scenario includes a small set of this data for the GRACE-FO mission.
The script 020groopsConvertGracefo.xml
can be used to convert these external formats into GROOPS formats.
The data preparation steps are:
- Conversion of the approximate orbit and star camera data into GROOPS format using a conversion program.
- If no attitude data is given the star camera data can be simulated by using SimulateStarCamera or SimulateStarCameraSentinel1.
- The GNSS observation data (given in RINEX format) can be converted with RinexObservation2GnssReceiver.
- Suitable programs to get daily data are InstrumentConcatenate and InstrumentSynchronize.
- For interpolating the orbit and star camera data to GNSS receiver epochs use InstrumentResample and provide the converted RINEX observation file as input for timeSeries:instrument.
- For synchronizing these data use InstrumentSynchronize.
Estimate kinematic orbits
The script 03groopsGnssProcessing.xml
in the example scenario
implements the following steps and settings.
These are the settings for GnssProcessing. If not otherwise stated use the default values.
As we have only one receiver the processing sampling can be directly taken from the observation file: timeSeries:instrument.
Add the appropriate transmitters:gnss (e.g. GPS) and provide the required files (from Prepare GNSS satellite data):
The following files (from Prepare LEO metadata and Prepare LEO data) and settings are needed in receiver:lowEarthOrbiter:
- inputfileStationInfo: The satellite info file.
- inputfileAntennaDefinition
- inputfileReceiverDefinition
- inputfileAccuracyDefinition
- inputfileObservations: The converted RINEX observation file.
- inputfileOrbit: The approximate orbit.
- inputfileStarCamera: The convered or simulated attitude.
-
useType: We recommend to explicitly specify the signals to be processed
and to make sure that at least transmitter code biases are provided for each of them, e.g.
C1CG
,C1WG
,C2WG
,L1*G
,L2*G
, ...).
Add the following parametrizations and define the outputfiles within you are interested in:
- ionosphereSTEC: add a constraint of sigmaSTEC=
40
-
ionosphereVTEC:
set mapR=
6371e3+450e3
to satellite height and ionosphere height mapH=50e3
above. - clocks: delete selectTransmitters
- signalBiases: provide inputfileSignalBiasTransmitter created with GnssSinexBias2SignalBias
- ambiguities: if precise transmitter phase biases are available you can delete estimateTransmitterPhaseBiases
-
codeBiases: delete selectTransmitters, set sigmaZeroMeanConstraint=
0
-
tecBiases: delete selectTransmitters, set sigmaZeroMeanConstraint=
0
- kinematicPositions
Add the following processingSteps:
- estimate: with maxIterationCount=
8
- resolveAmbiguities
-
estimate: with maxIterationCount=
2
- computeCovarianceMatrix
- writeResults