Class AnalyticalAttitudeDataServer

java.lang.Object
gaiasky.util.gaia.BaseAttitudeDataServer<Attitude>
gaiasky.util.gaia.AnalyticalAttitudeDataServer
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 Details

    • PI

      protected static final double PI
      Mathematical 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_DAY
      Factor converting from arcsec/s to deg/day
      See Also:
      Constant Field Values
    • X_AXIS

      protected static final Vector3d X_AXIS
      Unit vectors
    • Y_AXIS

      protected static final Vector3d Y_AXIS
    • Z_AXIS

      protected static final Vector3d Z_AXIS
    • OBLIQUITY_RAD

      protected static final double OBLIQUITY_RAD
      The obliquity of the ecliptic
    • OBLIQUITY_DEG

      protected static final double OBLIQUITY_DEG
      See Also:
      Constant Field Values
    • targetScanPeriod

      protected long targetScanPeriod
      The time in ns of one rotation of the satellite around its spin axis.
    • nslSun

      protected NslSun 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 class BaseAttitudeDataServer<Attitude>
      Returns:
      The reference time [ns]
    • setRefTime

      public void setRefTime​(long tRef)
      Sets the reference time in nanoseconds.
      Overrides:
      setRefTime in class BaseAttitudeDataServer<Attitude>
      Parameters:
      tRef - [ns]
    • getNominalSunVector

      protected NslSun getNominalSunVector()