Package org.orekit.rugged.refraction
Class AtmosphericRefraction
- java.lang.Object
-
- org.orekit.rugged.refraction.AtmosphericRefraction
-
- Direct Known Subclasses:
MultiLayerModel
public abstract class AtmosphericRefraction extends Object
Base class for atmospheric refraction model.- Since:
- 2.0
- Author:
- Sergio Esteves, Guylaine Prat
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AtmosphericRefraction()
Default constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract NormalizedGeodeticPoint
applyCorrection(Vector3D satPos, Vector3D satLos, NormalizedGeodeticPoint rawIntersection, IntersectionAlgorithm algorithm)
Apply correction to the intersected point with an atmospheric refraction model.void
computeGridCorrectionFunctions(SensorPixel[][] sensorPixelGridInverseWithout)
Compute the correction functions for pixel and lines.void
configureCorrectionGrid(LineSensor sensor, int minLine, int maxLine)
Configuration of the interpolation grid.void
deactivateComputation()
Deactivate computation (needed for the inverse location computation).BilinearInterpolatingFunction
getBifLine()
BilinearInterpolatingFunction
getBifPixel()
AtmosphericComputationParameters
getComputationParameters()
Get the computation parameters.Boolean
isSameContext(String sensorName, int minLine, int maxLine)
Check if the current atmospheric parameters are the same as the asked ones.boolean
mustBeComputed()
Tell if the computation must be performed.void
reactivateComputation()
Reactivate computation (needed for the inverse location computation).void
setGridSteps(int pixelStep, int lineStep)
Set the grid steps in pixel and line (used to compute inverse location).void
setInverseLocMargin(double inverseLocMargin)
Set the margin for computation of inverse location with atmospheric refraction correction.
-
-
-
Method Detail
-
applyCorrection
public abstract NormalizedGeodeticPoint applyCorrection(Vector3D satPos, Vector3D satLos, NormalizedGeodeticPoint rawIntersection, IntersectionAlgorithm algorithm)
Apply correction to the intersected point with an atmospheric refraction model.- Parameters:
satPos
- satellite position, in body framesatLos
- satellite line of sight, in body framerawIntersection
- intersection point before refraction correctionalgorithm
- intersection algorithm- Returns:
- corrected point with the effect of atmospheric refraction
ExtendedEllipsoid.pointAtAltitude(Vector3D, Vector3D, double)
or seeIntersectionAlgorithm.refineIntersection(org.orekit.rugged.utils.ExtendedEllipsoid, Vector3D, Vector3D, NormalizedGeodeticPoint)
-
deactivateComputation
public void deactivateComputation()
Deactivate computation (needed for the inverse location computation).- Since:
- 2.1
-
reactivateComputation
public void reactivateComputation()
Reactivate computation (needed for the inverse location computation).- Since:
- 2.1
-
mustBeComputed
public boolean mustBeComputed()
Tell if the computation must be performed.- Returns:
- true if computation must be performed; false otherwise
- Since:
- 2.1
-
configureCorrectionGrid
public void configureCorrectionGrid(LineSensor sensor, int minLine, int maxLine)
Configuration of the interpolation grid. This grid is associated to the given sensor, with the given min and max lines.- Parameters:
sensor
- line sensorminLine
- min line defined for the inverse locationmaxLine
- max line defined for the inverse location- Since:
- 2.1
-
isSameContext
public Boolean isSameContext(String sensorName, int minLine, int maxLine)
Check if the current atmospheric parameters are the same as the asked ones.- Parameters:
sensorName
- the asked sensor nameminLine
- the asked min linemaxLine
- the asked max line- Returns:
- true if same context; false otherwise
- Since:
- 2.1
-
getComputationParameters
public AtmosphericComputationParameters getComputationParameters()
Get the computation parameters.- Returns:
- the AtmosphericComputationParameters
- Since:
- 2.1
-
setGridSteps
public void setGridSteps(int pixelStep, int lineStep)
Set the grid steps in pixel and line (used to compute inverse location). Overwrite the default values, for time optimization for instance.- Parameters:
pixelStep
- pixel step for the inverse location computationlineStep
- line step for the inverse location computation- Since:
- 2.1
-
setInverseLocMargin
public void setInverseLocMargin(double inverseLocMargin)
Set the margin for computation of inverse location with atmospheric refraction correction. Overwrite the default value DEFAULT_INVLOC_MARGIN. No check is done about this margin. A recommended value is around 1.- Parameters:
inverseLocMargin
- margin in pixel size to compute inverse location with atmospheric refraction correction.- Since:
- 3.0
-
computeGridCorrectionFunctions
public void computeGridCorrectionFunctions(SensorPixel[][] sensorPixelGridInverseWithout)
Compute the correction functions for pixel and lines. The corrections are computed for pixels and lines, on a regular grid at sensor level. The corrections are based on the difference on grid nodes (where direct loc is known with atmosphere refraction) and the sensor pixel found by inverse loc without atmosphere refraction. The bilinear interpolating functions are then computed for pixel and for line. Need to be computed only once for a given sensor with the same minLine and maxLine.- Parameters:
sensorPixelGridInverseWithout
- inverse location grid WITHOUT atmospheric refraction- Since:
- 2.1
-
getBifPixel
public BilinearInterpolatingFunction getBifPixel()
- Returns:
- the bilinear interpolating function for pixel correction
-
getBifLine
public BilinearInterpolatingFunction getBifLine()
- Returns:
- the bilinear interpolating function for line correction
-
-