Class SP3
- java.lang.Object
-
- org.orekit.files.sp3.SP3
-
- All Implemented Interfaces:
EphemerisFile<SP3Coordinate,SP3Segment>
public class SP3 extends Object implements EphemerisFile<SP3Coordinate,SP3Segment>
Represents a parsed SP3 orbit file.- Author:
- Thomas Neidhart, Evan Ward
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.orekit.files.general.EphemerisFile
EphemerisFile.EphemerisSegment<C extends TimeStampedPVCoordinates>, EphemerisFile.SatelliteEphemeris<C extends TimeStampedPVCoordinates,S extends EphemerisFile.EphemerisSegment<C>>
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addSatellite(String satId)
Add a new satellite with a given identifier to the list of stored satellites.static SP3
changeFrame(SP3 original, Frame newFrame)
Change the frame of an SP3 file.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.
-
-
-
Constructor Detail
-
SP3
public SP3(double mu, int interpolationSamples, Frame frame)
Create a new SP3 file object.- Parameters:
mu
- is the standard gravitational parameter in m³ / s².interpolationSamples
- number of samples to use in interpolation.frame
- reference frame
-
SP3
public SP3(SP3Header header, double mu, int interpolationSamples, Frame frame)
Create a new SP3 file object.- Parameters:
header
- headermu
- is the standard gravitational parameter in m³ / s².interpolationSamples
- number of samples to use in interpolation.frame
- reference frame- Since:
- 12.1
-
-
Method Detail
-
validate
public void validate(boolean parsing, String fileName) throws OrekitException
Check file is valid.- Parameters:
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 message- Throws:
OrekitException
- if file is not valid
-
getHeader
public SP3Header getHeader()
Get the header.- Returns:
- header
- Since:
- 12.0
-
splice
public static SP3 splice(Collection<SP3> sp3)
Splice several SP3 files together.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 mostepoch 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.
- Parameters:
sp3
- SP3 files to merge- Returns:
- merged SP3
- Since:
- 12.0
-
changeFrame
public static SP3 changeFrame(SP3 original, Frame newFrame)
Change the frame of an SP3 file.- Parameters:
original
- original SP3 filenewFrame
- frame to use for the changed SP3 file- Returns:
- changed SP3 file
- Since:
- 12.1
-
addSatellite
public void addSatellite(String satId)
Add a new satellite with a given identifier to the list of stored satellites.- Parameters:
satId
- the satellite identifier
-
getSatellites
public Map<String,SP3Ephemeris> getSatellites()
Description copied from interface:EphemerisFile
Get the loaded ephemeris for each satellite in the file.- Specified by:
getSatellites
in interfaceEphemerisFile<SP3Coordinate,SP3Segment>
- Returns:
- a map from the satellite's ID to the information about that satellite contained in the file.
-
getEphemeris
public SP3Ephemeris getEphemeris(int index)
Get an ephemeris.- Parameters:
index
- index of the satellite- Returns:
- satellite ephemeris
- Since:
- 12.0
-
getEphemeris
public SP3Ephemeris getEphemeris(String satId)
Get an ephemeris.- Parameters:
satId
- satellite identifier- Returns:
- satellite ephemeris, or null if not found
- Since:
- 12.0
-
getSatelliteCount
public int getSatelliteCount()
Get the number of satellites contained in this orbit file.- Returns:
- the number of satellites
-
containsSatellite
public boolean containsSatellite(String satId)
Tests whether a satellite with the given id is contained in this orbit file.- Parameters:
satId
- the satellite id- Returns:
true
if the satellite is contained in the file,false
otherwise
-
-