Earth Observation Mission CFI Software Pointing Software User Manual |
Class for target calculations. More...
Public Member Functions | |
Target (const Attitude &attitude, const DemId &demId, const AtmosId &atmosId) | |
Class constructor. | |
~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. | |
TargetIdData * | getData () const |
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. |
Class for target calculations.
Class constructor.
EECFI::Target::~Target | ( | ) |
Class destructor.
References EECFI::CfiId::status(), and EECFI::CfiClass::throwWarn.
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.
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.
void EECFI::Target::extraListAux | ( | long | choice, | |
long | targetType, | |||
TargetExtraResultsList & | list | |||
) | const |
It computes auxiliary parameters for the targets computed with targetList methods.
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.
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.
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.
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.
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]).
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.
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.
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.
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.
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]).
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.
TargetIdData * EECFI::Target::getData | ( | ) | const |
It gets target parameters.
The returned array has one element for every user target, and every element has the list LOS targets corresponding to the user target. The array is allocated by getData function, and must be freed by user with delete[].
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.
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.
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.
Operator =.
target | Target object to be copied. |
References EECFI::CfiError::addMsg(), and EECFI::CfiClass::throwWarn.
SatId EECFI::Target::satId | ( | ) | const |
Return 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.
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::AtmosId::getId(), EECFI::Attitude::getId(), 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.
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::Attitude::getId(), 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.
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::Attitude::getId(), 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.
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::Attitude::getId(), 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.
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::AtmosId::getId(), EECFI::Attitude::getId(), 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: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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::AtmosId::getId(), EECFI::Attitude::getId(), 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).
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::Attitude::getId(), 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.
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::Attitude::getId(), 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.
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.
satId1 | Satellite id of source satellite. | |
satId2 | Satellite id of target satellite. | |
att2 | Attitude id of target satellite. | |
deriv | Derivative order (DerivPointingEnum). |
References EECFI::GenericId::ee_id, EECFI::Attitude::getId(), 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.
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::AtmosId::getId(), EECFI::Attitude::getId(), 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.
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::Attitude::getId(), 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.
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::AtmosId::getId(), EECFI::Attitude::getId(), 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.
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::AtmosId::getId(), EECFI::Attitude::getId(), 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]).
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::AtmosId::getId(), EECFI::Attitude::getId(), 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.
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::GenericId::ee_id, EECFI::DemId::getId(), EECFI::AtmosId::getId(), EECFI::Attitude::getId(), numLosTarget, numUserTarget, and EECFI::CfiClass::throwWarn.
Number of Line Of Sight target calculated.
Referenced by targetAltitude(), targetGeneric(), targetGroundRange(), targetIncidenceAngle(), targetInter(), targetRange(), targetRangeRate(), targetSc(), targetStar(), targetStation(), targetTangent(), targetTangentMoon(), targetTangentSun(), and targetTravelTime().
Number of user defined targer calculated.
Referenced by targetAltitude(), targetGeneric(), targetGroundRange(), targetIncidenceAngle(), targetInter(), targetRange(), targetRangeRate(), targetSc(), targetStar(), targetStation(), targetTangent(), targetTangentMoon(), targetTangentSun(), and targetTravelTime().