Class NslSun


public class NslSun extends Object
Analytical representation of the Nominal Sun for the Gaia NSL. Uses a low precision formula for the solar longitude (apparent longitude) valid for the period 1980-2020 with an accuracy of 0.005 deg. The reference frame is the ecliptic equinox J2000. The analytical formula for calculating the longitude is written in terms of the number of days since J2000.0(TCB). Since the zero point for GaiaTime (the Mission Reference Epoch, see GAIA-CA-SP-ARI-BAS-003-06, rev. 1, Sect. 3.5) is different from J2000.0 (actually it is J2010.0), it is necessary to add the number of days from J2000.0 to the Mission Reference Epoch before doing the calculation. This number is given by missionReferenceEpochDaysFromJ2000. Since the time may be specified as the number of elapsed ns since a time origin that is a settable attribute of the attitude data server, the NslSun has a field timeOriginDaysFromJ2000 that can be set with setTimeOrigin(). By default the origin time is the Mission Reference Epoch.
  • Constructor Details

    • NslSun

      public NslSun()
  • Method Details

    • setTime

      public void setTime(double julianDate)
      Calculate all fields for a given julian date.
      julianDate - The julian date.
    • setTime

      public void setTime(long tNs)
      Calculate all fields for a given time Author: F. Mignard
      tNs - time in [ns] since the time origin
    • getSolarLongitude

      public double getSolarLongitude()
      solar longitude in [rad]
    • getSolarLongitudeMod4Pi

      public double getSolarLongitudeMod4Pi()
      solar longitude in [rad], modulo 4*PI
    • getSolarLongitudeDot

      public double getSolarLongitudeDot()
      time derivative of solar longitude in [rad/day]
    • getSolarDirection

      public Vector3d getSolarDirection(Vector3d out)
      out - The output vector.
      The output vector containing the solar direction as a unit 3-vector in BCRS.
    • heliotropicToQuaternion

      public Quaterniond heliotropicToQuaternion(long t, double xi, double nu, double Omega)
      Method to convert heliotropic angles to quaternion
      t - time [ns]
      xi - revolving angle (solar aspect angle) [rad]
      nu - revolving phase [rad]
      Omega - spin phase [rad]
      attitude quaternion
    • angleBase

      public double angleBase(double x, int nRev)
      Puts an angle in the base interval [ 0, nRev*2*PI )
      x - angle [rad]
      nRev - number of revolutions in base interval
      angle in base interval [rad]