| Earth Observation Mission CFI Software Pointing Software User Manual |

Public Member Functions | Public Attributes | Protected Member Functions

# EECFI::Target Class Reference

Class for target calculations. More...

Inheritance diagram for EECFI::Target:

List of all members.

## Public Member Functions
| Target (const Attitude &attitude, const DemId &demId, const AtmosId &atmosId) throw (CfiError)
| Class constructor.
| ~Target () throw (CfiError)
| Class destructor.
void | targetInter (const SatId &satId, long deriv, long interFlag, double losAz, double losEl, double geodAlt, double losAzRate, double losElRate, long iray, double freq) throw (CfiError)
| Compute the first or the second intersection point of the line of sight from the satellite with a surface located at a certanin geodetic altitude over the Earth.
void | targetTravelTime (const SatId &satId, long deriv, double losAz, double losEl, double travelTime, double losAzRate, double losElRate, double travelTimeRate, long iray, double freq) throw (CfiError)
| It computes the point of the line or sight from the satellite at a given travel time along the line of sight.
void | targetGroundRange (const SatId &satId, long deriv, double losAz, double losEl, double geodAlt, double distance, double losAzRate, double losElRate) throw (CfiError)
| It computes the location of a point that is placed on a surface at a certain geodetic altitude over the Earth, that lays on the plane defined by the satellite position, the nadir and a reference point.
void | targetIncidenceAngle (const SatId &satId, long deriv, double losAz, double incidenceAngle, double geodAlt, double losAzRate) throw (CfiError)
| It computes the location of a point that is placed on a surface at a certain geodetic altitude over the Earth and that is seen from the satellite on a line of sight that forms a certain azimuth angle in the selected Attitude Frame and that intersects that surface with a certain incidence angle.
void | targetRange (const SatId &satId, long deriv, double losAz, double range, double geodAlt, double losAzRate, double rangeRate) throw (CfiError)
| It computes the location of a point that is placed on a surface at a certain geodetic altitude over the Earth, that is seen from the satellite on a line of sight that forms a certain azimuth angle in the selected Attitude Frame, and that is at a certain range or slant-range from the satellite.
void | targetRangeRate (const SatId &satId, long deriv, double efRangeRate, double range, double geodAlt, double efRangeRateRate, double rangeRate) throw (CfiError)
| It computes the location of a point that is placed on a surface at a certain geodetic altitude over the Earth, that is at a certain range from the satellite, and whose associatedEarth-fixed target has a certain range-rate value.
void | targetTangent (const SatId &satId, long deriv, double losAz, double losEl, double losAzRate, double losElRate, long iray, double freq) throw (CfiError)
| It computes the location of the tangent point over the Earth that is located on the line of sight defined by an elevation and azimuth angles expressed in the selected Attitude Frame.
void | targetAltitude (const SatId &satId, long deriv, double losAz, double geodAlt, double losAzRate, long iray, double freq) throw (CfiError)
| It computes the location of the tangent point over the Earth that is located on a surface at a certain geodetic altitude over the Earth and that is on a line of sight that forms a certain azimuth angle in the selected Attitude Frame.
void | targetStar (const SatId &satId, long deriv, double starRa, double starDec, double starRaRate, double starDecRate, long iray, double freq) throw (CfiError)
| It computes the location of the tangent point over the Earth that is located on the line of sight that points to a star defined by its right ascension and declination coordinates.
void | targetTangentSun (const SatId &satId, long deriv, long iray, double freq) throw (CfiError)
| It computes the location of the tangent point over the Earth that is located on the line of sight that points to the Sun.
void | targetTangentMoon (const SatId &satId, long deriv, long iray, double freq) throw (CfiError)
| It computes the location of the tangent point over the Earth that is located on the line of sight that points to the Moon.
void | targetStation (const SatId &satId, long deriv, double geocLong, double geodLat, double geodAlt, double minLinkEl) throw (CfiError)
| It computes the most relevant observation parameters of the link between the satellite and a ground station.
void | targetDRS (const SatId &satId, long deriv, double drsPos[3], double drsVel[3]) throw (CfiError)
| It computes the most relevant observation parameters of the link between the satellite and a Data Relay Satellite. This method is obsolete and will be removed in future versions of the CFI.
void | targetGeneric (const SatId &satId, long deriv, double targPos[3], double targVel[3], double targAcc[3]) throw (CfiError)
| It allows the user to provide the target location (position and velocity) and later calculate extra results from it.
void | targetReflected (const SatId &satId, long deriv, double geodAlt, double deflectionNorth, double deflectionEast, long sourceType, vector< double > &sourceParam) throw (CfiError)
| It allows the user to compute, from S/C position and attitude, and emitting source position, the point of reflection from the source towards the SC at a certain geodetic altitude.
void | targetSc (const SatId &satId1, const SatId &satId2, const Attitude &att2, long deriv) throw (CfiError)
| It computes the pointing from one satellite to another satellite.
void | multiTargetInter (const SatId &satId, long deriv, long interFlag, double losAz, double losEl, long numTarget, vector< double > &geodAlt, double losAzRate, double losElRate, long iray, double freq) throw (CfiError)
| It computes the first or the second intersection points of the line of sight from the satellite with surfaces located at certain geodetic altitudes over the Earth.
void | multiTargetTravelTime (const SatId &satId, long deriv, double losAz, double losEl, long numTarget, vector< double > &travelTime, double losAzRate, double losElRate, double travelTimeRate, long iray, double freq) throw (CfiError)
| It computes the points of the line or sight from the satellite at given travel times along the (curved) line of sight.
void | targetListInter (const SatId &satId, long deriv, long interFlag, const InstrumentData &instrData, double geodAlt, TargetOutput &targOut) throw (CfiError)
| Compute the first or the second intersection point of the line of sight from the satellite with a surface located at a certanin geodetic altitude over the Earth for a set of azimuth/elevation points.
void | extraVector (long choice, long targetType, long targetNumber, vector< double > &vectorResult, vector< double > &vectorResultRate, vector< double > &vectorResultRateRate) throw (CfiError)
| It provides the following output parameters for target(s): target position, velocity and acceleration vectors, line of sight direction, range, travel time and their corresponding derivatives.
void | extraMain (long choice, long targetType, long targetNumber, vector< double > &mainResult, vector< double > &mainResultRate, vector< double > &mainResultRateRate) throw (CfiError)
| It computes the extra parameter for the target(s) in input data structure.
void | extraAux (long choice, long targetType, long targetNumber, vector< double > &extraResult, vector< double > &extraResultRate, vector< double > &extraResultRateRate) throw (CfiError)
| It computes auxiliary parameters for the target in input data structure.
void | extraTargetToSun (long choice, long targetType, long targetNumber, long iray, double freq, vector< double > &sunResult, vector< double > &sunResultRate, vector< double > &sunResultRateRate) throw (CfiError)
| It computes extra parameters related to the pointing fromthe target in input data structure to the sun.
void | extraTargetToMoon (long choice, long targetType, long targetNumber, long iray, double freq, vector< double > &moonResult, vector< double > &moonResultRate, vector< double > &moonResultRateRate) throw (CfiError)
| It computes extra parameters related to the pointing from the target in input data structure to the moon.
void | extraEfTarget (long choice, long targetType, long targetNumber, double freq, vector< double > &efResultRate, vector< double > &efResultRateRate) throw (CfiError)
| It computes the parameter for an Earth fixed target related to the target in input data structure.
void | extraSpecularReflection (long choice, long targetType, long targetNumber, double deflectionNorth, double deflectionEast, vector< double > &specRefResult, vector< double > &specRefResultRate, vector< double > &specRefResultRateRate) throw (CfiError)
| It calculates the direction of the specular reflection associated to a given target.
SatId | satId () const
| Return satellite id.
TargetIdData * | getData () const throw (CfiError)
| It gets target parameters.
Target const & | operator= (Target const &target)
| Operator =.
## Public Attributes
long | numUserTarget
| Number of user defined targer calculated.
long | numLosTarget
| Number of Line Of Sight target calculated.
## Protected Member Functions
GenericId * | getId ()
| Get the id.

