Package gaiasky.util.gaia
Class AnalyticalAttitudeDataServer
java.lang.Object
- Direct Known Subclasses:
Epsl
,EpslAndNsl
,Nsl37
,TransitionScanningLaw
public abstract class AnalyticalAttitudeDataServer extends BaseAttitudeDataServer<Attitude>
This abstract class defines the fields and implements the methods that any
analytically defined attitude (e.g., NSL or EPSL) need in addition to those
in the superclass.
-
Field Summary
Fields Modifier and Type Field Description protected static double
ARCSEC_PER_S_TO_DEG_PER_DAY
Factor converting from arcsec/s to deg/dayprotected static double
FOUR_PI
protected NslSun
nslSun
protected static double
OBLIQUITY_DEG
protected static double
OBLIQUITY_RAD
The obliquity of the eclipticprotected static double
PI
Mathematical constantsprotected static double
PI_HALF
protected long
targetScanPeriod
The time in ns of one rotation of the satellite around its spin axis.protected static double
TWO_PI
protected static Vector3d
X_AXIS
Unit vectorsprotected static Vector3d
Y_AXIS
protected static Vector3d
Z_AXIS
Fields inherited from class gaiasky.util.gaia.BaseAttitudeDataServer
initialized, initialRequestedTimeContext, nativeTimeContext, withUncertaintiesCorrelations
-
Constructor Summary
Constructors Constructor Description AnalyticalAttitudeDataServer()
-
Method Summary
Modifier and Type Method Description protected NslSun
getNominalSunVector()
double
getNuRef()
Get the reference revolving phase angledouble
getOmegaRef()
Get the reference scan phase anglelong
getRefTime()
Ref time in nanoseconds since epoch.double
getTargetPrecessionRate()
Get the target precession ratelong
getTargetScanPeriod()
Get the target scan perioddouble
getTargetScanRate()
Get the target scan ratedouble
getXiRef()
Get the reference solar aspect angleboolean
inGap(long time)
void
setDefault()
Set all parameters to default values (from GaiaParam)void
setNuRef(double nuRef)
Set the reference value for the precession phase angle (nu)void
setOmegaRef(double omegaRef)
Set the reference value for the spin phase abgle (Omega)void
setRefTime(long tRef)
Sets the reference time in nanoseconds.void
setTargetPrecessionRate(double targetPrecessionRate)
Set the target precession ratevoid
setTargetScanPeriod(long targetScanPeriod)
Set the target scan periodvoid
setTargetScanRate(double targetScanRate)
Set the target scan ratevoid
setXiRef(double xiRef)
Set the reference value for the solar aspect angle (xi)Methods inherited from class gaiasky.util.gaia.BaseAttitudeDataServer
getAttitude, getAttitude, getAttitudeNative, isInitialized, setInitialized
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
PI
protected static final double PIMathematical constants- See Also:
- Constant Field Values
-
TWO_PI
protected static final double TWO_PI- See Also:
- Constant Field Values
-
FOUR_PI
protected static final double FOUR_PI- See Also:
- Constant Field Values
-
PI_HALF
protected static final double PI_HALF- See Also:
- Constant Field Values
-
ARCSEC_PER_S_TO_DEG_PER_DAY
protected static final double ARCSEC_PER_S_TO_DEG_PER_DAYFactor converting from arcsec/s to deg/day- See Also:
- Constant Field Values
-
X_AXIS
Unit vectors -
Y_AXIS
-
Z_AXIS
-
OBLIQUITY_RAD
protected static final double OBLIQUITY_RADThe obliquity of the ecliptic -
OBLIQUITY_DEG
protected static final double OBLIQUITY_DEG- See Also:
- Constant Field Values
-
targetScanPeriod
protected long targetScanPeriodThe time in ns of one rotation of the satellite around its spin axis. -
nslSun
-
-
Constructor Details
-
AnalyticalAttitudeDataServer
public AnalyticalAttitudeDataServer()
-
-
Method Details
-
setXiRef
public void setXiRef(double xiRef)Set the reference value for the solar aspect angle (xi)- Parameters:
xiRef
- angle in [rad]
-
setNuRef
public void setNuRef(double nuRef)Set the reference value for the precession phase angle (nu)- Parameters:
nuRef
- angle in [rad]
-
setOmegaRef
public void setOmegaRef(double omegaRef)Set the reference value for the spin phase abgle (Omega)- Parameters:
omegaRef
- angle in [rad]
-
setTargetPrecessionRate
public void setTargetPrecessionRate(double targetPrecessionRate)Set the target precession rate- Parameters:
targetPrecessionRate
- target value in [rev/yr]
-
setDefault
public void setDefault()Set all parameters to default values (from GaiaParam) -
setTargetScanPeriod
public void setTargetScanPeriod(long targetScanPeriod)Set the target scan period- Parameters:
targetScanPeriod
- period in [ns]
-
setTargetScanRate
public void setTargetScanRate(double targetScanRate)Set the target scan rate- Parameters:
targetScanRate
- target value in [arcsec/s]
-
getTargetScanPeriod
public long getTargetScanPeriod()Get the target scan period- Returns:
- targetScanPeriod period in [ns]
-
getTargetScanRate
public double getTargetScanRate()Get the target scan rate- Returns:
- target scan rate value in [arcsec/s]
-
getXiRef
public double getXiRef()Get the reference solar aspect angle- Returns:
- reference solar aspect angle [rad]
-
getNuRef
public double getNuRef()Get the reference revolving phase angle- Returns:
- reference revolving phase angle [rad]
-
getOmegaRef
public double getOmegaRef()Get the reference scan phase angle- Returns:
- reference scan phase angle [rad]
-
getTargetPrecessionRate
public double getTargetPrecessionRate()Get the target precession rate- Returns:
- target precession rate [rev/year]
-
inGap
public boolean inGap(long time) -
getRefTime
public long getRefTime()Ref time in nanoseconds since epoch.- Overrides:
getRefTime
in classBaseAttitudeDataServer<Attitude>
- Returns:
- The reference time [ns]
-
setRefTime
public void setRefTime(long tRef)Sets the reference time in nanoseconds.- Overrides:
setRefTime
in classBaseAttitudeDataServer<Attitude>
- Parameters:
tRef
- [ns]
-
getNominalSunVector
-