public class SP3 extends Object implements EphemerisFile<SP3Coordinate,SP3Segment>
EphemerisFile.EphemerisSegment<C extends TimeStampedPVCoordinates>, EphemerisFile.SatelliteEphemeris<C extends TimeStampedPVCoordinates,S extends EphemerisFile.EphemerisSegment<C>>
Constructor and Description |
---|
SP3(double mu,
int interpolationSamples,
Frame frame)
Create a new SP3 file object.
|
Modifier and Type | Method and Description |
---|---|
void |
addSatellite(String satId)
Add a new satellite with a given identifier to the list of
stored satellites.
|
boolean |
containsSatellite(String satId)
Tests whether a satellite with the given id is contained in this orbit
file.
|
SP3Ephemeris |
getEphemeris(int index)
Get an ephemeris.
|
SP3Ephemeris |
getEphemeris(String satId)
Get an ephemeris.
|
SP3Header |
getHeader()
Get the header.
|
int |
getSatelliteCount()
Get the number of satellites contained in this orbit file.
|
Map<String,SP3Ephemeris> |
getSatellites()
Get the loaded ephemeris for each satellite in the file.
|
static SP3 |
splice(Collection<SP3> sp3)
Splice several SP3 files together.
|
void |
validate(boolean parsing,
String fileName)
Check file is valid.
|
public SP3(double mu, int interpolationSamples, Frame frame)
mu
- is the standard gravitational parameter in m³ / s².interpolationSamples
- number of samples to use in interpolation.frame
- reference framepublic void validate(boolean parsing, String fileName) throws OrekitException
parsing
- if true, we are parsing an existing file, and are more lenient
in order to accept some common errors (like between 86 and 99 satellites
in SP3a, SP3b or SP3c files)fileName
- file name to generate the error messageOrekitException
- if file is not validpublic SP3Header getHeader()
public static SP3 splice(Collection<SP3> sp3)
Splicing SP3 files is intended to be used when continuous computation
covering more than one file is needed. The files should all have the exact same
metadata: type
, time system
,
coordinate system
, except for satellite accuracy
which can be different from one file to the next one, and some satellites may
be missing in some files… Once sorted (which is done internally), if the gap between
segments from two file is at most epoch interval
,
then the segments are merged as one segment, otherwise the segments are kept separated.
The spliced file only contains the satellites that were present in all files. Satellites present in some files and absent from other files are silently dropped.
Depending on producer, successive SP3 files either have a gap between the last entry of one file and the first entry of the next file (for example files with a 5 minutes epoch interval may end at 23:55 and the next file start at 00:00), or both files have one point exactly at the splicing date (i.e. 24:00 one day and 00:00 next day). In the later case, the last point of the early file is dropped and the first point of the late file takes precedence, hence only one point remains in the spliced file ; this design choice is made to enforce continuity and regular interpolation.
sp3
- SP3 files to mergepublic void addSatellite(String satId)
satId
- the satellite identifierpublic Map<String,SP3Ephemeris> getSatellites()
EphemerisFile
getSatellites
in interface EphemerisFile<SP3Coordinate,SP3Segment>
public SP3Ephemeris getEphemeris(int index)
index
- index of the satellitepublic SP3Ephemeris getEphemeris(String satId)
satId
- satellite identifierpublic int getSatelliteCount()
public boolean containsSatellite(String satId)
satId
- the satellite idtrue
if the satellite is contained in the file,
false
otherwiseCopyright © 2002-2023 CS GROUP. All rights reserved.