## Detailed Description

Class for target calculations.

## Constructor & Destructor Documentation

EECFI::Target::Target | ( | const Attitude & | attitude,
|  | const DemId & | demId,
|  | const AtmosId & | atmosId |
| ) |  |  | throw (CfiError)

Class constructor.

EECFI::Target::~Target | ( |  | ) | throw (CfiError)

Class destructor.

References EECFI::CfiId::status(), and EECFI::CfiClass::throwWarn.

## Member Function Documentation

void EECFI::Target::extraAux | ( | long | choice,
|  | long | targetType,
|  | long | targetNumber,
|  | vector< double > & | extraResult,
|  | vector< double > & | extraResultRate,
|  | vector< double > & | extraResultRateRate |
| ) |  |  | throw (CfiError)

It computes auxiliary parameters for the target in input data structure.

Note on targetNumber with targets computed with Target::targetListInter: the targetNumber to be used to get a specific LOS target is an incremental number. That is, if there are N user targets US1, US2, ... USN and a number of LOS targets for every user target NLOS1, NLOS2, ..., NLOSN, if we want to get LOS target with index 1 corresponding to user target US3, the targetNumber to be used must be NLOS1+NLOS2+1.
The targetNumber can also be get with the returned array by Target::getData.

Parameters:

  | choice | Flag to select the extra results to be computed (TargetResAuxNameEnum). Even though derivatives could be requested by user, they will not be calculated if the target was computed without derivatives (a warning is raised in this case).
  | targetType | Flag to select the type of target (TargetTypeEnum).
  | targetNumber | Target number.
  | extraResult | [OUTPUT] Results vector; components: [0] Radius of curvature in the look direction at the nadir of the target (Earth fixed CS) [m] [1] Distance from the nadir of the target to the satellite nadir (EF CS) [m] [2] Minimum distance from the nadir of the target to the ground track (EF CS) [m] [3] Distance from the SSP to the point located on the ground track that is at a minimum distance from the nadir of the target (EF CS) [m] [4] Mean Local Solar Time at target [decimal hour] [5] True Local Solar Time at target [decimal hour] [6] Right ascension at which the look direction from the satellite to the target points at target point (True of Date CS) [deg] [7] Declination at which the look direction from the satellite to the target points at target point (True of Date CS) [deg].
  | extraResultRate | [OUTPUT] Results rate vector; components: [0] Radius of curvature-rate in the look direction at the nadir of the target (Earth fixed CS) [m/s] [1] Distance-rate from the nadir of the target to the satellite nadir (EF CS) [m/s] [2] Distance-rate from the nadir of the target to the ground track (EF CS) [m/s] [3] Distance-rate from the SSP to the point located on the ground track that is at a minimum distance from the nadir of the target (EF CS) [m/s] [4-7] dummy [8] Northward component of the velocity relative to the Earth of the nadir of the target (Topocentric CS) [m/s] [9] Eastward component of the velocity relative to the Earth of the nadir of the target (Topocentric CS) [m/s] [10] Azimuth of the velocity relative to the Earth of the nadir of the target.(Topocentric CS) [deg] [11] Magnitude of the velocity relative to the Earth of the nadir of the target (Topocentric CS) [m/s].
  | extraResultRateRate | [OUTPUT] Results rate rate vector; components: [0] Radius of curvature-rate-rate in the look direction at the nadir of the target (Earth fixed CS) [m/s] [1] Distance-rate-rate from the nadir of the target to the satellite nadir (EF CS) [m/s] [2] Distance-rate-rate from the nadir of the target to the ground track (EF CS) [m/s] [3] Distance-rate-rate from the SSP to the point located on the ground track that is at a minimum distance from the nadir of the target (EF CS) [m/s].

