Class GNSSOrbitalElementsDriversProvider
- java.lang.Object
-
- org.orekit.propagation.analytical.gnss.data.GNSSOrbitalElementsDriversProvider
-
- All Implemented Interfaces:
ParameterDriversProvider
- Direct Known Subclasses:
FieldGnssOrbitalElements,GNSSOrbitalElements
public abstract class GNSSOrbitalElementsDriversProvider extends Object implements ParameterDriversProvider
This class manages the non-keplerian parameter drivers forGNSSOrbitalElementsandFieldGnssOrbitalElements.In both primitive double and field classes, only the non-Keplerian parameters are returned in the
getParametersDrivers()method, the Keplerian orbital parameters must be accessed independently. These groups ensure proper separate computation of state transition matrix and Jacobian matrix byGNSSPropagatorandFieldGnssPropagator.- Since:
- 13.0
- Author:
- Luc Maisonobe
-
-
Field Summary
Fields Modifier and Type Field Description static StringA_DOTName for change rate in semi-major axis parameter.static intA_DOT_INDEXIndex of change rate in semi-major axis parameter in the list returned bygetParametersDrivers().static intCIC_INDEXIndex of cosine on inclination in the list returned bygetParametersDrivers().static intCIS_INDEXIndex of sine on inclination in the list returned bygetParametersDrivers().static intCRC_INDEXIndex of cosine on radius in the list returned bygetParametersDrivers().static intCRS_INDEXIndex of sine on radius in the list returned bygetParametersDrivers().static intCUC_INDEXIndex of cosine on latitude argument in the list returned bygetParametersDrivers().static intCUS_INDEXIndex of sine on latitude argument in the list returned bygetParametersDrivers().static StringDELTA_N0Name for delta of satellite mean motion.static StringDELTA_N0_DOTName for change rate in Δn₀.static intDELTA_N0_DOT_INDEXIndex of change rate in Δn₀ in the list returned bygetParametersDrivers().static intDELTA_N0_INDEXIndex of delta of satellite mean motion in the list returned bygetParametersDrivers().static intI_DOT_INDEXIndex of inclination rate in the list returned bygetParametersDrivers().static StringINCLINATION_COSINEName for cosine of inclination harmonic parameter.static StringINCLINATION_RATEName for inclination rate parameter.static StringINCLINATION_SINEName for sine of inclination harmonic parameter.static StringLATITUDE_COSINEName for cosine of latitude argument harmonic parameter.static StringLATITUDE_SINEName for sine of latitude argument harmonic parameter.static StringLONGITUDE_RATEName for longitude rate parameter.static intOMEGA_DOT_INDEXIndex of longitude rate in the list returned bygetParametersDrivers().static StringRADIUS_COSINEName for cosine of orbit radius harmonic parameter.static StringRADIUS_SINEName for sine of orbit radius harmonic parameter.static intSIZESize of parameters array.static StringTIMEName for time parameter.static intTIME_INDEXIndex of time in the list returned bygetParametersDrivers().
-
Constructor Summary
Constructors Modifier Constructor Description protectedGNSSOrbitalElementsDriversProvider(double angularVelocity, int weeksInCycle, TimeScales timeScales, SatelliteSystem system)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidcopyNonKeplerian(GNSSOrbitalElementsDriversProvider original)Copy non-Keplerian elements.protected voidcopySelectionSettings(GNSSOrbitalElementsDriversProvider original)Copy drivers selection settings from another instance.protected static ParameterDrivercreateDriver(String name, int scalePower)Create parameter driver.doublegetADot()Get change rate in semi-major axis.ParameterDrivergetADotDriver()Get driver for the change rate in semi-major axis.doublegetAngularVelocity()Get the mean angular velocity of the Earth of the GNSS model.doublegetCic()Get amplitude of the cosine harmonic correction term to the angle of inclination.ParameterDrivergetCicDriver()Get the driver for the amplitude of the cosine harmonic correction term to the angle of inclination.doublegetCis()Get amplitude of the sine harmonic correction term to the angle of inclination.ParameterDrivergetCisDriver()Get the driver for the amplitude of the sine harmonic correction term to the angle of inclination.doublegetCrc()Get amplitude of the cosine harmonic correction term to the orbit radius.ParameterDrivergetCrcDriver()Get the driver for the amplitude of the cosine harmonic correction term to the orbit radius.doublegetCrs()Get amplitude of the sine harmonic correction term to the orbit radius.ParameterDrivergetCrsDriver()Get the driver for the amplitude of the sine harmonic correction term to the orbit radius.doublegetCuc()Get amplitude of the cosine harmonic correction term to the argument of latitude.ParameterDrivergetCucDriver()Get the driver for the amplitude of the cosine harmonic correction term to the argument of latitude.doublegetCus()Get amplitude of the sine harmonic correction term to the argument of latitude.ParameterDrivergetCusDriver()Get the driver for the amplitude of the sine harmonic correction term to the argument of latitude.doublegetCycleDuration()Get for the duration of the GNSS cycle in seconds.doublegetDeltaN0()Get the delta of satellite mean motion.doublegetDeltaN0Dot()Get the change rate in Δn₀.ParameterDrivergetDeltaN0DotDriver()Get the driver for change rate in Δn₀.ParameterDrivergetDeltaN0Driver()Get the driver for delta of satellite mean motion.doublegetIDot()Get rate of inclination angle.ParameterDrivergetIDotDriver()Get the driver for the rate of inclination angle.doublegetOmegaDot()Get rate of right ascension.ParameterDrivergetOmegaDotDriver()Get the driver for the rate of right ascension.List<ParameterDriver>getParametersDrivers()Get the drivers for parameters.intgetPRN()Get the PRN number of the satellite.SatelliteSystemgetSystem()Get satellite system.doublegetTime()Get reference time of the GNSS orbit as a duration from week start.ParameterDrivergetTimeDriver()Get the driver for reference time of the GNSS orbit as a duration from week start.TimeScalesgetTimeScales()Get known time scales.intgetWeek()Get the reference week of the orbit.intgetWeeksInCycle()Get for the duration of the GNSS cycle in weeks.booleanisCivilianMessage()Check if elements correspond to a civilian message.voidsetADot(double aDot)Set change rate in semi-major axis.voidsetCic(double cic)Set amplitude of the cosine harmonic correction term to the angle of inclination.voidsetCis(double cis)Set amplitude of the sine harmonic correction term to the angle of inclination.voidsetCrc(double crc)Set amplitude of the cosine harmonic correction term to the orbit radius.voidsetCrs(double crs)Set amplitude of the sine harmonic correction term to the orbit radius.voidsetCuc(double cuc)Set amplitude of the cosine harmonic correction term to the argument of latitude.voidsetCus(double cus)Set amplitude of the sine harmonic correction term to the argument of latitude.voidsetDeltaN0(double deltaN0)Set the delta of satellite mean motion.voidsetDeltaN0Dot(double deltaN0Dot)Set the change rate in Δn₀.protected abstract voidsetGnssDate(GNSSDate gnssDate)Set GNSS date.voidsetIDot(double iDot)Set the driver for the rate of inclination angle.voidsetOmegaDot(double dom)Set rate of right ascension.voidsetPRN(int number)Set the PRN number of the satellite.voidsetTime(double time)Set reference time of the GNSS orbit as a duration from week start.voidsetWeek(int week)Set the reference week of the orbit.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Field Detail
-
TIME
public static final String TIME
Name for time parameter.- See Also:
- Constant Field Values
-
A_DOT
public static final String A_DOT
Name for change rate in semi-major axis parameter.- Since:
- 14.0
- See Also:
- Constant Field Values
-
DELTA_N0
public static final String DELTA_N0
Name for delta of satellite mean motion.- Since:
- 14.0
- See Also:
- Constant Field Values
-
DELTA_N0_DOT
public static final String DELTA_N0_DOT
Name for change rate in Δn₀.- Since:
- 14.0
- See Also:
- Constant Field Values
-
INCLINATION_RATE
public static final String INCLINATION_RATE
Name for inclination rate parameter.- See Also:
- Constant Field Values
-
LONGITUDE_RATE
public static final String LONGITUDE_RATE
Name for longitude rate parameter.- See Also:
- Constant Field Values
-
LATITUDE_COSINE
public static final String LATITUDE_COSINE
Name for cosine of latitude argument harmonic parameter.- See Also:
- Constant Field Values
-
LATITUDE_SINE
public static final String LATITUDE_SINE
Name for sine of latitude argument harmonic parameter.- See Also:
- Constant Field Values
-
RADIUS_COSINE
public static final String RADIUS_COSINE
Name for cosine of orbit radius harmonic parameter.- See Also:
- Constant Field Values
-
RADIUS_SINE
public static final String RADIUS_SINE
Name for sine of orbit radius harmonic parameter.- See Also:
- Constant Field Values
-
INCLINATION_COSINE
public static final String INCLINATION_COSINE
Name for cosine of inclination harmonic parameter.- See Also:
- Constant Field Values
-
INCLINATION_SINE
public static final String INCLINATION_SINE
Name for sine of inclination harmonic parameter.- See Also:
- Constant Field Values
-
TIME_INDEX
public static final int TIME_INDEX
Index of time in the list returned bygetParametersDrivers().- See Also:
- Constant Field Values
-
A_DOT_INDEX
public static final int A_DOT_INDEX
Index of change rate in semi-major axis parameter in the list returned bygetParametersDrivers().- Since:
- 14.0
- See Also:
- Constant Field Values
-
DELTA_N0_INDEX
public static final int DELTA_N0_INDEX
Index of delta of satellite mean motion in the list returned bygetParametersDrivers().- Since:
- 14.0
- See Also:
- Constant Field Values
-
DELTA_N0_DOT_INDEX
public static final int DELTA_N0_DOT_INDEX
Index of change rate in Δn₀ in the list returned bygetParametersDrivers().- Since:
- 14.0
- See Also:
- Constant Field Values
-
I_DOT_INDEX
public static final int I_DOT_INDEX
Index of inclination rate in the list returned bygetParametersDrivers().- See Also:
- Constant Field Values
-
OMEGA_DOT_INDEX
public static final int OMEGA_DOT_INDEX
Index of longitude rate in the list returned bygetParametersDrivers().- See Also:
- Constant Field Values
-
CUC_INDEX
public static final int CUC_INDEX
Index of cosine on latitude argument in the list returned bygetParametersDrivers().- See Also:
- Constant Field Values
-
CUS_INDEX
public static final int CUS_INDEX
Index of sine on latitude argument in the list returned bygetParametersDrivers().- See Also:
- Constant Field Values
-
CRC_INDEX
public static final int CRC_INDEX
Index of cosine on radius in the list returned bygetParametersDrivers().- See Also:
- Constant Field Values
-
CRS_INDEX
public static final int CRS_INDEX
Index of sine on radius in the list returned bygetParametersDrivers().- See Also:
- Constant Field Values
-
CIC_INDEX
public static final int CIC_INDEX
Index of cosine on inclination in the list returned bygetParametersDrivers().- See Also:
- Constant Field Values
-
CIS_INDEX
public static final int CIS_INDEX
Index of sine on inclination in the list returned bygetParametersDrivers().- See Also:
- Constant Field Values
-
SIZE
public static final int SIZE
Size of parameters array.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
GNSSOrbitalElementsDriversProvider
protected GNSSOrbitalElementsDriversProvider(double angularVelocity, int weeksInCycle, TimeScales timeScales, SatelliteSystem system)Constructor.- Parameters:
angularVelocity- mean angular velocity of the Earth for the GNSS modelweeksInCycle- number of weeks in the GNSS cycletimeScales- known time scalessystem- satellite system to consider for interpreting week number (may be different from real system, for example in Rinex nav, weeks are always according to GPS)
-
-
Method Detail
-
copySelectionSettings
protected void copySelectionSettings(GNSSOrbitalElementsDriversProvider original)
Copy drivers selection settings from another instance.- Parameters:
original- original instance providing selection settings
-
setGnssDate
protected abstract void setGnssDate(GNSSDate gnssDate)
Set GNSS date.- Parameters:
gnssDate- GNSS date
-
createDriver
protected static ParameterDriver createDriver(String name, int scalePower)
Create parameter driver.- Parameters:
name- name of the driverscalePower- power of two of the scale parameter- Returns:
- build driver
-
getSystem
public SatelliteSystem getSystem()
Get satellite system.- Returns:
- satellite system
-
getTimeScales
public TimeScales getTimeScales()
Get known time scales.- Returns:
- known time scales
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.Only the 12 non-Keplerian evolution parameters are listed here, i.e.
getTimeDriver()(at indexTIME_INDEX),getADotDriver()(at indexA_DOT_INDEX),getDeltaN0Driver()(at indexDELTA_N0_INDEX),getDeltaN0DotDriver()(at indexDELTA_N0_DOT_INDEX),getIDotDriver()(at indexI_DOT_INDEX),getOmegaDotDriver()(at indexOMEGA_DOT_INDEX),getCucDriver()(at indexCUC_INDEX),getCusDriver()(at indexCUS_INDEX),getCrcDriver()(at indexCRC_INDEX),getCrsDriver()(at indexCRS_INDEX),getCicDriver()(at indexCIC_INDEX), andgetCisDriver()(at indexCIS_INDEX)The Keplerian orbital parameters drivers are not included.
- Specified by:
getParametersDriversin interfaceParameterDriversProvider- Returns:
- drivers for parameters
-
copyNonKeplerian
protected void copyNonKeplerian(GNSSOrbitalElementsDriversProvider original)
Copy non-Keplerian elements.- Parameters:
original- original instance to copy from- Since:
- 14.0
-
getAngularVelocity
public double getAngularVelocity()
Get the mean angular velocity of the Earth of the GNSS model.- Returns:
- mean angular velocity of the Earth of the GNSS model
-
getWeeksInCycle
public int getWeeksInCycle()
Get for the duration of the GNSS cycle in weeks.- Returns:
- the duration of the GNSS cycle in weeks
-
getCycleDuration
public double getCycleDuration()
Get for the duration of the GNSS cycle in seconds.- Returns:
- the duration of the GNSS cycle in seconds
-
getPRN
public int getPRN()
Get the PRN number of the satellite.- Returns:
- PRN number of the satellite
-
setPRN
public void setPRN(int number)
Set the PRN number of the satellite.- Parameters:
number- the prn number ot set
-
getWeek
public int getWeek()
Get the reference week of the orbit.- Returns:
- reference week of the orbit
-
setWeek
public void setWeek(int week)
Set the reference week of the orbit.- Parameters:
week- the week to set
-
getTimeDriver
public ParameterDriver getTimeDriver()
Get the driver for reference time of the GNSS orbit as a duration from week start.- Returns:
- driver for the reference time of the GNSS orbit (s)
-
getTime
public double getTime()
Get reference time of the GNSS orbit as a duration from week start.- Returns:
- reference time of the GNSS orbit (s)
-
setTime
public void setTime(double time)
Set reference time of the GNSS orbit as a duration from week start.- Parameters:
time- reference time of the GNSS orbit (s)
-
isCivilianMessage
public boolean isCivilianMessage()
Check if elements correspond to a civilian message.- Returns:
- true if elements correspond to a civilian message
- Since:
- 14.0
-
getADotDriver
public ParameterDriver getADotDriver()
Get driver for the change rate in semi-major axis.- Returns:
- driver for the change rate in semi-major axis
- Since:
- 14.0
-
getADot
public double getADot()
Get change rate in semi-major axis.- Returns:
- the change rate in semi-major axis
- Since:
- 14.0
-
setADot
public void setADot(double aDot)
Set change rate in semi-major axis.- Parameters:
aDot- change rate in semi-major axis- Since:
- 14.0
-
getDeltaN0Driver
public ParameterDriver getDeltaN0Driver()
Get the driver for delta of satellite mean motion.- Returns:
- driver for delta of satellite mean motion
- Since:
- 14.0
-
getDeltaN0
public double getDeltaN0()
Get the delta of satellite mean motion.- Returns:
- the delta of satellite mean motion
- Since:
- 14.0
-
setDeltaN0
public void setDeltaN0(double deltaN0)
Set the delta of satellite mean motion.- Parameters:
deltaN0- the value to set- Since:
- 14.0
-
getDeltaN0DotDriver
public ParameterDriver getDeltaN0DotDriver()
Get the driver for change rate in Δn₀.- Returns:
- driver for change rate in Δn₀
- Since:
- 14.0
-
getDeltaN0Dot
public double getDeltaN0Dot()
Get the change rate in Δn₀.- Returns:
- change rate in Δn₀
- Since:
- 14.0
-
setDeltaN0Dot
public void setDeltaN0Dot(double deltaN0Dot)
Set the change rate in Δn₀.- Parameters:
deltaN0Dot- change rate in Δn₀- Since:
- 14.0
-
getIDotDriver
public ParameterDriver getIDotDriver()
Get the driver for the rate of inclination angle.- Returns:
- driver for the rate of inclination angle (rad/s)
-
getIDot
public double getIDot()
Get rate of inclination angle.- Returns:
- rate of inclination angle (rad/s)
-
setIDot
public void setIDot(double iDot)
Set the driver for the rate of inclination angle.- Parameters:
iDot- rate of inclination angle (rad/s)
-
getOmegaDotDriver
public ParameterDriver getOmegaDotDriver()
Get the driver for the rate of right ascension.- Returns:
- driver for the rate of right ascension (rad/s)
-
getOmegaDot
public double getOmegaDot()
Get rate of right ascension.- Returns:
- rate of right ascension (rad/s)
-
setOmegaDot
public void setOmegaDot(double dom)
Set rate of right ascension.- Parameters:
dom- rate of right ascension (rad/s)
-
getCucDriver
public ParameterDriver getCucDriver()
Get the driver for the amplitude of the cosine harmonic correction term to the argument of latitude.- Returns:
- driver for the amplitude of the cosine harmonic correction term to the argument of latitude (rad)
-
getCuc
public double getCuc()
Get amplitude of the cosine harmonic correction term to the argument of latitude.- Returns:
- amplitude of the cosine harmonic correction term to the argument of latitude (rad)
-
setCuc
public void setCuc(double cuc)
Set amplitude of the cosine harmonic correction term to the argument of latitude.- Parameters:
cuc- amplitude of the cosine harmonic correction term to the argument of latitude (rad)
-
getCusDriver
public ParameterDriver getCusDriver()
Get the driver for the amplitude of the sine harmonic correction term to the argument of latitude.- Returns:
- driver for the amplitude of the sine harmonic correction term to the argument of latitude (rad)
-
getCus
public double getCus()
Get amplitude of the sine harmonic correction term to the argument of latitude.- Returns:
- amplitude of the sine harmonic correction term to the argument of latitude (rad)
-
setCus
public void setCus(double cus)
Set amplitude of the sine harmonic correction term to the argument of latitude.- Parameters:
cus- amplitude of the sine harmonic correction term to the argument of latitude (rad)
-
getCrcDriver
public ParameterDriver getCrcDriver()
Get the driver for the amplitude of the cosine harmonic correction term to the orbit radius.- Returns:
- driver for the amplitude of the cosine harmonic correction term to the orbit radius (m)
-
getCrc
public double getCrc()
Get amplitude of the cosine harmonic correction term to the orbit radius.- Returns:
- amplitude of the cosine harmonic correction term to the orbit radius (m)
-
setCrc
public void setCrc(double crc)
Set amplitude of the cosine harmonic correction term to the orbit radius.- Parameters:
crc- amplitude of the cosine harmonic correction term to the orbit radius (m)
-
getCrsDriver
public ParameterDriver getCrsDriver()
Get the driver for the amplitude of the sine harmonic correction term to the orbit radius.- Returns:
- driver for the amplitude of the sine harmonic correction term to the orbit radius (m)
-
getCrs
public double getCrs()
Get amplitude of the sine harmonic correction term to the orbit radius.- Returns:
- amplitude of the sine harmonic correction term to the orbit radius (m)
-
setCrs
public void setCrs(double crs)
Set amplitude of the sine harmonic correction term to the orbit radius.- Parameters:
crs- amplitude of the sine harmonic correction term to the orbit radius (m)
-
getCicDriver
public ParameterDriver getCicDriver()
Get the driver for the amplitude of the cosine harmonic correction term to the angle of inclination.- Returns:
- driver for the amplitude of the cosine harmonic correction term to the angle of inclination (rad)
-
getCic
public double getCic()
Get amplitude of the cosine harmonic correction term to the angle of inclination.- Returns:
- amplitude of the cosine harmonic correction term to the angle of inclination (rad)
-
setCic
public void setCic(double cic)
Set amplitude of the cosine harmonic correction term to the angle of inclination.- Parameters:
cic- amplitude of the cosine harmonic correction term to the angle of inclination (rad)
-
getCisDriver
public ParameterDriver getCisDriver()
Get the driver for the amplitude of the sine harmonic correction term to the angle of inclination.- Returns:
- driver for the amplitude of the sine harmonic correction term to the angle of inclination (rad)
-
getCis
public double getCis()
Get amplitude of the sine harmonic correction term to the angle of inclination.- Returns:
- amplitude of the sine harmonic correction term to the angle of inclination (rad)
-
setCis
public void setCis(double cis)
Set amplitude of the sine harmonic correction term to the angle of inclination.- Parameters:
cis- amplitude of the sine harmonic correction term to the angle of inclination (rad)
-
-