DEIMOS
Earth Observation Mission CFI Software
Pointing Software User Manual
for JAVA
ESA

EECFI.SatNomTransId Class Reference

Class for storing the Satellite Nominal Attitude configuration parameters. More...

Inheritance diagram for EECFI.SatNomTransId:
EECFI.CfiId EECFI.CfiClass

List of all members.

Public Member Functions

 SatNomTransId ()
 Empty Class finalructor.
void close () throws CfiError
 Release all resources managed by this object.
native void init (long aocsModel) throws CfiError
 Initialise using AOCS model.
native void init (long model, final Vector< Double > modelParams) throws CfiError
 Initialise satellite nominal attitude model for a given satellite.
native void init (long angleType, final Vector< Long > harmTypePitch, final Vector< Long > harmTypeRoll, final Vector< Long > harmTypeYaw, final Vector< Double > harmCoeffPitch, final Vector< Double > harmCoeffRoll, final Vector< Double > harmCoeffYaw) throws CfiError
 Initialise satellite orbital to satellite nominal attitude mispointing angles for a given satellite with harmonics.
native void init (final TimeCorrelation timeId, final Vector< String > files, long timeInitMode, long timeRef, double time0, double time1) throws CfiError
 Initialise satellite nominal attitude angles for a given satellite reading values from the attitude files.
native long getAOCS () throws CfiError
 Get AOCS parameters.
native void setAOCS (long aocsModel) throws CfiError
 Change initialisation AOCS parameters from the object.
native ParamModel getParam () throws CfiError
 Get initialisation parameters of object.
native void setParam (final ParamModel paramModel) throws CfiError
 Change initialisation parameters of the object.
native HarmonicModel getHarmonic () throws CfiError
 Get harmonic parameters of object.
native void setHarmonic (final HarmonicModel harmModel) throws CfiError
 Change harmonic parameters of the object.
native AttFileModel getFile () throws CfiError
 Get file data of object.
native void setFile (final AttFileModel fileModel) throws CfiError
 Change initialisation file data of the object.
native void setAzElDefinition (final AzElDefinition azElDef) throws CfiError
 Set azimuth/elevation definition.
native SatId satId ()
 Return satellite id.

Detailed Description

Class for storing the Satellite Nominal Attitude configuration parameters.


Constructor & Destructor Documentation

EECFI.SatNomTransId.SatNomTransId (  ) 

Empty Class finalructor.


Member Function Documentation

void EECFI.SatNomTransId.close (  )  throws CfiError

Release all resources managed by this object.

IMPORTANT: The life time of the EOCFI Java objects must be explicitly managed by the program work flow. Failure to perform this release will lead to resource leakage and might have a significant impact in performance.

long EECFI.SatNomTransId::getAOCS (  )  throws CfiError

Get AOCS parameters.

Returns:
AOCS model.
AttFileModel EECFI.SatNomTransId::getFile (  )  throws CfiError

Get file data of object.

Returns:
File model data.
HarmonicModel EECFI.SatNomTransId::getHarmonic (  )  throws CfiError

Get harmonic parameters of object.

Returns:
Harmonic model data.
ParamModel EECFI.SatNomTransId::getParam (  )  throws CfiError

Get initialisation parameters of object.

Returns:
Parameters of model; the size of the returning vector will be always 15, but meaningful positions depend on the model.
void EECFI.SatNomTransId::init ( long  model,
final Vector< Double >  modelParams 
) throws CfiError

Initialise satellite nominal attitude model for a given satellite.

Parameters:
model Model (SatNominalAttModelEnum).
modelParams Vector with parameters of the corresponding model.

