DEIMOS
Earth Observation Mission CFI Software
Pointing Software User Manual
ESA

EECFI::Target Class Reference

Class for target calculations. More...

Inheritance diagram for EECFI::Target:
EECFI::CfiId EECFI::CfiClass

List of all members.

Public Member Functions

 Target (const Target &other)
 Target (const Attitude &attitude, const DemId &demId, const AtmosId &atmosId)
 Class constructor.
virtual ~Target () EXCEPT
 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)
 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)
 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)
 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)
 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)
 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)
 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)
 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)
 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)
 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)
 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)
 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)
 It computes the most relevant observation parameters of the link between the satellite and a ground station.
void targetGeneric (const SatId &satId, long deriv, const double targPos[3], const double targVel[3], const double targAcc[3])
 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, const std::vector< double > &sourceParam)
 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)
 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, const std::vector< double > &geodAlt, double losAzRate, double losElRate, long iray, double freq)
 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, const std::vector< double > &travelTime, double losAzRate, double losElRate, double travelTimeRate, long iray, double freq)
 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)
 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, std::vector< double > &vectorResult, std::vector< double > &vectorResultRate, std::vector< double > &vectorResultRateRate) const
 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, std::vector< double > &mainResult, std::vector< double > &mainResultRate, std::vector< double > &mainResultRateRate) const
 It computes the extra parameter for the target(s) in input data structure.
void extraAux (long choice, long targetType, long targetNumber, std::vector< double > &extraResult, std::vector< double > &extraResultRate, std::vector< double > &extraResultRateRate) const
 It computes auxiliary parameters for the target in input data structure.
void extraTargetToSun (long choice, long targetType, long targetNumber, long iray, double freq, std::vector< double > &sunResult, std::vector< double > &sunResultRate, std::vector< double > &sunResultRateRate) const
 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, std::vector< double > &moonResult, std::vector< double > &moonResultRate, std::vector< double > &moonResultRateRate) const
 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, std::vector< double > &efResultRate, std::vector< double > &efResultRateRate) const
 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, std::vector< double > &specRefResult, std::vector< double > &specRefResultRate, std::vector< double > &specRefResultRateRate) const
 It calculates the direction of the specular reflection associated to a given target.
void extraListVector (long choice, long targetType, TargetExtraResultsList &list) const
 It provides the following output parameters for targets computed with targetList methods: target position, velocity and acceleration vectors, line of sight direction, range, travel time and their corresponding derivatives.
void extraListMain (long choice, long targetType, TargetExtraResultsList &list) const
 It computes the extra parameter for the targets computed with targetList methods.
void extraListAux (long choice, long targetType, TargetExtraResultsList &list) const
 It computes auxiliary parameters for the targets computed with targetList methods.
void extraListTargetToSun (long choice, long targetType, long iray, double freq, TargetExtraResultsList &list) const
 It computes extra parameters related to the pointing from the targets computed with targetList methods to the sun.
void extraListTargetToMoon (long choice, long targetType, long iray, double freq, TargetExtraResultsList &list) const
 It computes extra parameters related to the pointing from the targets computed with targetList methods to the moon.
void extraListEfTarget (long choice, long targetType, double freq, TargetExtraResultsList &list) const
 It computes the parameter for an Earth fixed target related to the targets computed with targetList methods.
void extraListSpecularReflection (long choice, long targetType, double deflectionNorth, double deflectionEast, TargetExtraResultsList &list) const
 It calculates the direction of the specular reflection associated to the targets computed with targetList methods.
SatId satId () const
 Return satellite id.
TargetIdDatagetData () const
 It gets target parameters.
Targetoperator= (const Target &other)

Public Attributes

long numUserTarget
 Number of user defined target calculated.
long numLosTarget
 Number of Line Of Sight target calculated.

Protected Member Functions

void eraseObject ()
 Erase object and free memory.

Detailed Description

Class for target calculations.


