| Earth Observation Mission CFI Software Pointing Software User Manual for JAVA |

Public Member Functions

# EECFI.SatNomTransId Class Reference

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

Inheritance diagram for EECFI.SatNomTransId:

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:

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.