Model parameters depending on the attitude model
Attitude Model Array Element Description (Reference) Unit (Format)
XPCFI_MODEL_GENERIC [0] First Axis enumeration value -
[1] First Target enumeration value -
[2] First Vector[0] - or deg
[3] First Vector[1] - or deg
[4] First Vector[2] - or deg
[5] Second Axis enumeration value -
[6] Second Target enumeration value -
[7] Second Vector[0] - or deg
[8] Second Vector[1] - or deg
[9] Second Vector[2] - or deg
XPCFI_MODEL_ENVISAT [0] AOCS Cx parameter [pitch] deg
[1] AOCS Cy parameter [roll] deg
[2] AOCS Cz parameter [yaw] deg
XPCFI_MODEL_CRYOSAT [0] Local Normal Z Coefficient -
XPCFI_MODEL_ADM [0] Scan Angle deg
[1] Scan Limit deg
[2] Velocity Offset m/s
XPCFI_MODEL_SENTINEL1 [0] Local Normal Coefficient -
[1] Earth‘s angular velocity vector rad/s
[2] Antenna bore sight off nadir angle at
reference altitude
deg
[3] Reference altitude m
[4] Roll steering sensitivity versus altitude deg/km
[5] h0 m
[6] h1 m
[7] h2 m
[8] h3 m
[9] h4 m
[10] φ1 rad
[11] φ2 rad
[12] φ3 rad
[13] φ4 rad
XPCFI_MODEL_METOPSG [0] Local Normal Coefficient -
[1] Earth‘s angular velocity vector rad/s

Generic Model description

The generic model builds the reference frames from the specified direction vectors.
The model parameters are:
  • first_axis: It can be any of {+/-XPCFI_X_AXIS, +/-XPCFI_Y_AXIS, +/-XPCFI_Z_AXIS}
  • first_target: It can be any of {XPCFI_SUN_VEC, XPCFI_MOON_VEC, XPCFI_EARTH_VEC, XPCFI_NADIR_VEC, XPCFI_INERTIAL_VEL_VEC, XPCFI_EF_VEL_VEC, XPCFI_INERTIAL_TARGET_VEC, XPCFI_EF_TARGET_VEC, XPCFI_SC_EF_VEL_VEC, XPCFI_ORBIT_POLE, XPCFI_INERTIAL_POS_VEC_CORRECTED, XPCFI_INERTIAL_VEL_VEC_ROTATED}
  • first_vector[3]: contains either:
    • dummies
    • [long, lat, alt] if first target = XPCFI_EF_TARGET_VEC
    • [ra, decl, parallax] if first target = XPCFI_INERTIAL_TARGET_VEC
    • correction coefficients if first target = XPCFI_INERTIAL_POS_VEC_CORRECTED
    • rotation vector if first target = XPCFI_INERTIAL_VEL_VEC_ROTATED
  • second_axis: It can be any of {+/-XPCFI_X_AXIS, +/-XPCFI_Y_AXIS, +/-XPCFI_Z_AXIS}
  • second_target: : It can be any of {XPCFI_SUN_VEC, XPCFI_MOON_VEC, XPCFI_EARTH_VEC, XPCFI_NADIR_VEC, XPCFI_INERTIAL_VEL_VEC, XPCFI_EF_VEL_VEC, XPCFI_INERTIAL_TARGET_VEC, XPCFI_EF_TARGET_VEC, XPCFI_SC_EF_VEL_VEC, XPCFI_ORBIT_POLE, XPCFI_INERTIAL_POS_VEC_CORRECTED, XPCFI_INERTIAL_VEL_VEC_ROTATED}
  • second_vector[3]: contains either:
    • dummies
    • [long, lat, alt] if second target= XPCFI_EF_TARGET_VEC
    • [ra, decl, parallax] if fsecond target=XPCFI_INERTIAL_TARGET_VEC
    • correction coefficients if second target=XPCFI_INERTIAL_POS_VEC_CORRECTED
    • rotation vector if second target = XPCFI_INERTIAL_VEL_VEC_ROTATED