Constructor & Destructor Documentation

EECFI::Target::Target ( const Target other  ) 

Copy constructor.

Parameters:
other The Target to copy from
EECFI::Target::Target ( const Attitude attitude,
const DemId demId,
const AtmosId atmosId 
)

Class constructor.

EECFI::Target::~Target (  )  [virtual]

Class destructor.

References eraseObject().


Member Function Documentation

void EECFI::Target::eraseObject (  )  [protected]

Erase object and free memory.

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

Referenced by operator=(), and ~Target().

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

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

Note on targetNumber when more than one user target is computed: 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].

References EECFI::CfiClass::throwWarn.

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

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

Note on targetNumber when more than one user target is computed: 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.

References EECFI::CfiClass::throwWarn.

void EECFI::Target::extraListAux ( long  choice,
long  targetType,
TargetExtraResultsList list 
) const

It computes auxiliary parameters for the targets computed with targetList methods.

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).
list [OUTPUT]: it contains the results for every target computed with targetList method. For the meaning of every position of output vectors, see method Target::extraAux

References EECFI::TargetListInputInfo::azimuth, EECFI::TargetListInputInfo::azimuthIdx, EECFI::TargetListInputInfo::elevation, EECFI::TargetListInputInfo::elevationIdx, EECFI::TargetListInputInfo::inputType, EECFI::TargetExtraResults::results, EECFI::TargetExtraResults::resultsRate, EECFI::TargetExtraResults::resultsRateRate, EECFI::TargetExtraResults::status, EECFI::TargetInputInfo::targetFunction, EECFI::TargetExtraResults::targetInputInfo, and EECFI::TargetInputInfo::targetListInputInfo.

void EECFI::Target::extraListEfTarget ( long  choice,
long  targetType,
double  freq,
TargetExtraResultsList list 
) const

It computes the parameter for an Earth fixed target related to the targets computed with targetList methods.

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).
freq Frequency of the signal [Hz]. Allowed range: >0.
list [OUTPUT]: it contains the results for every target computed with targetList method. For the meaning of every position of output vectors, see method Target::extraEfTarget. Note: only derivatives are meaningful in this case.

References EECFI::TargetListInputInfo::azimuth, EECFI::TargetListInputInfo::azimuthIdx, EECFI::TargetListInputInfo::elevation, EECFI::TargetListInputInfo::elevationIdx, EECFI::TargetListInputInfo::inputType, EECFI::TargetExtraResults::results, EECFI::TargetExtraResults::resultsRate, EECFI::TargetExtraResults::resultsRateRate, EECFI::TargetExtraResults::status, EECFI::TargetInputInfo::targetFunction, EECFI::TargetExtraResults::targetInputInfo, and EECFI::TargetInputInfo::targetListInputInfo.

void EECFI::Target::extraListMain ( long  choice,
long  targetType,
TargetExtraResultsList list 
) const

It computes the extra parameter for the targets computed with targetList methods.

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).
list [OUTPUT]: it contains the results for every target computed with targetList method. For the meaning of every position of output vectors, see method Target::extraMain

References EECFI::TargetListInputInfo::azimuth, EECFI::TargetListInputInfo::azimuthIdx, EECFI::TargetListInputInfo::elevation, EECFI::TargetListInputInfo::elevationIdx, EECFI::TargetListInputInfo::inputType, EECFI::TargetExtraResults::results, EECFI::TargetExtraResults::resultsRate, EECFI::TargetExtraResults::resultsRateRate, EECFI::TargetExtraResults::status, EECFI::TargetInputInfo::targetFunction, EECFI::TargetExtraResults::targetInputInfo, and EECFI::TargetInputInfo::targetListInputInfo.

void EECFI::Target::extraListSpecularReflection ( long  choice,
long  targetType,
double  deflectionNorth,
double  deflectionEast,
TargetExtraResultsList list 
) const

