Class NslSun

  • public class NslSun
    extends java.lang.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 Detail

      • NslSun

        public NslSun()
    • Method Detail

      • 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]