It is necessary to define a convention for each target type (e.g, always from Satellite to XXX):
  • XPCFI_SUN_VEC: Unit direction vector from Satellite to Sun
  • XPCFI_MOON_VEC: Unit direction vector from Satellite to Moon
  • XPCFI_EARTH_VEC: Unit direction vector from Satellite to Earth centre (opposite to Satellite Position Vector)
  • XPCFI_NADIR_VEC: Unit direction vector from Satellite to Nadir point
  • XPCFI_INERTIAL_VEL_VEC: Inertial Velocity vector (in TOD)
  • XPCFI_EF_VEL_VEC: Earth Fixed Velocity vector
  • XPCFI_INERTIAL_TARGET_VEC: Unit direction vector from Satellite to a target defined by a given [ra, decl, parallax]. The annual parallax is used in case we are pointing to a close object (for instance, the Moon), in order to get the distance. For stars, parallax=0 shall be used, meaning infinite distance. Units: degrees
  • XPCFI_EF_TARGET_VEC: Unit direction vector from Satellite to a target defined by a given [long, lat, alt]
  • XPCFI_SC_EF_VEL_VEC: Satellite Earth Fixed Velocity vector
  • XPCFI_ORBIT_POLE: Unit direction vector normal to the orbital plane (computed as the cross product of the Satellite Position vector and its Velocity vector)
  • XPCFI_INERTIAL_POS_VEC_CORRECTED: Unit Satellite position vector in ToD corrected by coefficients (e.g to approximate the local normal direction)
  • XPCFI_INERTIAL_VEL_VEC_ROTATED: Inertial Velocity vector in ToD rotated (e.g correcting for the Earth rotation)
  • XPCFI_EF_NORTH: Unit direction vector pointing North (in Earth Fixed)
  • XP_EF_SOUTH: Unit direction vector pointing South (in Earth Fixed)
With these parameters, the calculation is done as follows:
  • Compute the unit direction vector specified by first_target
    • Assign the calculated first target vector to the first axis vector
  • Compute the unit direction vector specified by second_target
    • Cross-product of the first axis vector and the second target vector
    • Assign the resulting vector to the second axis vector
    • Complete the right-handed frame
The following are some examples:
** Sun-Fixed Reference Frame
  • model_param = {XPCFI_X_AXIS, XPCFI_SUN_VEC, 0.0, 0.0, 0.0, XPCFI_Z_AXIS, XPCFI_EARTH_VEC, 0.0, 0.0, 0.0}
