Class GNSSOrbitalElementsFactory<O extends GNSSOrbitalElements<O>>
java.lang.Object
org.orekit.orbits.AbstractOrbitalParameterFactory<O>
org.orekit.propagation.analytical.gnss.data.GNSSOrbitalElementsFactory<O>
- Type Parameters:
O- type of the orbital elements
- All Implemented Interfaces:
Cloneable,OrbitalParameterFactory<O>
- Direct Known Subclasses:
AbstractNavigationMessageFactory,BeidouAlmanacFactory,GalileoAlmanacFactory,GPSAlmanacFactory,NavICAlmanacFactory,QZSSAlmanacFactory
public abstract class GNSSOrbitalElementsFactory<O extends GNSSOrbitalElements<O>>
extends AbstractOrbitalParameterFactory<O>
Factory for
AbstractNavigationMessage.- Since:
- 14.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringName for argument of periapsis parameter.static final StringName for eccentricity parameter.static final StringPrefix for frozen frame name.static final StringName for inclination at reference time parameter.static final StringName for mean anomaly at reference time parameter.static final StringName for longitude of ascending node at weekly epoch parameter.static final StringName for semi major axis parameter. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedGNSSOrbitalElementsFactory(double angularVelocity, TimeScales timeScales, SatelliteSystem system, String type, Frame inertial, Frame bodyFixed, double mu) Simple constructor. -
Method Summary
Modifier and TypeMethodDescriptionstatic ParameterDriversListBuild drivers for orbital elements.protected KeplerianOrbitCreate orbit from Keplerian elements drivers.Get driver for change rate in semi-major axis.Get driver for SV zero-th order clock correction.Get driver for SV first order clock correction.Get driver for SV second order clock correction.doubleGet the mean angular velocity of the Earth for the GNSS model.Get the body fixed frame.Get driver for amplitude of the cosine harmonic correction term to the angle of inclination.Get driver for amplitude of the sine harmonic correction term to the angle of inclination.Get driver for amplitude of the cosine harmonic correction term to the orbit radius.Get driver for amplitude of the sine harmonic correction term to the orbit radius.Get driver for amplitude of the cosine harmonic correction term to the argument of latitude.Get driver for amplitude of the sine harmonic correction term to the argument of latitude.Get driver for the change rate in Δn₀.Get driver for the delta of satellite mean motion.Get driver for rate of inclination angle.Get the reference inertial frame.Get the Jacobian of the Cartesian coordinates with respect to the orbital parameters.Get the drivers for additional drivers for non-Keplerian motion.Get driver for rate of right ascension.intgetPrn()Get the PRN number of the satellite.Get the satellite system to use for interpreting week number.doublegetTgd()Get the estimated group delay differential TGD for L1-L2 correction.Get driver for reference time of the GNSS orbit as a duration from week start.Get the time of clock.Get the time of ephemeris.Get known time scales.getType()Get the message type.static <O extends GNSSOrbitalElements<O>>
RealMatrixjacobianWrtParameters(O elements, Frame eci, Frame ecef) Get the Jacobian of the Cartesian coordinates with respect to the orbital elements.voidsetDate(AbsoluteDate date) Set the date of the orbital parameters.voidsetPrn(int prn) Set the PRN number of the satellite.voidsetTgd(double tgd) Set the estimated group delay differential TGD for L1-L2 correction.voidsetTimeOfClock(GNSSDate timeOfClock) Set the time of clock.voidsetTimeOfEphemeris(GNSSDate timeOfEphemeris) Set the time of ephemeris.protected double[]Convert an input into an array suitable to feed orbital parameters drivers.Methods inherited from class org.orekit.orbits.AbstractOrbitalParameterFactory
clone, getDate, getFrame, getJacobianWrtCartesian, getMu, getOrbitalParametersDrivers, getOrbitType, getPositionAngleType, reset, setFrame, setMu, setPositionAngleTypeMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.orbits.OrbitalParameterFactory
createFromDrivers
-
Field Details
-
SEMI_MAJOR_AXIS
Name for semi major axis parameter.- See Also:
-
ECCENTRICITY
Name for eccentricity parameter.- See Also:
-
INCLINATION
Name for inclination at reference time parameter.- See Also:
-
ARGUMENT_OF_PERIAPSIS
Name for argument of periapsis parameter.- See Also:
-
NODE_LONGITUDE
Name for longitude of ascending node at weekly epoch parameter.- See Also:
-
MEAN_ANOMALY
Name for mean anomaly at reference time parameter.- See Also:
-
FROZEN
Prefix for frozen frame name.- See Also:
-
-
Constructor Details
-
GNSSOrbitalElementsFactory
protected GNSSOrbitalElementsFactory(double angularVelocity, TimeScales timeScales, SatelliteSystem system, String type, Frame inertial, Frame bodyFixed, double mu) Simple constructor.- Parameters:
angularVelocity- mean angular velocity of the Earth for the GNSS modeltimeScales- known time scalessystem- satellite system to use for interpreting week numbertype- message type (null if not a navigation message)inertial- reference inertial framebodyFixed- body fixed frame (will be frozen atdateto build the orbital elementsmu- central attraction coefficient (m³/s²)
-
-
Method Details
-
getInertial
Get the reference inertial frame.- Returns:
- reference inertial frame
-
getBodyFixed
Get the body fixed frame.- Returns:
- body fixed frame
-
getAngularVelocity
public double getAngularVelocity()Get the mean angular velocity of the Earth for the GNSS model.- Returns:
- mean angular velocity of the Earth for the GNSS model
-
getTimeScales
Get known time scales.- Returns:
- known time scales
-
getSystem
Get the satellite system to use for interpreting week number.- Returns:
- satellite system to use for interpreting week number
-
getType
Get the message type.- Returns:
- Get the message type (null if not a navigation message)
-
getPrn
public int getPrn()Get the PRN number of the satellite.- Returns:
- PRN number of the satellite
-
setPrn
public void setPrn(int prn) Set the PRN number of the satellite.- Parameters:
prn- PRN number of the satellite
-
setDate
Set the date of the orbital parameters.- Specified by:
setDatein interfaceOrbitalParameterFactory<O extends GNSSOrbitalElements<O>>- Overrides:
setDatein classAbstractOrbitalParameterFactory<O extends GNSSOrbitalElements<O>>- Parameters:
date- date of the orbital parameters
-
setTimeOfEphemeris
Set the time of ephemeris.If time of clock was not already set, it will be set to the same value as time of ephemeris as a side effect
- Parameters:
timeOfEphemeris- time of ephemeris
-
getTimeOfEphemeris
Get the time of ephemeris.- Returns:
- time of ephemeris
-
getTimeDriver
Get driver for reference time of the GNSS orbit as a duration from week start.- Returns:
- driver for reference time of the GNSS orbit (s)
- See Also:
-
getADotDriver
Get driver for change rate in semi-major axis.- Returns:
- driver for the change rate in semi-major axis
-
getDeltaN0Driver
Get driver for the delta of satellite mean motion.- Returns:
- driver for the delta of satellite mean motion
-
getDeltaN0DotDriver
Get driver for the change rate in Δn₀.- Returns:
- driver for change rate in Δn₀
-
getIDotDriver
Get driver for rate of inclination angle.- Returns:
- driver for rate of inclination angle (rad/s)
-
getOmegaDotDriver
Get driver for rate of right ascension.- Returns:
- driver for rate of right ascension (rad/s)
-
getCucDriver
Get driver for amplitude of the cosine harmonic correction term to the argument of latitude.- Returns:
- driver for amplitude of the cosine harmonic correction term to the argument of latitude (rad)
-
getCusDriver
Get driver for amplitude of the sine harmonic correction term to the argument of latitude.- Returns:
- driver for amplitude of the sine harmonic correction term to the argument of latitude (rad)
-
getCrcDriver
Get driver for amplitude of the cosine harmonic correction term to the orbit radius.- Returns:
- driver for amplitude of the cosine harmonic correction term to the orbit radius (m)
-
getCrsDriver
Get driver for amplitude of the sine harmonic correction term to the orbit radius.- Returns:
- driver for amplitude of the sine harmonic correction term to the orbit radius (m)
-
getCicDriver
Get driver for amplitude of the cosine harmonic correction term to the angle of inclination.- Returns:
- driver for amplitude of the cosine harmonic correction term to the angle of inclination (rad)
-
getCisDriver
Get driver for amplitude of the sine harmonic correction term to the angle of inclination.- Returns:
- driver for amplitude of the sine harmonic correction term to the angle of inclination (rad)
-
getAf0Driver
Get driver for SV zero-th order clock correction.- Returns:
- driver for SV zero-th order clock correction (s)
-
getAf1Driver
Get driver for SV first order clock correction.- Returns:
- driver for SV first order clock correction (s/s)
-
getAf2Driver
Get driver for SV second order clock correction.- Returns:
- driver for SV second order clock correction (s/s²)
-
setTimeOfClock
Set the time of clock.If time of ephemeris was not already set, it will be set to the same value as time of clock as a side effect
- Parameters:
timeOfClock- time of clock
-
getTimeOfClock
Get the time of clock.- Returns:
- time of clock
-
getNonKeplerianParametersDrivers
Get the drivers for additional drivers for non-Keplerian motion.- Specified by:
getNonKeplerianParametersDriversin interfaceOrbitalParameterFactory<O extends GNSSOrbitalElements<O>>- Overrides:
getNonKeplerianParametersDriversin classAbstractOrbitalParameterFactory<O extends GNSSOrbitalElements<O>>- Returns:
- drivers for non-Keplerian motion
-
getTgd
public double getTgd()Get the estimated group delay differential TGD for L1-L2 correction.- Returns:
- the estimated group delay differential TGD for L1-L2 correction (s)
-
setTgd
public void setTgd(double tgd) Set the estimated group delay differential TGD for L1-L2 correction.- Parameters:
tgd- estimated group delay differential TGD for L1-L2 correction (s)
-
toArray
Convert an input into an array suitable to feed orbital parameters drivers.- Specified by:
toArrayin classAbstractOrbitalParameterFactory<O extends GNSSOrbitalElements<O>>- Parameters:
orbit- orbit to convert- Returns:
- arrays corresponding to orbit
-
getJacobianWrtParameters
Get the Jacobian of the Cartesian coordinates with respect to the orbital parameters.The Jacobian is evaluated at the
current drivers values, at thefactory dateand in thefactory frame.- Returns:
- jacobian matrix dC/dB, where C are the Cartesian coordinates and B the orbital parameters this factory is built upon
-
jacobianWrtParameters
public static <O extends GNSSOrbitalElements<O>> RealMatrix jacobianWrtParameters(O elements, Frame eci, Frame ecef) Get the Jacobian of the Cartesian coordinates with respect to the orbital elements.The GNSS orbital elements are related to the Cartesian coordinates by the GNSS propagation model itself, which has no closed-form derivatives, so the Jacobian is obtained by automatic differentiation: the six Keplerian-like orbital elements are turned into
Gradientvariables and the elements are evaluated at their own epoch. The non-Keplerian elements are held constant.- Type Parameters:
O- type of the GNSS orbital elements- Parameters:
elements- GNSS orbital elements the Jacobian is computed with respect toeci- Earth Centered Inertial frame the Cartesian coordinates are expressed inecef- Earth Centered Earth Fixed frame the node longitude refers to- Returns:
- jacobian matrix dC/dB, at the elements epoch
-
createOrbitFromDrivers
Create orbit from Keplerian elements drivers.- Returns:
- created orbit
-
buildOrbitalDrivers
Build drivers for orbital elements.- Returns:
- drivers for orbital elements only
-