void EECFI::Target::extraEfTarget | ( | long | choice,
|  | long | targetType,
|  | long | targetNumber,
|  | double | freq,
|  | vector< double > & | efResultRate,
|  | vector< double > & | efResultRateRate |
| ) |  |  | throw (CfiError)

It computes the parameter for an Earth fixed target related to the target in input data structure.

Note on targetNumber with targets computed with Target::targetListInter: the targetNumber to be used to get a specific LOS target is an incremental number. That is, if there are N user targets US1, US2, ... USN and a number of LOS targets for every user target NLOS1, NLOS2, ..., NLOSN, if we want to get LOS target with index 1 corresponding to user target US3, the targetNumber to be used must be NLOS1+NLOS2+1.
The targetNumber can also be get with the returned array by Target::getData.

Parameters:

  | choice | Flag to select the extra results to be computed (DerivPointingEnum). Even though derivatives could be requested by user, they will not be calculated if the target was computed without derivatives (a warning is raised in this case).
  | targetType | Flag to select the type of target (TargetTypeEnum).
  | targetNumber | Target number.
  | freq | Frequency of the signal [Hz]. Allowed range: >0.
  | efResultRate | [OUTPUT] Results vector; components: [0] 2-way Doppler shift of the signal (Earth Fixed CS) [Hz] [1] Earthfixed target to satellite range-rate (EF CS) [m/s] [2] Earthfixed target to satellite azimuth-rate (EF CS) [deg/s] [3] Earthfixed target to satellite elevation-rate (EF CS) [deg/s] [4] Satellite to earthfixed target azimuth-rate (Topocentric CS) [deg/s] [5] Satellite to earthfixed target elevation-rate (Topocentric CS) [deg/s] [6] Satellite to earthfixed target azimuth-rate (Attitude Frame) [deg/s] [7] Satellite to earthfixed target elevation-rate (Attitude Frame) [deg/s].
  | efResultRateRate | [OUTPUT] Results rate rate vector.

void EECFI::Target::extraMain | ( | long | choice,
|  | long | targetType,
|  | long | targetNumber,
|  | vector< double > & | mainResult,
|  | vector< double > & | mainResultRate,
|  | vector< double > & | mainResultRateRate |
| ) |  |  | throw (CfiError)

It computes the extra parameter for the target(s) in input data structure.

Note on targetNumber with targets computed with Target::targetListInter: the targetNumber to be used to get a specific LOS target is an incremental number. That is, if there are N user targets US1, US2, ... USN and a number of LOS targets for every user target NLOS1, NLOS2, ..., NLOSN, if we want to get LOS target with index 1 corresponding to user target US3, the targetNumber to be used must be NLOS1+NLOS2+1.
The targetNumber can also be get with the returned array by Target::getData.

Parameters:

  | choice | Flag to select the extra results to be computed (TargetResMainNameEnum). Even though derivatives could be requested by user, they will not be calculated if the target was computed without derivatives (a warning is raised in this case).
  | targetType | Flag to select the type of target (TargetTypeEnum).
  | targetNumber | Target number.
  | mainResult | [OUTPUT] Results vector; components: [0] Target geocentric longitude (EF CS) [deg] [1] Target geocentric latitude (EF CS) [deg] [2] Target geodetic latitude (EF CS) [deg] [3] Target geodetic altitude (EF CS) [deg] [4] Satellite to target pointing: Azimuth (Topocentric CS) [deg] [5] Satellite to target pointing: Elevation (Topocentric CS) [deg] [6] Satellite to target pointing: Azimuth (Attitude Frame) [deg] [7] Satellite to target pointing: Elevation (Attitude Frame) [deg] [8] Target to Satellite pointing: Azimuth (Topocentric CS) [deg] [9] Target to Satellite pointing: Elevation (Topocentric CS) [deg] [10] Target to source Satellite pointing: Azimuth (Attitude frame) [deg] (Note: this value is only meaningful when target has been computed with xp_target_sc) [11] Target to source Satellite pointing: Elevation (Attitude frame) [deg] (Note: this value is only meaningful when target has been computed with xp_target_sc).
  | mainResultRate | [OUTPUT] Results rate vector.
  | mainResultRateRate | [OUTPUT] Results rate rate vector.

void EECFI::Target::extraSpecularReflection | ( | long | choice,
|  | long | targetType,
|  | long | targetNumber,
|  | double | deflectionNorth,
|  | double | deflectionEast,
|  | vector< double > & | specRefResult,
|  | vector< double > & | specRefResultRate,
|  | vector< double > & | specRefResultRateRate |
| ) |  |  | throw (CfiError)

It calculates the direction of the specular reflection associated to a given target.

Note on targetNumber with targets computed with Target::targetListInter: the targetNumber to be used to get a specific LOS target is an incremental number. That is, if there are N user targets US1, US2, ... USN and a number of LOS targets for every user target NLOS1, NLOS2, ..., NLOSN, if we want to get LOS target with index 1 corresponding to user target US3, the targetNumber to be used must be NLOS1+NLOS2+1.
The targetNumber can also be get with the returned array by Target::getData.