Then:
  • X-axis = Unit vector from Satellite to Sun (Sun Vector)
  • Z-axis = Unit cross product: X-axis x (Unit vector from Satellite to Earth (Earth Vector))
  • Y-axis = Z-axis x X-axis (completing the right-handed frame)
  • ** Yaw Steering Mode
    • model_param={-XPCFI_Z_AXIS, XPCFI_NADIR_VEC, 0.0, 0.0, 0.0, XPCFI_X_AXIS, XPCFI_EF_VEL_VEC, 0.0, 0.0, 0.0}
    Then:
    • Z-axis = -(Unit vector from Satellite to Nadir (Nadir Vector))
    • X-axis = Unit cross product: Z-axis x (Earth-Fixed Velocity Vector)
    • Y-axis = Z-axis x X-axis (completing the right-handed frame)

    Sentinel-1 Model parameters description

    The parameters for the Sentinel-1 attitude model corresponds to the roll steering law:

    where the actual altitude of the satellite is approximated by the harmonic function:

    The first fourth terms of the series are considered. Consult [MSC] for more information.

    Sentinel-2 Model description

    Sentinel 2 model is implemented as generic model with the following definitions:
    • First axis: XP_NEG_Z_AXIS; first target = XP_EARTH_VEC.
    • Second axis: XP_X_AXIS; second target = XP_INERTIAL_VEL_VEC_ROTATED

    Yaw flip attitude Model description

    Yaw Flip model is implemented as generic model with the following definitions:
    • For WINTER mode:
      • First axis: XP_NEG_Z_AXIS; first target = XP_NADIR_VEC.
      • Second axis: XP_X_AXIS; second target = XP_EF_SOUTH
    • For SUMMER mode:
      • First axis: XP_NEG_Z_AXIS; first target = XP_NADIR_VEC.
      • Second axis: XP_X_AXIS; second target = XP_EF_NORTH
    • For AUTOMATIC Yaw Flip, the attitude is set to WINTER or SUMMER mode depending on the Sun position: if the Sun position is above the equatorial plane, SUMMER mode is selected; if the Sun position is below the equatorial plane, WINTER mode is selected.

    MetOp-SG Model description

    MetOp-SG model is implemented as a generic model with the ideal YSM law and the following definitions:
    • The Z axis that is computed with an approximation for the local normal vector using an altitude dependent correction factor.
    • The input parameters are the local normal coefficient and the Earth‘s rotation speed.
    • First axis: XP_Z_AXIS; first target = XP_INERTIAL_POS_VEC_CORRECTED.
    • Second axis: XP_X_AXIS; second target = XP_INERTIAL_VEL_VEC_ROTATED
    void EECFI.SatNomTransId::init ( long  angleType,
    final Vector< Long >  harmTypePitch,
    final Vector< Long >  harmTypeRoll,
    final Vector< Long >  harmTypeYaw,
    final Vector< Double >  harmCoefPitch,
    final Vector< Double >  harmCoefRoll,
    final Vector< Double >  harmCoefYaw 
    ) throws CfiError

    Initialise satellite orbital to satellite nominal attitude mispointing angles for a given satellite with harmonics.

    The Attitude.compute and Attitude.changeFrame functions will then compute the values as follows:

    harmonic.jpg
    Parameters:
    angleType Type of angle (given by PointingAngleTypeEnum).
    harmTypePitch Type of coefficients:

    • 0= for the bias parameter
    • <0 for the sinus coefficients (-n means that corresponds to the sinus coefficient of order n)
    • >0 for the cosinus coefficients (-n means that corresponds to the cosinus coefficient of order n)

    .

    harmTypeRoll Type of coefficients (bias, sinus, cosinus).
    harmTypeYaw Type of coefficients (bias, sinus, cosinus).
    harmCoefPitch Bias, sinus and cosinus coefficients for the pitch angle.
    harmCoefRoll Bias, sinus and cosinus coefficients for the roll angle.
    harmCoefYaw Bias, sinus and cosinus coefficients for the yaw angle.
    void EECFI.SatNomTransId::init ( final TimeCorrelation  timeId,
    final Vector< String >  files,
    long  timeInitMode,
    long  timeRef,
    double  time0,
    double  time1 
    ) throws CfiError

    Initialise satellite nominal attitude angles for a given satellite reading values from the attitude files.

    In order to read files, this method internally uses Data Handling functions.

    Please refer to [D_H_SUM] for further details.

    Parameters:
    timeId Time correlations.
    files Vector of files.
    timeInitMode Flag for selecting the time range of the initialisation (XPCFI_SEL_TIME or XPCFI_SEL_FILE).
    timeRef Time reference (TimeRefPointingEnum).
    time0 Start of the time range..
    time1 Stop of the time range.
    void EECFI.SatNomTransId::init ( long  aocsModel  )  throws CfiError

    Initialise using AOCS model.

    Parameters:
    aocsModel AOCS model (SatNominalAttAocsModeEnum).
    SatId EECFI.SatNomTransId::satId (  ) 

    Return satellite id.

    Returns:
    Satellite id.
    void EECFI.SatNomTransId::setAOCS ( long  aocsModel  )  throws CfiError

    Change initialisation AOCS parameters from the object.

    Parameters:
    aocsModel AOCS model.
    void EECFI.SatNomTransId::setAzElDefinition ( final AzElDefinition  azElDef  )  throws CfiError

    Set azimuth/elevation definition.

    Parameters:
    azElDef Definition of azimuth and elevation.
    void EECFI.SatNomTransId::setFile ( final AttFileModel  fileModel  )  throws CfiError

    Change initialisation file data of the object.

    Parameters:
    fileModel File model data.
    void EECFI.SatNomTransId::setHarmonic ( final HarmonicModel  harmModel  )  throws CfiError

    Change harmonic parameters of the object.

    Parameters:
    harmModel Harmonic model data.
    void EECFI.SatNomTransId::setParam ( final ParamModel  paramModel  )  throws CfiError

    Change initialisation parameters of the object.

    Parameters:
    paramModel Parameters of model.

    Generated on Mon Dec 11 2023 14:48:29 for by doxygen 1.7.1