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
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.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
NslSun
public NslSun()Constructor
-
-
Method Details
-
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
- Parameters:
out
- The output vector.- Returns:
- The output vector containing the solar direction as a unit 3-vector in BCRS.
-
heliotropicToQuaternion
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]
-