Class NeQuickModel

java.lang.Object
org.orekit.models.earth.ionosphere.AbstractIonosphericModel
org.orekit.models.earth.ionosphere.nequick.NeQuickModel
All Implemented Interfaces:
IonosphericModel, ParameterDriversProvider
Direct Known Subclasses:
NeQuickGalileo, NeQuickItu

public abstract class NeQuickModel extends AbstractIonosphericModel
NeQuick ionospheric delay model.
Since:
10.1
Author:
Bryan Cazabonne
See Also:
  • "European Union (2016). European GNSS (Galileo) Open Service-Ionospheric Correction Algorithm for Galileo Single Frequency Users. 1.2."
  • ITU-R P.531
  • Field Details

    • RE

      public static final double RE
      Mean Earth radius in m (Ref Table 2.5.2).
      See Also:
  • Constructor Details

    • NeQuickModel

      protected NeQuickModel(OneAxisEllipsoid earth, TimeScale utc)
      Simple constructor.
      Parameters:
      earth - earth body shape
      utc - UTC time scale
      Since:
      14.0
  • Method Details

    • getUtc

      public TimeScale getUtc()
      Get UTC time scale.
      Returns:
      UTC time scale
      Since:
      13.0
    • pathDelay

      public double pathDelay(Vector3D localP1, Vector3D localP2, TopocentricFrame baseFrame, AbsoluteDate receptionDate, double frequency, double[] parameters)
      Calculates the ionospheric path delay for the signal path from a ground station to an observing object (ground station or satellite).

      This method is intended to be used for orbit determination issues. In that respect, if the elevation is below 0° the path delay will be equal to zero.

      For individual use of the ionospheric model (i.e. not for orbit determination), another method signature can be implemented to compute the path delay for any elevation angle.

      Parameters:
      localP1 - position of path start point in baseFrame
      localP2 - position of path end point in baseFrame
      baseFrame - topocentric frame of point with lowest altitude between p1 and p2
      receptionDate - date at signal reception
      frequency - frequency of the signal in Hz
      parameters - ionospheric model parameters at state date
      Returns:
      the path delay due to the ionosphere in m
    • pathDelay

      public <T extends CalculusFieldElement<T>> T pathDelay(FieldVector3D<T> localP1, FieldVector3D<T> localP2, TopocentricFrame baseFrame, FieldAbsoluteDate<T> receptionDate, double frequency, T[] parameters)
      Calculates the ionospheric path delay for the signal path from a ground station to an observing object (ground station or satellite).

      This method is intended to be used for orbit determination issues. In that respect, if the elevation is below 0° the path delay will be equal to zero.

      For individual use of the ionospheric model (i.e. not for orbit determination), another method signature can be implemented to compute the path delay for any elevation angle.

      Type Parameters:
      T - type of the elements
      Parameters:
      localP1 - position of path start point in baseFrame
      localP2 - position of path end point in baseFrame
      baseFrame - topocentric frame of point with lowest altitude between p1 and p2
      receptionDate - date at signal reception
      frequency - frequency of the signal in Hz
      parameters - ionospheric model parameters at state date
      Returns:
      the path delay due to the ionosphere in m
    • getParametersDrivers

      public List<ParameterDriver> getParametersDrivers()
      Get the drivers for parameters.
      Returns:
      drivers for parameters
    • stec

      public double stec(AbsoluteDate date, GeodeticPoint recP, GeodeticPoint satP)
      This method allows the computation of the Slant Total Electron Content (STEC).
      Parameters:
      date - current date
      recP - receiver position
      satP - satellite position
      Returns:
      the STEC in TECUnits
    • stec

      public <T extends CalculusFieldElement<T>> T stec(FieldAbsoluteDate<T> date, FieldGeodeticPoint<T> recP, FieldGeodeticPoint<T> satP)
      This method allows the computation of the Slant Total Electron Content (STEC).
      Type Parameters:
      T - type of the elements
      Parameters:
      date - current date
      recP - receiver position
      satP - satellite position
      Returns:
      the STEC in TECUnits
    • computeMODIP

      protected abstract double computeMODIP(double latitude, double longitude)
      Compute modip for a location.
      Parameters:
      latitude - latitude
      longitude - longitude
      Returns:
      modip at specified location
      Since:
      13.0
    • computeMODIP

      protected abstract <T extends CalculusFieldElement<T>> T computeMODIP(T latitude, T longitude)
      Compute modip for a location.
      Type Parameters:
      T - type of the field elements
      Parameters:
      latitude - latitude
      longitude - longitude
      Returns:
      modip at specified location
      Since:
      13.0
    • computeFourierTimeSeries

      public FourierTimeSeries computeFourierTimeSeries(DateTimeComponents dateTime, double az)
      Compute Fourier time series.
      Parameters:
      dateTime - current date time components
      az - effective ionisation level
      Returns:
      Fourier time series
      Since:
      13.0.1
    • electronDensity

      public double electronDensity(DateTimeComponents dateTime, double az, double latitude, double longitude, double h)
      Computes the electron density at a given height.
      Parameters:
      dateTime - date
      az - effective ionization level
      latitude - latitude along the integration path
      longitude - longitude along the integration path
      h - height along the integration path in m
      Returns:
      electron density [m⁻³]
      Since:
      13.0
    • electronDensity

      public double electronDensity(FourierTimeSeries fourierTimeSeries, double latitude, double longitude, double h)
      Computes the electron density at a given height.
      Parameters:
      fourierTimeSeries - Fourier time series for foF2 and M(3000)F2 layer (flatten array)
      latitude - latitude along the integration path
      longitude - longitude along the integration path
      h - height along the integration path in m
      Returns:
      electron density [m⁻³]
      Since:
      13.0.1
    • computeFourierTimeSeries

      public <T extends CalculusFieldElement<T>> FieldFourierTimeSeries<T> computeFourierTimeSeries(DateTimeComponents dateTime, T az)
      Compute Fourier time series.
      Type Parameters:
      T - type of the elements
      Parameters:
      dateTime - current date time components
      az - effective ionisation level
      Returns:
      Fourier time series
      Since:
      13.0.1
    • electronDensity

      public <T extends CalculusFieldElement<T>> T electronDensity(DateTimeComponents dateTime, T az, T latitude, T longitude, T h)
      Computes the electron density at a given height.
      Type Parameters:
      T - type of the elements
      Parameters:
      dateTime - date
      az - effective ionization level
      latitude - latitude along the integration path
      longitude - longitude along the integration path
      h - height along the integration path in m
      Returns:
      electron density [m⁻³]
      Since:
      13.0 CalculusFieldElement, CalculusFieldElement, CalculusFieldElement)}
    • electronDensity

      public <T extends CalculusFieldElement<T>> T electronDensity(FieldFourierTimeSeries<T> fourierTimeSeries, T latitude, T longitude, T h)
      Computes the electron density at a given height.
      Type Parameters:
      T - type of the elements
      Parameters:
      fourierTimeSeries - Fourier time series for foF2 and M(3000)F2 layer (flatten array)
      latitude - latitude along the integration path
      longitude - longitude along the integration path
      h - height along the integration path in m
      Returns:
      electron density [m⁻³]
      Since:
      13.0.1
    • clipExp

      protected double clipExp(double power)
      A clipped exponential function.

      This function, describe in section F.2.12.2 of the reference document, is recommended for the computation of exponential values.

      Parameters:
      power - power for exponential function
      Returns:
      clipped exponential value
    • clipExp

      protected <T extends CalculusFieldElement<T>> T clipExp(T power)
      A clipped exponential function.

      This function, describe in section F.2.12.2 of the reference document, is recommended for the computation of exponential values.

      Type Parameters:
      T - type of the elements
      Parameters:
      power - power for exponential function
      Returns:
      clipped exponential value