public class Rugged extends Object
RuggedBuilder
Modifier and Type | Method and Description |
---|---|
AbsoluteDate |
dateLocation(String sensorName,
double latitude,
double longitude,
int minLine,
int maxLine)
Find the date at which sensor sees a ground point.
|
AbsoluteDate |
dateLocation(String sensorName,
GeodeticPoint point,
int minLine,
int maxLine)
Find the date at which sensor sees a ground point.
|
GeodeticPoint |
directLocation(AbsoluteDate date,
Vector3D sensorPosition,
Vector3D los)
Direct location of a single line-of-sight.
|
GeodeticPoint[] |
directLocation(String sensorName,
double lineNumber)
Direct location of a sensor line.
|
double[] |
distanceBetweenLOS(LineSensor sensorA,
AbsoluteDate dateA,
double pixelA,
SpacecraftToObservedBody scToBodyA,
LineSensor sensorB,
AbsoluteDate dateB,
double pixelB)
Compute distances between two line sensors.
|
<T extends Derivative<T>> |
distanceBetweenLOSderivatives(LineSensor sensorA,
AbsoluteDate dateA,
double pixelA,
SpacecraftToObservedBody scToBodyA,
LineSensor sensorB,
AbsoluteDate dateB,
double pixelB,
DerivativeGenerator<T> generator)
Compute distances between two line sensors with derivatives.
|
IntersectionAlgorithm |
getAlgorithm()
Get the DEM intersection algorithm.
|
AlgorithmId |
getAlgorithmId()
Get the DEM intersection algorithm identifier.
|
Transform |
getBodyToInertial(AbsoluteDate date)
Get transform from observed body frame to inertial frame.
|
ExtendedEllipsoid |
getEllipsoid()
Get the observed body ellipsoid.
|
Transform |
getInertialToBody(AbsoluteDate date)
Get transform from inertial frame to observed body frame.
|
LineSensor |
getLineSensor(String sensorName)
Get a sensor.
|
Collection<LineSensor> |
getLineSensors()
Get the line sensors.
|
AbsoluteDate |
getMaxDate()
Get the end of search time span.
|
AbsoluteDate |
getMinDate()
Get the start of search time span.
|
String |
getName()
Get the Rugged name.
|
AtmosphericRefraction |
getRefractionCorrection()
Get the atmospheric refraction model.
|
SpacecraftToObservedBody |
getScToBody()
Get converter between spacecraft and body.
|
Transform |
getScToInertial(AbsoluteDate date)
Get transform from spacecraft to inertial frame.
|
SensorPixel |
inverseLocation(String sensorName,
double latitude,
double longitude,
int minLine,
int maxLine)
Inverse location of a ground point.
|
SensorPixel |
inverseLocation(String sensorName,
GeodeticPoint point,
int minLine,
int maxLine)
Inverse location of a point.
|
<T extends Derivative<T>> |
inverseLocationDerivatives(String sensorName,
GeodeticPoint point,
int minLine,
int maxLine,
DerivativeGenerator<T> generator)
Inverse location of a point with derivatives.
|
boolean |
isAberrationOfLightCorrected()
Get flag for aberration of light correction.
|
boolean |
isInRange(AbsoluteDate date)
Check if a date is in the supported range.
|
boolean |
isLightTimeCorrected()
Get flag for light time correction.
|
public String getName()
public IntersectionAlgorithm getAlgorithm()
public AlgorithmId getAlgorithmId()
public boolean isLightTimeCorrected()
public boolean isAberrationOfLightCorrected()
public AtmosphericRefraction getRefractionCorrection()
public Collection<LineSensor> getLineSensors()
public AbsoluteDate getMinDate()
public AbsoluteDate getMaxDate()
public boolean isInRange(AbsoluteDate date)
The support range is given by the minDate
and
maxDate
construction parameters, with an overshootTolerance
margin accepted (i.e. a date slightly
before minDate
or slightly after maxDate
will be considered in range if the overshoot does not exceed
the tolerance set at construction).
date
- date to checkpublic ExtendedEllipsoid getEllipsoid()
public GeodeticPoint[] directLocation(String sensorName, double lineNumber)
sensorName
- name of the line sensorlineNumber
- number of the line to localize on groundpublic GeodeticPoint directLocation(AbsoluteDate date, Vector3D sensorPosition, Vector3D los)
date
- date of the locationsensorPosition
- sensor position in spacecraft frame. For simplicity, due to the size of sensor,
we consider each pixel to be at sensor positionlos
- normalized line-of-sight in spacecraft framepublic AbsoluteDate dateLocation(String sensorName, double latitude, double longitude, int minLine, int maxLine)
This method is a partial inverse location
focusing only on date.
The point is given only by its latitude and longitude, the elevation is computed from the Digital Elevation Model.
Note that for each sensor name, the minLine
and maxLine
settings
are cached, because they induce costly frames computation. So these settings
should not be tuned very finely and changed at each call, but should rather be
a few thousand lines wide and refreshed only when needed. If for example an
inverse location is roughly estimated to occur near line 53764 (for example
using RoughVisibilityEstimator
), minLine
and maxLine
could be set for example to 50000 and 60000, which would
be OK also if next line inverse location is expected to occur near line 53780,
and next one ... The setting could be changed for example to 55000 and 65000 when
an inverse location is expected to occur after 55750. Of course, these values
are only an example and should be adjusted depending on mission needs.
sensorName
- name of the line sensorlatitude
- ground point latitude (rad)longitude
- ground point longitude (rad)minLine
- minimum line numbermaxLine
- maximum line numberinverseLocation(String, double, double, int, int)
,
RoughVisibilityEstimator
public AbsoluteDate dateLocation(String sensorName, GeodeticPoint point, int minLine, int maxLine)
This method is a partial inverse location
focusing only on date.
Note that for each sensor name, the minLine
and maxLine
settings
are cached, because they induce costly frames computation. So these settings
should not be tuned very finely and changed at each call, but should rather be
a few thousand lines wide and refreshed only when needed. If for example an
inverse location is roughly estimated to occur near line 53764 (for example
using RoughVisibilityEstimator
), minLine
and maxLine
could be set for example to 50000 and 60000, which would
be OK also if next line inverse location is expected to occur near line 53780,
and next one ... The setting could be changed for example to 55000 and 65000 when
an inverse location is expected to occur after 55750. Of course, these values
are only an example and should be adjusted depending on mission needs.
sensorName
- name of the line sensorpoint
- point to localizeminLine
- minimum line numbermaxLine
- maximum line numberinverseLocation(String, GeodeticPoint, int, int)
,
RoughVisibilityEstimator
public SensorPixel inverseLocation(String sensorName, double latitude, double longitude, int minLine, int maxLine)
The point is given only by its latitude and longitude, the elevation is computed from the Digital Elevation Model.
Note that for each sensor name, the minLine
and maxLine
settings
are cached, because they induce costly frames computation. So these settings
should not be tuned very finely and changed at each call, but should rather be
a few thousand lines wide and refreshed only when needed. If for example an
inverse location is roughly estimated to occur near line 53764 (for example
using RoughVisibilityEstimator
), minLine
and maxLine
could be set for example to 50000 and 60000, which would
be OK also if next line inverse location is expected to occur near line 53780,
and next one ... The setting could be changed for example to 55000 and 65000 when
an inverse location is expected to occur after 55750. Of course, these values
are only an example and should be adjusted depending on mission needs.
sensorName
- name of the line sensorlatitude
- ground point latitude (rad)longitude
- ground point longitude (rad)minLine
- minimum line numbermaxLine
- maximum line numberRoughVisibilityEstimator
public SensorPixel inverseLocation(String sensorName, GeodeticPoint point, int minLine, int maxLine)
Note that for each sensor name, the minLine
and maxLine
settings
are cached, because they induce costly frames computation. So these settings
should not be tuned very finely and changed at each call, but should rather be
a few thousand lines wide and refreshed only when needed. If for example an
inverse location is roughly estimated to occur near line 53764 (for example
using RoughVisibilityEstimator
), minLine
and maxLine
could be set for example to 50000 and 60000, which would
be OK also if next line inverse location is expected to occur near line 53780,
and next one ... The setting could be changed for example to 55000 and 65000 when
an inverse location is expected to occur after 55750. Of course, these values
are only an example and should be adjusted depending on mission needs.
sensorName
- name of the line sensorpoint
- geodetic point to localizeminLine
- minimum line number where the search will be performedmaxLine
- maximum line number where the search will be performeddateLocation(String, GeodeticPoint, int, int)
,
RoughVisibilityEstimator
public double[] distanceBetweenLOS(LineSensor sensorA, AbsoluteDate dateA, double pixelA, SpacecraftToObservedBody scToBodyA, LineSensor sensorB, AbsoluteDate dateB, double pixelB)
sensorA
- line sensor AdateA
- current date for sensor ApixelA
- pixel index for sensor AscToBodyA
- spacecraft to body transform for sensor AsensorB
- line sensor BdateB
- current date for sensor BpixelB
- pixel index for sensor Bpublic <T extends Derivative<T>> T[] distanceBetweenLOSderivatives(LineSensor sensorA, AbsoluteDate dateA, double pixelA, SpacecraftToObservedBody scToBodyA, LineSensor sensorB, AbsoluteDate dateB, double pixelB, DerivativeGenerator<T> generator)
T
- derivative typesensorA
- line sensor AdateA
- current date for sensor ApixelA
- pixel index for sensor AscToBodyA
- spacecraftToBody transform for sensor AsensorB
- line sensor BdateB
- current date for sensor BpixelB
- pixel index for sensor Bgenerator
- generator to use for building DerivativeStructure
instancesdistanceBetweenLOS(LineSensor, AbsoluteDate, double, SpacecraftToObservedBody, LineSensor, AbsoluteDate, double)
public <T extends Derivative<T>> T[] inverseLocationDerivatives(String sensorName, GeodeticPoint point, int minLine, int maxLine, DerivativeGenerator<T> generator)
T
- derivative typesensorName
- name of the line sensorpoint
- point to localizeminLine
- minimum line numbermaxLine
- maximum line numbergenerator
- generator to use for building Derivative
instancesinverseLocation(String, GeodeticPoint, int, int)
public Transform getScToInertial(AbsoluteDate date)
date
- date of the transformpublic Transform getInertialToBody(AbsoluteDate date)
date
- date of the transformpublic Transform getBodyToInertial(AbsoluteDate date)
date
- date of the transformpublic LineSensor getLineSensor(String sensorName)
sensorName
- sensor namepublic SpacecraftToObservedBody getScToBody()
Copyright © 2014-2023 CS GROUP. All rights reserved.