| 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.
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

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
  ## 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.

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.