Parameters:

  | choice | Flag to select the extra results to be computed (DerivPointingEnum). Even though derivatives could be requested by user, they will not be calculated if the target was computed without derivatives (a warning is raised in this case).
  | targetType | Flag to select the type of target (TargetTypeEnum).
  | targetNumber | Target number.
  | deflectionNorth | North-South component of the vertical deflection [deg]. Allowed range: >=-90; <=90.
  | deflectionEast | East-West component of the vertical deflection [deg]. Allowed range: >=-90; <=90.
  | specRefResult | [OUTPUT] Results vector; components: [0] X coordinate of reflected pointing direction (EF CS) [m] [1] Y coordinate of reflected pointing direction (EF CS) [m] [2] Z coordinate of reflected pointing direction (EF CS) [m] [3] Azimuth of the reflected pointing direction (Topocentric CS) [deg] [4] Elevation of the reflected pointing direction (Topocentric CS) [deg] [5] Right ascension at which the reflected pointing direction points at target point (True of Date CS) [deg] [6] Declination at which the reflected pointing direction points at target point (True of Date CS) [deg].
  | specRefResultRate | [OUTPUT] Results rate vector.
  | specRefResultRateRate | [OUTPUT] Results rate rate vector.

void EECFI::Target::extraTargetToMoon | ( | long | choice,
|  | long | targetType,
|  | long | targetNumber,
|  | long | iray,
|  | double | freq,
|  | vector< double > & | moonResult,
|  | vector< double > & | moonResultRate,
|  | vector< double > & | moonResultRateRate |
| ) |  |  | throw (CfiError)

It computes extra parameters related to the pointing from the target in input data structure to the moon.

Note on targetNumber with targets computed with Target::targetListInter: the targetNumber to be used to get a specific LOS target is an incremental number. That is, if there are N user targets US1, US2, ... USN and a number of LOS targets for every user target NLOS1, NLOS2, ..., NLOSN, if we want to get LOS target with index 1 corresponding to user target US3, the targetNumber to be used must be NLOS1+NLOS2+1.
The targetNumber can also be get with the returned array by Target::getData.

Parameters:

  | choice | Flag to select the extra results to be computed (DerivPointingEnum). Even though derivatives could be requested by user, they will not be calculated if the target was computed without derivatives (a warning is raised in this case).
  | targetType | Flag to select the type of target (TargetTypeEnum).
  | targetNumber | Target number.
  | iray | Ray tracing model switch (not used).
  | freq | Frequency of the signal [Hz]. Allowed range: >0.
  | moonResult | [OUTPUT] Results vector; components: [0] Target to Moon (centre) azimuth (Topocentric CS) [deg] [1] Target to Moon (centre) elevation (Topocentric CS) [deg] [2] Tangent altitude over the Earth in the target to Moon (centre) look direction (EF CS) [m] [3] Target to Moon visibility flag (- 1: Moon eclipsed by the Earth; +1: Moon in sight).
  | moonResultRate | [OUTPUT] Results rate vector; components: [0] Target to Moon (centre) azimuth-rate (Topocentric CS) [deg/s] [1] Target to Moon (centre) elevation-rate (Topocentric CS) [deg/s].
  | moonResultRateRate | [OUTPUT] Results rate rate vector; components: [0] Target to Moon (centre) azimuth-rate-rate (Topocentric CS) [deg/s^2] [1] Target to Moon (centre) elevation-rate-rate (Topocentric CS) [deg/s^2].

void EECFI::Target::extraTargetToSun | ( | long | choice,
|  | long | targetType,
|  | long | targetNumber,
|  | long | iray,
|  | double | freq,
|  | vector< double > & | sunResult,
|  | vector< double > & | sunResultRate,
|  | vector< double > & | sunResultRateRate |
| ) |  |  | throw (CfiError)

It computes extra parameters related to the pointing fromthe target in input data structure to the sun.

Note on targetNumber with targets computed with Target::targetListInter: the targetNumber to be used to get a specific LOS target is an incremental number. That is, if there are N user targets US1, US2, ... USN and a number of LOS targets for every user target NLOS1, NLOS2, ..., NLOSN, if we want to get LOS target with index 1 corresponding to user target US3, the targetNumber to be used must be NLOS1+NLOS2+1.
The targetNumber can also be get with the returned array by Target::getData.

Parameters:

  | choice | Flag to select the extra results to be computed (DerivPointingEnum). Even though derivatives could be requested by user, they will not be calculated if the target was computed without derivatives (a warning is raised in this case).
  | targetType | Flag to select the type of target (TargetTypeEnum).
  | targetNumber | Target number.
  | iray | Ray tracing model switch (not used).
  | freq | Frequency of the signal [Hz]. Allowed range: >0.
  | sunResult | [OUTPUT] Results vector; components: [0] Target to Sun (centre) azimuth (Topocentric CS) [deg] [1] Target to Sun (centre) elevation (Topocentric CS) [deg] [2] Tangent altitude over the Earth in the target to Sun (centre) look direction (EF CS) [m] [3] Target to Sun visibility flag (- 1: Sun eclipsed by the Earth; +1: Sun in sight).
  | sunResultRate | [OUTPUT] Results rate vector; components: [0] Target to Sun (centre) azimuth-rate (Topocentric CS) [deg/s] [1] Target to Sun (centre) elevation-rate (Topocentric CS) [deg/s].
  | sunResultRateRate | [OUTPUT] Results rate rate vector; components: [0] Target to Sun (centre) azimuth-rate-rate (Topocentric CS) [deg/s^2] [1] Target to Sun (centre) elevation-rate-rate (Topocentric CS) [deg/s^2].

void EECFI::Target::extraVector | ( | long | choice,
|  | long | targetType,
|  | long | targetNumber,
|  | vector< double > & | vectorResult,
|  | vector< double > & | vectorResultRate,
|  | vector< double > & | vectorResultRateRate |
| ) |  |  | throw (CfiError)

It provides the following output parameters for target(s): target position, velocity and acceleration vectors, line of sight direction, range, travel time and their corresponding derivatives.