It calculates the direction of the specular reflection associated to the targets computed with targetList methods.

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.
list [OUTPUT]: it contains the results for every target computed with targetList method. For the meaning of every position of output vectors, see method Target::extraListSpecularReflection.

References EECFI::TargetListInputInfo::azimuth, EECFI::TargetListInputInfo::azimuthIdx, EECFI::TargetListInputInfo::elevation, EECFI::TargetListInputInfo::elevationIdx, EECFI::TargetListInputInfo::inputType, EECFI::TargetExtraResults::results, EECFI::TargetExtraResults::resultsRate, EECFI::TargetExtraResults::resultsRateRate, EECFI::TargetExtraResults::status, EECFI::TargetInputInfo::targetFunction, EECFI::TargetExtraResults::targetInputInfo, and EECFI::TargetInputInfo::targetListInputInfo.

void EECFI::Target::extraListTargetToMoon ( long  choice,
long  targetType,
long  iray,
double  freq,
TargetExtraResultsList list 
) const

It computes extra parameters related to the pointing from the targets computed with targetList methods to the moon.

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).
iray Ray tracing model switch (not used).
freq Frequency of the signal [Hz]. Allowed range: >0.
list [OUTPUT]: it contains the results for every target computed with targetList method. For the meaning of every position of output vectors, see method Target::extraTargetToMoon.

References EECFI::TargetListInputInfo::azimuth, EECFI::TargetListInputInfo::azimuthIdx, EECFI::TargetListInputInfo::elevation, EECFI::TargetListInputInfo::elevationIdx, EECFI::TargetListInputInfo::inputType, EECFI::TargetExtraResults::results, EECFI::TargetExtraResults::resultsRate, EECFI::TargetExtraResults::resultsRateRate, EECFI::TargetExtraResults::status, EECFI::TargetInputInfo::targetFunction, EECFI::TargetExtraResults::targetInputInfo, and EECFI::TargetInputInfo::targetListInputInfo.

void EECFI::Target::extraListTargetToSun ( long  choice,
long  targetType,
long  iray,
double  freq,
TargetExtraResultsList list 
) const

It computes extra parameters related to the pointing from the targets computed with targetList methods to the sun.

Note: it can be internally applied a correction to computations in order to compensate for the travel time of light from the Sun to the Earth and the satellites orbiting it. To activate this compensation, the Sun model in xl_model_id must be initialized with the enum XL_MODEL_SUN_TRAVEL_TIME using the function xl_model_init (see [LIBSUM]).

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).
iray Ray tracing model switch (not used).
freq Frequency of the signal [Hz]. Allowed range: >0.
list [OUTPUT]: it contains the results for every target computed with targetList method. For the meaning of every position of output vectors, see method Target::extraTargetToSun.

References EECFI::TargetListInputInfo::azimuth, EECFI::TargetListInputInfo::azimuthIdx, EECFI::TargetListInputInfo::elevation, EECFI::TargetListInputInfo::elevationIdx, EECFI::TargetListInputInfo::inputType, EECFI::TargetExtraResults::results, EECFI::TargetExtraResults::resultsRate, EECFI::TargetExtraResults::resultsRateRate, EECFI::TargetExtraResults::status, EECFI::TargetInputInfo::targetFunction, EECFI::TargetExtraResults::targetInputInfo, and EECFI::TargetInputInfo::targetListInputInfo.

void EECFI::Target::extraListVector ( long  choice,
long  targetType,
TargetExtraResultsList list 
) const

It provides the following output parameters for targets computed with targetList methods: target position, velocity and acceleration vectors, line of sight direction, range, travel time and their corresponding derivatives.

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).
list [OUTPUT]: it contains the results for every target computed with targetList method. For the meaning of every position of output vectors, see method Target::extraVector.

