Class RuggedBuilder
- java.lang.Object
-
- org.orekit.rugged.api.RuggedBuilder
-
public class RuggedBuilder extends Object
Builder forRugged
instances.This class implements the builder pattern to create
Rugged
instances. It does so by using a fluent API in order to clarify reading and allow later extensions with new configuration parameters.A typical use would be:
Rugged rugged = new RuggedBuilder(). setEllipsoid(EllipsoidId.WGS84, BodyRotatingFrameId.ITRF). setAlgorithmID(AlgorithmId.Duvenhage). setDigitalElevationModel(tileUpdater, maxCachedTiles). setTimeSpan(minDate, maxDate, tStep, overshootTolerance). setTrajectory(positionsVelocities, pvInterpolationNumber, pvFilter, quaternions, aInterpolationNumber, aFilter). addLineSensor(sensor1). addLineSensor(sensor2). addLineSensor(sensor3). build();
If a configuration parameter has not been set prior to the call to {]link #build()}, then an exception will be triggered with an explicit error message.
- Author:
- Luc Maisonobe, Guylaine Prat
- See Also:
- Builder pattern (wikipedia), Fluent interface (wikipedia)
-
-
Constructor Summary
Constructors Constructor Description RuggedBuilder()
Create a non-configured builder.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RuggedBuilder
addLineSensor(LineSensor lineSensor)
Set up line sensor model.Rugged
build()
Build aRugged
instance.RuggedBuilder
clearLineSensors()
Remove all line sensors.boolean
getAberrationOfLightCorrection()
Get the aberration of light correction flag.AngularDerivativesFilter
getAFilter()
Get the filter for derivatives from the sample to use in attitude interpolation.int
getAInterpolationNumber()
Get the number of points to use for attitude interpolation.AlgorithmId
getAlgorithm()
Get the algorithm to use for Digital Elevation Model intersection.double
getConstantElevation()
Get the constant elevation over ellipsoid to use withAlgorithmId.CONSTANT_ELEVATION_OVER_ELLIPSOID
.ExtendedEllipsoid
getEllipsoid()
Get the ellipsoid.Frame
getInertialFrame()
Get the inertial frame.boolean
getLightTimeCorrection()
Get the light time correction flag.List<LineSensor>
getLineSensors()
Get all line sensors.int
getMaxCachedTiles()
Get the maximum number of tiles stored in the cache.AbsoluteDate
getMaxDate()
Get the end of search time span.AbsoluteDate
getMinDate()
Get the start of search time span.String
getName()
Get the Rugged name.double
getOvershootTolerance()
Get the tolerance in seconds allowed forgetMinDate()
andgetMaxDate()
overshooting.List<TimeStampedPVCoordinates>
getPositionsVelocities()
Get the satellite position and velocity (m and m/s in inertial frame).CartesianDerivativesFilter
getPVFilter()
Get the filter for derivatives from the sample to use in position/velocity interpolation.int
getPVInterpolationNumber()
Get the number of points to use for position/velocity interpolation.List<TimeStampedAngularCoordinates>
getQuaternions()
Get the satellite quaternions with respect to inertial frame.AtmosphericRefraction
getRefractionCorrection()
Get the atmospheric refraction model.TileUpdater
getTileUpdater()
Get the updater used to load Digital Elevation Model tiles.double
getTStep()
Get the step to use for inertial frame to body frame transforms cache computations.boolean
isOverlappingTiles()
Get the flag telling if the DEM tiles are overlapping.RuggedBuilder
setAberrationOfLightCorrection(boolean newAberrationOfLightCorrection)
Set flag for aberration of light correction.RuggedBuilder
setAlgorithm(AlgorithmId newAlgorithmId)
Set the algorithm to use for Digital Elevation Model intersection.RuggedBuilder
setConstantElevation(double newConstantElevation)
Set the user-provided constant elevation model.RuggedBuilder
setDigitalElevationModel(TileUpdater newTileUpdater, int newMaxCachedTiles)
Set the user-providedtile updater
.RuggedBuilder
setDigitalElevationModel(TileUpdater newTileUpdater, int newMaxCachedTiles, boolean newIsOverlappingTiles)
Set the user-providedtile updater
.RuggedBuilder
setEllipsoid(OneAxisEllipsoid newEllipsoid)
Set the reference ellipsoid.RuggedBuilder
setEllipsoid(EllipsoidId ellipsoidID, BodyRotatingFrameId bodyRotatingFrameID)
Set the reference ellipsoid.RuggedBuilder
setLightTimeCorrection(boolean newLightTimeCorrection)
Set flag for light time correction.void
setName(String name)
Set the Rugged name.void
setOverlappingTiles(boolean newIsOverlappingTiles)
Set the DEM overlapping tiles flag.RuggedBuilder
setRefractionCorrection(AtmosphericRefraction newAtmosphericRefraction)
Set atmospheric refraction for line of sight correction.RuggedBuilder
setTimeSpan(AbsoluteDate newMinDate, AbsoluteDate newMaxDate, double newTstep, double newOvershootTolerance)
Set the time span to be covered for direct and inverse location calls.RuggedBuilder
setTrajectory(double interpolationStep, int interpolationNumber, CartesianDerivativesFilter pvFilter, AngularDerivativesFilter aFilter, Propagator propagator)
Set the spacecraft trajectory.RuggedBuilder
setTrajectory(Frame inertialFrame, List<TimeStampedPVCoordinates> positionsVelocities, int pvInterpolationNumber, CartesianDerivativesFilter pvFilter, List<TimeStampedAngularCoordinates> quaternions, int aInterpolationNumber, AngularDerivativesFilter aFilter)
Set the spacecraft trajectory.RuggedBuilder
setTrajectory(InertialFrameId inertialFrameId, List<TimeStampedPVCoordinates> positionsVelocities, int pvInterpolationNumber, CartesianDerivativesFilter pvFilter, List<TimeStampedAngularCoordinates> quaternions, int aInterpolationNumber, AngularDerivativesFilter aFilter)
Set the spacecraft trajectory.RuggedBuilder
setTrajectoryAndTimeSpan(InputStream storageStream)
Set both the spacecraft trajectory and the time span.void
storeInterpolator(OutputStream storageStream)
Store frames transform interpolator.
-
-
-
Constructor Detail
-
RuggedBuilder
public RuggedBuilder()
Create a non-configured builder.The builder must be configured before calling the
build()
method, otherwise an exception will be triggered at build time.
-
-
Method Detail
-
setEllipsoid
public RuggedBuilder setEllipsoid(EllipsoidId ellipsoidID, BodyRotatingFrameId bodyRotatingFrameID)
Set the reference ellipsoid.- Parameters:
ellipsoidID
- reference ellipsoidbodyRotatingFrameID
- body rotating frame identifier from an earlier run and frames mismatch- Returns:
- the builder instance
- See Also:
setEllipsoid(OneAxisEllipsoid)
,getEllipsoid()
-
setEllipsoid
public RuggedBuilder setEllipsoid(OneAxisEllipsoid newEllipsoid)
Set the reference ellipsoid.- Parameters:
newEllipsoid
- reference ellipsoid- Returns:
- the builder instance
- See Also:
setEllipsoid(EllipsoidId, BodyRotatingFrameId)
,getEllipsoid()
-
getEllipsoid
public ExtendedEllipsoid getEllipsoid()
Get the ellipsoid.- Returns:
- the ellipsoid
- See Also:
setEllipsoid(EllipsoidId, BodyRotatingFrameId)
,setEllipsoid(OneAxisEllipsoid)
-
getName
public String getName()
Get the Rugged name.- Returns:
- the Rugged name
- Since:
- 2.0
-
setName
public void setName(String name)
Set the Rugged name.- Parameters:
name
- the Rugged name- Since:
- 2.0
-
setAlgorithm
public RuggedBuilder setAlgorithm(AlgorithmId newAlgorithmId)
Set the algorithm to use for Digital Elevation Model intersection.Note that some algorithms require specific other methods to be called too:
DUVENHAGE
,DUVENHAGE_FLAT_BODY
andBASIC_SLOW_EXHAUSTIVE_SCAN_FOR_TESTS_ONLY
all requiresetDigitalElevationModel
orsetDigitalElevationModel
to be called,CONSTANT_ELEVATION_OVER_ELLIPSOID
requiressetConstantElevation
to be called,IGNORE_DEM_USE_ELLIPSOID
does not require any methods tobe called.
- Parameters:
newAlgorithmId
- identifier of algorithm to use for Digital Elevation Model intersection- Returns:
- the builder instance
- See Also:
setDigitalElevationModel(TileUpdater, int, boolean)
,setDigitalElevationModel(TileUpdater, int)
,getAlgorithm()
-
getAlgorithm
public AlgorithmId getAlgorithm()
Get the algorithm to use for Digital Elevation Model intersection.- Returns:
- algorithm to use for Digital Elevation Model intersection
- See Also:
setAlgorithm(AlgorithmId)
-
setDigitalElevationModel
public RuggedBuilder setDigitalElevationModel(TileUpdater newTileUpdater, int newMaxCachedTiles)
Set the user-providedtile updater
.The DEM tiles must be overlapping, otherwise use
setDigitalElevationModel(TileUpdater, int, boolean)
with flag set to false.Note that when the algorithm specified in
setAlgorithm(AlgorithmId)
is eitherCONSTANT_ELEVATION_OVER_ELLIPSOID
orIGNORE_DEM_USE_ELLIPSOID
, then this method becomes irrelevant and can either be not called at all, or it can be called with an updater set tonull
. For all other algorithms, the updater must be properly configured.- Parameters:
newTileUpdater
- updater used to load Digital Elevation Model tilesnewMaxCachedTiles
- maximum number of tiles stored in the cache- Returns:
- the builder instance
- See Also:
setDigitalElevationModel(TileUpdater, int, boolean)
,setAlgorithm(AlgorithmId)
,getTileUpdater()
,getMaxCachedTiles()
-
setDigitalElevationModel
public RuggedBuilder setDigitalElevationModel(TileUpdater newTileUpdater, int newMaxCachedTiles, boolean newIsOverlappingTiles)
Set the user-providedtile updater
.Note that when the algorithm specified in
setAlgorithm(AlgorithmId)
is eitherCONSTANT_ELEVATION_OVER_ELLIPSOID
orIGNORE_DEM_USE_ELLIPSOID
, then this method becomes irrelevant and can either be not called at all, or it can be called with an updater set tonull
. For all other algorithms, the updater must be properly configured.- Parameters:
newTileUpdater
- updater used to load Digital Elevation Model tilesnewMaxCachedTiles
- maximum number of tiles stored in the cachenewIsOverlappingTiles
- flag to tell if the DEM tiles are overlapping: true if overlapping; false otherwise.- Returns:
- the builder instance
- Since:
- 4.0
- See Also:
setDigitalElevationModel(TileUpdater, int)
,setAlgorithm(AlgorithmId)
,getTileUpdater()
,getMaxCachedTiles()
,isOverlappingTiles()
-
getTileUpdater
public TileUpdater getTileUpdater()
Get the updater used to load Digital Elevation Model tiles.- Returns:
- updater used to load Digital Elevation Model tiles
- See Also:
setDigitalElevationModel(TileUpdater, int, boolean)
,setDigitalElevationModel(TileUpdater, int)
,getMaxCachedTiles()
-
isOverlappingTiles
public boolean isOverlappingTiles()
Get the flag telling if the DEM tiles are overlapping.- Returns:
- true if the Digital Elevation Model tiles are overlapping; false otherwise. Default = true.
- Since:
- 4.0
-
setOverlappingTiles
public void setOverlappingTiles(boolean newIsOverlappingTiles)
Set the DEM overlapping tiles flag.- Parameters:
newIsOverlappingTiles
- flag to tell if the Digital Elevation Model tiles are overlapping: true if overlapping; false otherwise- Since:
- 4.0
-
setConstantElevation
public RuggedBuilder setConstantElevation(double newConstantElevation)
Set the user-provided constant elevation model.Note that this method is relevant only if the algorithm specified in
setAlgorithm(AlgorithmId)
isCONSTANT_ELEVATION_OVER_ELLIPSOID
. If it is called for another algorithm, the elevation set here will be ignored.- Parameters:
newConstantElevation
- constant elevation to use (m)- Returns:
- the builder instance
- See Also:
setAlgorithm(AlgorithmId)
,getConstantElevation()
-
getConstantElevation
public double getConstantElevation()
Get the constant elevation over ellipsoid to use withAlgorithmId.CONSTANT_ELEVATION_OVER_ELLIPSOID
.- Returns:
- updater used to load Digital Elevation Model tiles
- See Also:
setConstantElevation(double)
-
getMaxCachedTiles
public int getMaxCachedTiles()
Get the maximum number of tiles stored in the cache.- Returns:
- maximum number of tiles stored in the cache
- See Also:
setDigitalElevationModel(TileUpdater, int, boolean)
,setDigitalElevationModel(TileUpdater, int)
,getTileUpdater()
-
setTimeSpan
public RuggedBuilder setTimeSpan(AbsoluteDate newMinDate, AbsoluteDate newMaxDate, double newTstep, double newOvershootTolerance)
Set the time span to be covered for direct and inverse location calls.This method set only the time span and not the trajectory, therefore it must be used together with either
setTrajectory(InertialFrameId, List, int, CartesianDerivativesFilter, List, int, AngularDerivativesFilter)
,setTrajectory(Frame, List, int, CartesianDerivativesFilter, List, int, AngularDerivativesFilter)
, orsetTrajectory(double, int, CartesianDerivativesFilter, AngularDerivativesFilter, Propagator)
but should not be mixed withsetTrajectoryAndTimeSpan(InputStream)
.- Parameters:
newMinDate
- start of search time spannewMaxDate
- end of search time spannewTstep
- step to use for inertial frame to body frame transforms cache computations (s)newOvershootTolerance
- tolerance in seconds allowed forminDate
andmaxDate
overshooting (s)- Returns:
- the builder instance
- See Also:
setTrajectoryAndTimeSpan(InputStream)
,getMinDate()
,getMaxDate()
,getTStep()
,getOvershootTolerance()
-
getMinDate
public AbsoluteDate getMinDate()
Get the start of search time span.- Returns:
- start of search time span
- See Also:
setTimeSpan(AbsoluteDate, AbsoluteDate, double, double)
-
getMaxDate
public AbsoluteDate getMaxDate()
Get the end of search time span.- Returns:
- end of search time span
- See Also:
setTimeSpan(AbsoluteDate, AbsoluteDate, double, double)
-
getTStep
public double getTStep()
Get the step to use for inertial frame to body frame transforms cache computations.- Returns:
- step to use for inertial frame to body frame transforms cache computations
- See Also:
setTimeSpan(AbsoluteDate, AbsoluteDate, double, double)
-
getOvershootTolerance
public double getOvershootTolerance()
Get the tolerance in seconds allowed forgetMinDate()
andgetMaxDate()
overshooting.- Returns:
- tolerance in seconds allowed for
getMinDate()
andgetMaxDate()
overshooting - See Also:
setTimeSpan(AbsoluteDate, AbsoluteDate, double, double)
-
setTrajectory
public RuggedBuilder setTrajectory(InertialFrameId inertialFrameId, List<TimeStampedPVCoordinates> positionsVelocities, int pvInterpolationNumber, CartesianDerivativesFilter pvFilter, List<TimeStampedAngularCoordinates> quaternions, int aInterpolationNumber, AngularDerivativesFilter aFilter)
Set the spacecraft trajectory.This method set only the trajectory and not the time span, therefore it must be used together with the
setTimeSpan(AbsoluteDate, AbsoluteDate, double, double)
but should not be mixed withsetTrajectoryAndTimeSpan(InputStream)
.- Parameters:
inertialFrameId
- inertial frame Id used for spacecraft positions/velocities/quaternionspositionsVelocities
- satellite position and velocity (m and m/s in inertial frame)pvInterpolationNumber
- number of points to use for position/velocity interpolationpvFilter
- filter for derivatives from the sample to use in position/velocity interpolationquaternions
- satellite quaternions with respect to inertial frameaInterpolationNumber
- number of points to use for attitude interpolationaFilter
- filter for derivatives from the sample to use in attitude interpolation- Returns:
- the builder instance
- See Also:
setTrajectory(Frame, List, int, CartesianDerivativesFilter, List, int, AngularDerivativesFilter)
,setTrajectory(double, int, CartesianDerivativesFilter, AngularDerivativesFilter, Propagator)
,setTrajectoryAndTimeSpan(InputStream)
,getInertialFrame()
,getPositionsVelocities()
,getPVInterpolationNumber()
,getPVInterpolationNumber()
,getQuaternions()
,getAInterpolationNumber()
,getAFilter()
-
setTrajectory
public RuggedBuilder setTrajectory(Frame inertialFrame, List<TimeStampedPVCoordinates> positionsVelocities, int pvInterpolationNumber, CartesianDerivativesFilter pvFilter, List<TimeStampedAngularCoordinates> quaternions, int aInterpolationNumber, AngularDerivativesFilter aFilter)
Set the spacecraft trajectory.This method set only the trajectory and not the time span, therefore it must be used together with the
setTimeSpan(AbsoluteDate, AbsoluteDate, double, double)
but should not be mixed withsetTrajectoryAndTimeSpan(InputStream)
.- Parameters:
inertialFrame
- inertial frame used for spacecraft positions/velocities/quaternionspositionsVelocities
- satellite position and velocity (m and m/s in inertial frame)pvInterpolationNumber
- number of points to use for position/velocity interpolationpvFilter
- filter for derivatives from the sample to use in position/velocity interpolationquaternions
- satellite quaternions with respect to inertial frameaInterpolationNumber
- number of points to use for attitude interpolationaFilter
- filter for derivatives from the sample to use in attitude interpolation- Returns:
- the builder instance
- See Also:
setTrajectory(InertialFrameId, List, int, CartesianDerivativesFilter, List, int, AngularDerivativesFilter)
,setTrajectory(double, int, CartesianDerivativesFilter, AngularDerivativesFilter, Propagator)
,setTrajectoryAndTimeSpan(InputStream)
,getPositionsVelocities()
,getPVInterpolationNumber()
,getPVInterpolationNumber()
,getQuaternions()
,getAInterpolationNumber()
,getAFilter()
-
setTrajectory
public RuggedBuilder setTrajectory(double interpolationStep, int interpolationNumber, CartesianDerivativesFilter pvFilter, AngularDerivativesFilter aFilter, Propagator propagator)
Set the spacecraft trajectory.This method set only the trajectory and not the time span, therefore it must be used together with the
setTimeSpan(AbsoluteDate, AbsoluteDate, double, double)
but should not be mixed withsetTrajectoryAndTimeSpan(InputStream)
.- Parameters:
interpolationStep
- step to use for inertial/Earth/spacecraft transforms interpolations (s)interpolationNumber
- number of points to use for inertial/Earth/spacecraft transforms interpolationspvFilter
- filter for derivatives from the sample to use in position/velocity interpolationaFilter
- filter for derivatives from the sample to use in attitude interpolationpropagator
- global propagator- Returns:
- the builder instance
- See Also:
setTrajectory(InertialFrameId, List, int, CartesianDerivativesFilter, List, int, AngularDerivativesFilter)
,setTrajectory(Frame, List, int, CartesianDerivativesFilter, List, int, AngularDerivativesFilter)
,setTrajectoryAndTimeSpan(InputStream)
-
getInertialFrame
public Frame getInertialFrame()
Get the inertial frame.- Returns:
- inertial frame
-
getPositionsVelocities
public List<TimeStampedPVCoordinates> getPositionsVelocities()
Get the satellite position and velocity (m and m/s in inertial frame).- Returns:
- satellite position and velocity (m and m/s in inertial frame)
- See Also:
setTrajectory(double, int, CartesianDerivativesFilter, AngularDerivativesFilter, Propagator)
-
getPVInterpolationNumber
public int getPVInterpolationNumber()
Get the number of points to use for position/velocity interpolation.- Returns:
- number of points to use for position/velocity interpolation
- See Also:
setTrajectory(double, int, CartesianDerivativesFilter, AngularDerivativesFilter, Propagator)
-
getPVFilter
public CartesianDerivativesFilter getPVFilter()
Get the filter for derivatives from the sample to use in position/velocity interpolation.- Returns:
- filter for derivatives from the sample to use in position/velocity interpolation
- See Also:
setTrajectory(double, int, CartesianDerivativesFilter, AngularDerivativesFilter, Propagator)
-
getQuaternions
public List<TimeStampedAngularCoordinates> getQuaternions()
Get the satellite quaternions with respect to inertial frame.- Returns:
- satellite quaternions with respect to inertial frame
- See Also:
setTrajectory(double, int, CartesianDerivativesFilter, AngularDerivativesFilter, Propagator)
-
getAInterpolationNumber
public int getAInterpolationNumber()
Get the number of points to use for attitude interpolation.- Returns:
- number of points to use for attitude interpolation
- See Also:
setTrajectory(double, int, CartesianDerivativesFilter, AngularDerivativesFilter, Propagator)
-
getAFilter
public AngularDerivativesFilter getAFilter()
Get the filter for derivatives from the sample to use in attitude interpolation.- Returns:
- filter for derivatives from the sample to use in attitude interpolation
- See Also:
setTrajectory(double, int, CartesianDerivativesFilter, AngularDerivativesFilter, Propagator)
-
setTrajectoryAndTimeSpan
public RuggedBuilder setTrajectoryAndTimeSpan(InputStream storageStream)
Set both the spacecraft trajectory and the time span.This method set both the trajectory and the time span in a tightly coupled way, therefore it should not be mixed with the individual methods
setTrajectory(double, int, CartesianDerivativesFilter, AngularDerivativesFilter, Propagator)
,setTrajectory(Frame, List, int, CartesianDerivativesFilter, List, int, AngularDerivativesFilter)
,setTrajectory(InertialFrameId, List, int, CartesianDerivativesFilter, List, int, AngularDerivativesFilter)
, orsetTimeSpan(AbsoluteDate, AbsoluteDate, double, double)
.- Parameters:
storageStream
- stream from where to read previous instancestored interpolator
(caller opened it and remains responsible for closing it)- Returns:
- the builder instance
- See Also:
setTrajectory(InertialFrameId, List, int, CartesianDerivativesFilter, List, int, AngularDerivativesFilter)
,setTrajectory(Frame, List, int, CartesianDerivativesFilter, List, int, AngularDerivativesFilter)
,setTrajectory(double, int, CartesianDerivativesFilter, AngularDerivativesFilter, Propagator)
,storeInterpolator(OutputStream)
-
storeInterpolator
public void storeInterpolator(OutputStream storageStream)
Store frames transform interpolator.This method allows to reuse the interpolator built in one instance, to build another instance by calling
setTrajectoryAndTimeSpan(InputStream)
. This reduces the builder initialization time as setting up the interpolator can be long, it is mainly intended to be used when several runs are done (for example in an image processing chain) with the same configuration.This method must be called after both the ellipsoid and trajectory have been set.
- Parameters:
storageStream
- stream where to store the interpolator (caller opened it and remains responsible for closing it)- See Also:
setEllipsoid(EllipsoidId, BodyRotatingFrameId)
,setEllipsoid(OneAxisEllipsoid)
,setTrajectory(InertialFrameId, List, int, CartesianDerivativesFilter, List, int, AngularDerivativesFilter)
,setTrajectory(Frame, List, int, CartesianDerivativesFilter, List, int, AngularDerivativesFilter)
,setTrajectory(double, int, CartesianDerivativesFilter, AngularDerivativesFilter, Propagator)
,setTrajectoryAndTimeSpan(InputStream)
-
setLightTimeCorrection
public RuggedBuilder setLightTimeCorrection(boolean newLightTimeCorrection)
Set flag for light time correction.This methods set the flag for compensating or not light time between ground and spacecraft. Compensating this delay improves location accuracy and is enabled by default (i.e. not calling this method before building is therefore equivalent to calling it with a parameter set to
true
). Not compensating it is mainly useful for validation purposes against system that do not compensate it.- Parameters:
newLightTimeCorrection
- if true, the light travel time between ground and spacecraft is compensated for more accurate location- Returns:
- the builder instance
- See Also:
setAberrationOfLightCorrection(boolean)
,getLightTimeCorrection()
-
getLightTimeCorrection
public boolean getLightTimeCorrection()
Get the light time correction flag.- Returns:
- light time correction flag
- See Also:
setLightTimeCorrection(boolean)
-
setAberrationOfLightCorrection
public RuggedBuilder setAberrationOfLightCorrection(boolean newAberrationOfLightCorrection)
Set flag for aberration of light correction.This methods set the flag for compensating or not aberration of light, which is velocity composition between light and spacecraft when the light from ground points reaches the sensor. Compensating this velocity composition improves location accuracy and is enabled by default (i.e. not calling this method before building is therefore equivalent to calling it with a parameter set to
true
). Not compensating it is useful in two cases: for validation purposes against system that do not compensate it or when the pixels line of sight already include the correction.- Parameters:
newAberrationOfLightCorrection
- if true, the aberration of light is corrected for more accurate location- Returns:
- the builder instance
- See Also:
setLightTimeCorrection(boolean)
,getAberrationOfLightCorrection()
-
getAberrationOfLightCorrection
public boolean getAberrationOfLightCorrection()
Get the aberration of light correction flag.- Returns:
- aberration of light correction flag
- See Also:
setAberrationOfLightCorrection(boolean)
-
setRefractionCorrection
public RuggedBuilder setRefractionCorrection(AtmosphericRefraction newAtmosphericRefraction)
Set atmospheric refraction for line of sight correction.This method sets an atmospheric refraction model to be used between spacecraft and ground for the correction of intersected points on ground. Compensating for the effect of atmospheric refraction improves location accuracy.
- Parameters:
newAtmosphericRefraction
- the atmospheric refraction model to be used for more accurate location- Returns:
- the builder instance
- See Also:
getRefractionCorrection()
-
getRefractionCorrection
public AtmosphericRefraction getRefractionCorrection()
Get the atmospheric refraction model.- Returns:
- atmospheric refraction model
- See Also:
setRefractionCorrection(AtmosphericRefraction)
-
addLineSensor
public RuggedBuilder addLineSensor(LineSensor lineSensor)
Set up line sensor model.- Parameters:
lineSensor
- line sensor model- Returns:
- the builder instance
-
clearLineSensors
public RuggedBuilder clearLineSensors()
Remove all line sensors.- Returns:
- the builder instance
-
getLineSensors
public List<LineSensor> getLineSensors()
Get all line sensors.- Returns:
- all line sensors (in an unmodifiable list)
-
-