Note on targetNumber with targets computed with Target::targetListInter: the targetNumber to be used to get a specific LOS target is an incremental number. That is, if there are N user targets US1, US2, ... USN and a number of LOS targets for every user target NLOS1, NLOS2, ..., NLOSN, if we want to get LOS target with index 1 corresponding to user target US3, the targetNumber to be used must be NLOS1+NLOS2+1.
The targetNumber can also be get with the returned array by Target::getData.

Parameters:

  | choice | Flag to select the extra results to be computed (DerivPointingEnum). Even though derivatives could be requested by user, they will not be calculated if the target was computed without derivatives (a warning is raised in this case).
  | targetType | Flag to select the type of target (TargetTypeEnum).
  | targetNumber | Target number.
  | vectorResult | [OUTPUT] Results vector; components: [0] Target Position X (EF CS) [m] [1] Target Position Y (EF CS) [m] [2] Target Position Z (EF CS) [m] [3] Direction LOS X (EF CS) [m] [4] Direction LOS X (EF CS) [m] [5] Direction LOS X (EF CS) [m] [6] Range to Attitude Frame Origin [m] [7] Travel Time to Attitude Frame Origin [s].
  | vectorResultRate | [OUTPUT] Results rate vector.
  | vectorResultRateRate | [OUTPUT] Results rate rate vector.

TargetIdData * EECFI::Target::getData | ( |  | ) | const throw (CfiError)

It gets target parameters.

Note on return array:

- When the target has been computed with Target::targetListInter, the returned array has one element for every user target, and every element has the list LOS targets corresponding to the user target.
- In any other case, the returned array has only one element, with the list of user and LOS targets
- The array is reserved by getData function, and must be freed by user with delete[].

Returns:
  Data of target id.

References EECFI::Coord::acc, EECFI::CfiError::addMsg(), EECFI::TargetIdData::atmCrossed, EECFI::Coord::cs, EECFI::ParDer::deriv, EECFI::GenericTargetData::deriv, EECFI::Coord::deriv, EECFI::TargetIdData::earth, EECFI::TargetIdData::earthCrossed, EECFI::TargetIdData::earthFlag, EECFI::TargetIdData::exitAtmVector, EECFI::GenericTargetData::freq, EECFI::TargetIdData::genericData, EECFI::GenericTargetData::iray, EECFI::TargetIdData::los, EECFI::ParDer::p, EECFI::ParDer::p2d, EECFI::ParDer::pd, EECFI::Coord::pos, EECFI::TargetData::range, EECFI::TargetData::satTarVector, EECFI::GenericTargetData::satVector, EECFI::TargetData::targetNumber, EECFI::TargetData::tarSatVector, EECFI::TargetData::tarVector, EECFI::CfiClass::throwWarn, EECFI::TargetData::time, EECFI::GenericTargetData::time, EECFI::GenericTargetData::timeRef, EECFI::TargetIdData::user, EECFI::Coord::vel, and EECFI::TargetData::zTan.

GenericId * EECFI::Target::getId | ( |  | ) | `[protected]`

Get the id.

Returns:
  Pointer to xp_target_id.

void EECFI::Target::multiTargetInter | ( | const SatId & | satId,
|  | long | deriv,
|  | long | interFlag,
|  | double | losAz,
|  | double | losEl,
|  | long | numTarget,
|  | vector< double > & | geodAlt,
|  | double | losAzRate,
|  | double | losElRate,
|  | long | iray,
|  | double | freq |
| ) |  |  | throw (CfiError)

It computes the first or the second intersection points of the line of sight from the satellite with surfaces located at certain geodetic altitudes over the Earth.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | interFlag | Flag for first or second intersection point selection (XPCFI_INTER_1ST or XPCFI_INTER_2ND).
  | losAz | Azimuth of the LOS (Attitude frame) [deg]. Allowed range: >=0; <360.
  | losEl | Elevation of the LOS (Attitude frame) [deg]. Allowed range: >=-90; <=90.
  | numTarget | Number of user defined altitudes.
  | geodAlt | Geodetic altitude over the Earth [m]. Allowed range: >=-bWGS.
  | losAzRate | Azimuth rate of the LOS (Attitude frame) [deg/s].
  | losElRate | Elevation rate of the LOS (Attitude frame) [deg/s].
  | iray | Ray tracing model switch (not used).
  | freq | Frequency of the signal [Hz]. Allowed range: >0.

void EECFI::Target::multiTargetTravelTime | ( | const SatId & | satId,
|  | long | deriv,
|  | double | losAz,
|  | double | losEl,
|  | long | numTarget,
|  | vector< double > & | travelTime,
|  | double | losAzRate,
|  | double | losElRate,
|  | double | travelTimeRate,
|  | long | iray,
|  | double | freq |
| ) |  |  | throw (CfiError)

It computes the points of the line or sight from the satellite at given travel times along the (curved) line of sight.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | losAz | Azimuth of the LOS (Attitude frame) [deg]. Allowed range: >=0; <360.
  | losEl | Elevation of the LOS (Attitude frame) [deg]. Allowed range: >=-90; <=90.
  | numTarget | Number of user defined altitudes.
  | travelTime | Travel time along the (curved) line of sight [s]. Allowed range: >0.
  | losAzRate | Azimuth rate of the LOS (Attitude frame) [deg/s].
  | losElRate | Elevation rate of the LOS (Attitude frame) [deg/s].
  | travelTimeRate | Travel time rate along the (curved) line of sight [s/s].
  | iray | Ray tracing model switch (not used).
  | freq | Frequency of the signal [Hz]. Allowed range: >0.

Target const & EECFI::Target::operator= | ( | Target const & | target | ) |

Operator =.

Parameters:

  | target | Target object to be copied.

Returns:
  Target object copy of the input object; the new object is completely independent from the input one.