References EECFI::TargetListInputInfo::azimuth, EECFI::TargetListInputInfo::azimuthIdx, EECFI::TargetListInputInfo::elevation, EECFI::TargetListInputInfo::elevationIdx, EECFI::TargetListInputInfo::inputType, EECFI::TargetExtraResults::results, EECFI::TargetExtraResults::resultsRate, EECFI::TargetExtraResults::resultsRateRate, EECFI::TargetExtraResults::status, EECFI::TargetInputInfo::targetFunction, EECFI::TargetExtraResults::targetInputInfo, and EECFI::TargetInputInfo::targetListInputInfo.

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

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

Note on targetNumber when more than one user target is computed: 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.

References EECFI::CfiClass::throwWarn.

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

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

Note on targetNumber when more than one user target is computed: 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.

References EECFI::CfiClass::throwWarn.

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

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

Note on targetNumber when more than one user target is computed: 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].

References EECFI::CfiClass::throwWarn.

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

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

Note: 1) On targetNumber when more than one user target is computed: 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. 2) It can be internally applied a correction to computations in order to compensate for the travel time of light from the Sun to the Earth and the satellites orbiting it. To activate this compensation, the Sun model in xl_model_id must be initialized with the enum XL_MODEL_SUN_TRAVEL_TIME using the function xl_model_init (see [LIBSUM]).

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

References EECFI::CfiClass::throwWarn.

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

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 when more than one user target is computed: 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.

References EECFI::CfiClass::throwWarn.

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

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.

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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.

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

Target & EECFI::Target::operator= ( const Target other  ) 

Copy assignment operator.

Parameters:
other The Target to copy/assign from

References EECFI::CfiError::addMsg(), eraseObject(), 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 
)

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.

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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 
)

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.

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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. To obtain the extra values for all the targets, the methods Target::extraListXXX can be used. The position of the target in output array or vector of these extra methods has the following criterion (note also that Target::extraXXX functions can also be used to obtain results of only one target with the same target numbering criterion, but Target::extraListXXX are optimized to obtain the results for all the targets):
  • 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(), EECFI::AzimuthElevationList::azElList, EECFI::AzimuthElevationStrip::azimuth, EECFI::InstrumentData::azimuthElevationGrid, EECFI::InstrumentData::azimuthElevationList, EECFI::InstrumentData::azimuthElevationStrip, EECFI::SatId::getSatellite(), EECFI::AzimuthElevationGrid::maxAzimuth, EECFI::AzimuthElevationGrid::maxElevation, EECFI::AzimuthElevationStrip::maxElevation, EECFI::AzimuthElevationGrid::minAzimuth, EECFI::AzimuthElevationGrid::minElevation, EECFI::AzimuthElevationStrip::minElevation, EECFI::TargetOutput::numLosTarget, EECFI::TargetOutput::numUserTarget, EECFI::InstrumentData::signalFrequency, EECFI::AzimuthElevationGrid::stepAzimuth, EECFI::AzimuthElevationGrid::stepElevation, EECFI::AzimuthElevationStrip::stepElevation, EECFI::CfiClass::throwWarn, and EECFI::InstrumentData::type.

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

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.

If the function finds 2 solutions, both are computed and ordered according to the following criterion: the first one will be the one with an elevation closer to 90 degrees (targets will have the same azimuth, equal to input azimuth).

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

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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.

Note: in some limit configurations the function will return a degraded solution (returning also a warning), being 5 milidegrees the maximum difference between the incidence angle and the reflected angle.

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.

.

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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.

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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.

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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.

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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.

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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

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

Note: it can be internally applied a correction to computations in order to compensate for the travel time of light from the Sun to the Earth and the satellites orbiting it. To activate this compensation, the Sun model in xl_model_id must be initialized with the enum XL_MODEL_SUN_TRAVEL_TIME using the function xl_model_init (see [LIBSUM]).

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

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.

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 
)

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.

References EECFI::SatId::getSatellite(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.


Member Data Documentation


Generated on Mon Dec 11 2023 13:28:30 for by doxygen 1.7.1