Package gaiasky.util.coord
Class NslSun
- java.lang.Object
-
- gaiasky.util.coord.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 Summary
Constructors Constructor Description NslSun()
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
angleBase(double x, int nRev)
Puts an angle in the base interval [ 0, nRev*2*PI )Vector3d
getSolarDirection(Vector3d out)
double
getSolarLongitude()
double
getSolarLongitudeDot()
double
getSolarLongitudeMod4Pi()
Quaterniond
heliotropicToQuaternion(long t, double xi, double nu, double Omega)
Method to convert heliotropic angles to quaternionvoid
setTime(double julianDate)
Calculate all fields for a given julian date.void
setTime(long tNs)
Calculate all fields for a given time Author: F.
-
-
-
Method Detail
-
setTime
public void setTime(double julianDate)
Calculate all fields for a given julian date.- Parameters:
julianDate
- The julian date.
-
setTime
public void setTime(long tNs)
Calculate all fields for a given time Author: F. Mignard- Parameters:
tNs
- time in [ns] since the time origin
-
getSolarLongitude
public double getSolarLongitude()
- Returns:
- solar longitude in [rad]
-
getSolarLongitudeMod4Pi
public double getSolarLongitudeMod4Pi()
- Returns:
- solar longitude in [rad], modulo 4*PI
-
getSolarLongitudeDot
public double getSolarLongitudeDot()
- Returns:
- time derivative of solar longitude in [rad/day]
-
getSolarDirection
public Vector3d getSolarDirection(Vector3d out)
- Parameters:
out
- The output vector.- Returns:
- 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- Parameters:
t
- time [ns]xi
- revolving angle (solar aspect angle) [rad]nu
- revolving phase [rad]Omega
- spin phase [rad]- Returns:
- attitude quaternion
-
angleBase
public double angleBase(double x, int nRev)
Puts an angle in the base interval [ 0, nRev*2*PI )- Parameters:
x
- angle [rad]nRev
- number of revolutions in base interval- Returns:
- angle in base interval [rad]
-
-