References EECFI::CfiError::addMsg(), and EECFI::CfiClass::throwWarn.

SatId EECFI::Target::satId | ( |  | ) | const

Return satellite id.

Returns:
  Satellite id.

void EECFI::Target::targetAltitude | ( | const SatId & | satId,
|  | long | deriv,
|  | double | losAz,
|  | double | geodAlt,
|  | double | losAzRate,
|  | long | iray,
|  | double | freq |
| ) |  |  | throw (CfiError)

It computes the location of the tangent point over the Earth that is located on a surface at a certain geodetic altitude over the Earth and that is on a line of sight that forms a certain azimuth angle in the selected Attitude Frame.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | losAz | Azimuth of the LOS (Attitude frame) [deg]. Allowed range: >=0; <360.
  | geodAlt | Geodetic altitude over the Earth [m]. Allowed range: >=-bWGS.
  | losAzRate | Azimuth rate of the LOS (Attitude frame) [deg/s].
  | iray | Ray tracing model switch (not used).
  | freq | Frequency of the signal [Hz]. Allowed range: >0.

void EECFI::Target::targetDRS | ( | const SatId & | satId,
|  | long | deriv,
|  | double | drsPos[3],
|  | double | drsVel[3] |
| ) |  |  | throw (CfiError)

It computes the most relevant observation parameters of the link between the satellite and a Data Relay Satellite. This method is obsolete and will be removed in future versions of the CFI.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | drsPos | DRS position vector (Earth Fixed CS) [m].
  | drsVel | DRS velocity vector (Earth Fixed CS) [m/s].

void EECFI::Target::targetGeneric | ( | const SatId & | satId,
|  | long | deriv,
|  | double | targPos[3],
|  | double | targVel[3],
|  | double | targAcc[3] |
| ) |  |  | throw (CfiError)

It allows the user to provide the target location (position and velocity) and later calculate extra results from it.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | targPos | Target position vector (Earth Fixed CS) [m].
  | targVel | Target velocity vector (Earth Fixed CS) [m/s].
  | targAcc | Target acceleration vector (Earth Fixed CS) [m/s2].

void EECFI::Target::targetGroundRange | ( | const SatId & | satId,
|  | long | deriv,
|  | double | losAz,
|  | double | losEl,
|  | double | geodAlt,
|  | double | distance,
|  | double | losAzRate,
|  | double | losElRate |
| ) |  |  | throw (CfiError)

It computes the location of a point that is placed on a surface at a certain geodetic altitude over the Earth, that lays on the plane defined by the satellite position, the nadir and a reference point.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | losAz | Azimuth of the LOS (Attitude frame) [deg]. Allowed range: >=0; <360.
  | losEl | Elevation of the LOS (Attitude frame) [deg]. Allowed range: >=-90; <=90.
  | geodAlt | Geodetic altitude over the Earth [m]. Allowed range: >=-bWGS.
  | distance | Distance or ground range to the reference point, positive from nadir in the azimuth direction (Earth Fixed CS) [m].
  | losAzRate | Azimuth rate of the LOS (Attitude frame) [deg/s].
  | losElRate | Elevation rate of the LOS (Attitude frame) [deg/s].

void EECFI::Target::targetIncidenceAngle | ( | const SatId & | satId,
|  | long | deriv,
|  | double | losAz,
|  | double | incidenceAngle,
|  | double | geodAlt,
|  | double | losAzRate |
| ) |  |  | throw (CfiError)

It computes the location of a point that is placed on a surface at a certain geodetic altitude over the Earth and that is seen from the satellite on a line of sight that forms a certain azimuth angle in the selected Attitude Frame and that intersects that surface with a certain incidence angle.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | losAz | Azimuth of the LOS (Attitude frame) [deg]. Allowed range: >=0; <360.
  | incidenceAngle | Incidence angle of the LOS [deg]. Allowed range: >=0; <=90.
  | geodAlt | Geodetic altitude over the Earth [m]. Allowed range: >=-bWGS.
  | losAzRate | Azimuth rate of the LOS (Attitude frame) [deg/s].

void EECFI::Target::targetInter | ( | const SatId & | satId,
|  | long | deriv,
|  | long | interFlag,
|  | double | losAz,
|  | double | losEl,
|  | double | geodAlt,
|  | double | losAzRate,
|  | double | losElRate,
|  | long | iray,
|  | double | freq |
| ) |  |  | throw (CfiError)

Compute the first or the second intersection point of the line of sight from the satellite with a surface located at a certanin geodetic altitude over the Earth.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | interFlag | Flag for first or second intersection point selection (XPCFI_INTER_1ST or XPCFI_INTER_2ND).
  | losAz | Azimuth of the LOS (Attitude frame) [deg]. Allowed range: >=0; <360.
  | losEl | Elevation of the LOS (Attitude frame) [deg]. Allowed range: >=-90; <=90.
  | geodAlt | Geodetic altitude over the Earth [m]. Allowed range: >=-bWGS.
  | losAzRate | Azimuth rate of the LOS (Attitude frame) [deg/s].
  | losElRate | Elevation rate of the LOS (Attitude frame) [deg/s].
  | iray | Ray tracing model switch (not used).
  | freq | Frequency of the signal [Hz]. Allowed range: >0.

void EECFI::Target::targetListInter | ( | const SatId & | satId,
|  | long | deriv,
|  | long | interFlag,
|  | const InstrumentData & | instrData,
|  | double | geodAlt,
|  | TargetOutput & | targOut |
| ) |  |  | throw (CfiError)

Compute the first or the second intersection point of the line of sight from the satellite with a surface located at a certanin geodetic altitude over the Earth for a set of azimuth/elevation points.

The sets of azimuth and elevation points can be defined in 3 different ways:

- A list of azimuth and elevation pairs.
- A strip of lines of sight, with a fixed azimuth and elevation angles changing with a given step.
- A grid of lines of sight, with both azimuth and elevation angles changing with a given step.

For each pair a user target is computed. The corresponding user target number to be used in extra computation functions is:

- In case of a list, the index of the list.
- In case of a strip: being n_el the number of elevation values (note that minimum and maximum elevation values are always included in the list):
  n_el=TRUNC((max_elevation-min_elevation)/step_elevation+1)
  The target number is computed in increasing elevation order, from lower to upper elevation:
  - For 0 <= i < n_el-1: target number i corresponds to pair (azimuth, min_elevation + i*step_elevation).
  - For i = n_el-1: target number n_el-1 corresponds to pair (azimuth, max_elevation).
- In case of a grid: being n_el the number of elevation values (note that minimum and maximum elevation values are always included in the list):
  n_el=TRUNC((max_elevation-min_elevation)/step_elevation+1)
  being n_az the number of azimuth values (note that minimum and maximum azimuth values are always included in the list):
  n_az=TRUNC((max_azimuth-min_azimuth)/step_azimuth+1)
  The target number is computed by increasing azimuth and elevation order: from minimum azimuth to maximum azimuth and, for every azimuth value, from minimum elevation to maximum elevation. That is:
  - For 0 <= i < n_el-1: target number i corresponds to pair (min_azimuth, min_elevation + i*step_elevation).
  - For i = n_el-1: target number n_el-1 corresponds to pair (min_azimuth, max_elevation).
  - For n_el <= i < 2*n_el-1 target number i corresponds to pair (min_azimuth + step_azimuth, min_elevation + i*step_elevation).
  ...
  (for 0 <= j < n_az-1 and defining k = i-j*n_el )
  - For j*n_el <= i < (j+1)*n_el-1 target number i corresponds to pair (min_azimuth + j*step_azimuth, min_elevation + k*step_elevation).
  - For i = (j+1)*n_el-1 target number i corresponds to pair (min_azimuth + j*step_azimuth, max_elevation ).
  (for j = n_az-1 and defining k=i-(n_az-1)*n_el)
  - For (n_az-1)*n_el <= i < n_az*n_el-1: target number i corresponds to pair (max_azimuth , min_elevation + k*step_elevation ).
  - For i = n_az*n_el-1 target number i corresponds to pair (max_azimuth , max_elevation)
  Please note the following limitations that will be removed in future releases:
  - The maximum number of intersections with the ellipsoid that can be computed is 30. If this value is exceeded an error is raised.
  - n_az shall be equal to n_el

Parameters:

  | satId | Satellite id.
  | att | Attitude Id.
  | atmos | Atmos Id.
  | demId | DEM id.
  | deriv | Derivative order (DerivPointingEnum).
  | interFlag | Flag for first or second intersection point selection (XPCFI_INTER_1ST or XPCFI_INTER_2ND).
  | geodAlt | Geodetic altitude over the Earth [m]. Allowed range: >=-bWGS.
  | targOut | [OUTPUT] Target output.

References EECFI::CfiError::addMsg().

void EECFI::Target::targetRange | ( | const SatId & | satId,
|  | long | deriv,
|  | double | losAz,
|  | double | range,
|  | double | geodAlt,
|  | double | losAzRate,
|  | double | rangeRate |
| ) |  |  | throw (CfiError)

It computes the location of a point that is placed on a surface at a certain geodetic altitude over the Earth, that is seen from the satellite on a line of sight that forms a certain azimuth angle in the selected Attitude Frame, and that is at a certain range or slant-range from the satellite.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | losAz | Azimuth of the LOS (Attitude frame) [deg]. Allowed range: >=0; <360.
  | range | Range to the satellite (Earth Fixed CS) [m]. Allowed range: >0.
  | geodAlt | Geodetic altitude over the Earth [m]. Allowed range: >=-bWGS.
  | losAzRate | Azimuth rate of the LOS (Attitude frame) [deg/s].
  | rangeRate | Range rate to the satellite (Earth Fixed CS) [m/s].

void EECFI::Target::targetRangeRate | ( | const SatId & | satId,
|  | long | deriv,
|  | double | efRangeRate,
|  | double | range,
|  | double | geodAlt,
|  | double | efRangeRateRate,
|  | double | rangeRate |
| ) |  |  | throw (CfiError)

It computes the location of a point that is placed on a surface at a certain geodetic altitude over the Earth, that is at a certain range from the satellite, and whose associatedEarth-fixed target has a certain range-rate value.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | efRangeRate | Range rate of the related Earth-Fixed target (Earth Fixed CS) [m/s].
  | range | Range to the satellite (Earth Fixed CS) [m]. Allowed range: >0.
  | geodAlt | Geodetic altitude over the Earth [m]. Allowed range: >=-bWGS.
  | efRangeRateRate | Range rate rate of the related Earth-Fixed target (Earth Fixed CS) [m/s2].
  | rangeRate | Range rate to the satellite (Earth Fixed CS) [m/s].

void EECFI::Target::targetReflected | ( | const SatId & | satId,
|  | long | deriv,
|  | double | geodAlt,
|  | double | deflectionNorth,
|  | double | deflectionEast,
|  | long | sourceType,
|  | vector< double > & | sourceParam |
| ) |  |  | throw (CfiError)

It allows the user to compute, from S/C position and attitude, and emitting source position, the point of reflection from the source towards the SC at a certain geodetic altitude.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | geodAlt | Geodetic altitude (Earth Fixed CS) [deg]. Allowed range: >=-90; <=90.
  | deflectionNorth | North-South component of the vertical deflection [deg]. Allowed range: >=-90; <=90.
  | deflectionEast | East-West component of the vertical deflection [deg]. Allowed range: >=-90; <=90.
  | sourceType | Type of the source (SourceTypeEnum).
  | sourceParam | Vector with parameters (depends on sourceType). if source_type is XPCFI_SRC_STAR is selected, source_param = [ra (deg), dec (deg), parallax, 0.0, 0.0, 0.0], i.e. star coordinates in BM2000 CS. if source_type is XPCFI_SOURCE_GENERIC source_param = [x, y, z, vx,vy,vz] position and velocity in EF else dummy values. .

void EECFI::Target::targetSc | ( | const SatId & | satId1,
|  | const SatId & | satId2,
|  | const Attitude & | att2,
|  | long | deriv |
| ) |  |  | throw (CfiError)

It computes the pointing from one satellite to another satellite.

Parameters:

  | satId1 | Satellite id of source satellite.
  | satId2 | Satellite id of target satellite.
  | att2 | Attitude id of target satellite.
  | deriv | Derivative order (DerivPointingEnum).

void EECFI::Target::targetStar | ( | const SatId & | satId,
|  | long | deriv,
|  | double | starRa,
|  | double | starDec,
|  | double | starRaRate,
|  | double | starDecRate,
|  | long | iray,
|  | double | freq |
| ) |  |  | throw (CfiError)

It computes the location of the tangent point over the Earth that is located on the line of sight that points to a star defined by its right ascension and declination coordinates.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | starRa | Right ascension of the star (True of Date CS) [deg]. Allowed range: >=0; <360.
  | starDec | Declination of the star (True of Date CS) [deg]. Allowed range: >=-90; <=90.
  | starRaRate | Right ascension of the star rate (True of Date CS) [deg/s].
  | starDecRate | Declination of the star rate (True of Date CS) [deg/s].
  | iray | Ray tracing model switch (not used).
  | freq | Frequency of the signal [Hz]. Allowed range: >0.

void EECFI::Target::targetStation | ( | const SatId & | satId,
|  | long | deriv,
|  | double | geocLong,
|  | double | geodLat,
|  | double | geodAlt,
|  | double | minLinkEl |
| ) |  |  | throw (CfiError)

It computes the most relevant observation parameters of the link between the satellite and a ground station.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | geocLong | GS geocentric longitude (Earth Fixed CS) [deg]. Allowed range: >=0; <360.
  | geodLat | GS geodetic latitude (Earth Fixed CS) [deg]. Allowed range: >=-90; <=90.
  | geodAlt | GS Geodetic altitude (Earth Fixed CS) [m]. Allowed range: >=-bWGS.
  | minLinkEl | GS minimum link elevation (Topocentric CS) [deg]. Allowed range: >=-90; <=90.

void EECFI::Target::targetTangent | ( | const SatId & | satId,
|  | long | deriv,
|  | double | losAz,
|  | double | losEl,
|  | double | losAzRate,
|  | double | losElRate,
|  | long | iray,
|  | double | freq |
| ) |  |  | throw (CfiError)

It computes the location of the tangent point over the Earth that is located on the line of sight defined by an elevation and azimuth angles expressed in the selected Attitude Frame.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | losAz | Azimuth of the LOS (Attitude frame) [deg]. Allowed range: >=0; <360.
  | losEl | Elevation of the LOS (Attitude frame) [deg]. Allowed range: >=-90; <=90.
  | losAzRate | Azimuth rate of the LOS (Attitude frame) [deg/s].
  | losElRate | Elevation rate of the LOS (Attitude frame) [deg/s].
  | iray | Ray tracing model switch (not used).
  | freq | Frequency of the signal [Hz]. Allowed range: >0.

void EECFI::Target::targetTangentMoon | ( | const SatId & | satId,
|  | long | deriv,
|  | long | iray,
|  | double | freq |
| ) |  |  | throw (CfiError)

It computes the location of the tangent point over the Earth that is located on the line of sight that points to the Moon.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | iray | Ray tracing model switch (not used).
  | freq | Frequency of the signal [Hz]. Allowed range: >0.

void EECFI::Target::targetTangentSun | ( | const SatId & | satId,
|  | long | deriv,
|  | long | iray,
|  | double | freq |
| ) |  |  | throw (CfiError)

It computes the location of the tangent point over the Earth that is located on the line of sight that points to the Sun.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | iray | Ray tracing model switch (not used).
  | freq | Frequency of the signal [Hz]. Allowed range: >0.

void EECFI::Target::targetTravelTime | ( | const SatId & | satId,
|  | long | deriv,
|  | double | losAz,
|  | double | losEl,
|  | double | travelTime,
|  | double | losAzRate,
|  | double | losElRate,
|  | double | travelTimeRate,
|  | long | iray,
|  | double | freq |
| ) |  |  | throw (CfiError)

It computes the point of the line or sight from the satellite at a given travel time along the line of sight.

Parameters:

  | satId | Satellite id.
  | deriv | Derivative order (DerivPointingEnum).
  | losAz | Azimuth of the LOS (Attitude frame) [deg]. Allowed range: >=0; <360.
  | losEl | Elevation of the LOS (Attitude frame) [deg]. Allowed range: >=-90; <=90.
  | travelTime | Travel time along the (curved) line of sight [s]. Allowed range: >0.
  | losAzRate | Azimuth rate of the LOS (Attitude frame) [deg/s].
  | losElRate | Elevation rate of the LOS (Attitude frame) [deg/s].
  | travelTimeRate | Travel time rate along the (curved) line of sight [s/s].
  | iray | Ray tracing model switch (not used).
  | freq | Frequency of the signal [Hz]. Allowed range: >0.

## Member Data Documentation

long EECFI::Target::numLosTarget

Number of Line Of Sight target calculated.

long EECFI::Target::numUserTarget

Number of user defined targer calculated.