Type |
Changes |
By |
|
Added a getAlgorithm method at Rugged level. This allows for example to
retrieve the DEM elevation for a latitude/longitude pair. |
luc |
|
Added a utility to help estimate visibility and set up min/max search lines. |
luc |
|
Improved latitude crossing robustness. |
luc |
|
Added a protection against infinite loops in Duvenhage algorithm. |
luc |
|
Added a CONSTANT_ELEVATION_OVER_ELLIPSOID algorithm, similar in spirit
to the IGNORE_DEM_USE_ELLIPSOID, but with a user-specified elevation
instead of always using 0.0 elevation.
Implements feature #187. |
luc |
|
Added Norwegian translation of error messages. Thanks to Espen Bjørntvedt. |
luc |
|
Updated Apache Commons Version as 3.4 has now been released. |
luc |
|
Added partial derivatives for line-of-sights with respect to transforms parameters.
This is the first step towards los calibration. |
luc |
|
Added sequences of transforms for lines-of-sight. |
luc |
|
Added a builder for line-of-sight lists. |
luc |
|
Reorganized packages. |
luc |
|
Added getters to the RuggedBuilder. |
luc |
|
Force reset of builder interpolator when time span is changed. |
luc |
|
Added Romanian translation of error messages. Thanks to Lucian Barbulescu. |
luc |
|
Use builder pattern and fluent interface to create the top level Rugged instance. |
luc |
|
Force geodetic points to remain in the same longitude range as the tile of the
Digital Elevation Model they belong to. |
luc |
|
Added a protection agains some extremely rare numerical problems
in Duvenhage algorithm. |
luc |
|
Added Spanish and Galician translations of error messages. Thanks to Silvia Ríos Bergantiños and Beatriz Salazar. |
luc |
|
Added German translation of error messages. Thanks to Marina Ludwig. |
luc |
|
Added Italian translation of error messages. Thanks to Francesco Coccoluto. |
luc |
|
Added detection of wrong position/line-of-sight that misses the ground. |
luc |
|
Added a way to reuse transform interpolator from one run to another
by dumping its state into a file, thus avoiding costly initialization. |
luc |
|
Time step for internal transform caching is now user-configurable. |
luc |
|
Switched maven configuration to multi-modules. |
luc |
|
Updated UML diagrams. |
luc |
|
Moved TileUpdate to raster package. |
luc |
|
Finalized direct location diagrams. |
luc |
|
renamed core package into intersection. |
luc |
|
Created a utils package. |
luc |
|
Moved raster package one level up. |
luc |
|
Fixed top package name. |
luc |
|
Updated maven plugins versions. |
luc |
|
Updated Apache Commons Version as 3.3 has now been released. |
luc |
|
Updated Orekit version. |
luc |
|
Improved performance. |
luc |
|
Disabled timing test for inverse location. |
luc |
|
Improved inverse location speed again! |
luc |
|
Added inverse location from latitude and longitude only.
When only latitude and longitude are specified, the elevation is
automatically computed from the Digital Elevation Model. |
luc |
|
Simplified direct location. |
luc |
|
Improved inverse location performances. |
luc |
|
Added rate to the LineDatation interface. |
luc |
|
Disable timing test by default. |
luc |
|
Renamed setLineSensor into addLineSensor.
The new name explains more clearly that several sensors can be set up at
once. |
luc |
|
First working version of inverse location. |
luc |
|
Streamlined line sensor model.
We now use a single position for all pixels (but of course still
different line-of-sight vectors), as it doesn't really make sense to
consider different positions as pixels are only a few microns away from
each other. |
luc |
|
Ensure sensor mean plane normal has a deterministic orientation. |
luc |
|
Slightly changed the intersection refinement in flat-body. |
luc |
|
Added a flat-body implementation of refineIntersection.
The former implementation ignored the flat-body flag and in fact
corrected the flat-body ... |
luc |
|
Fixed mean reference point position. |
luc |
|
Improved light time correction.
The current altitude must be considered when computing light time
correction. Previous computation was slightly wrong as it only computed
light time from the ellipsoid. This induced problems when computing
inverse correction. |
luc |
|
Fixed computation of latitude crossings for line of sight.
In some cases, the line of sight has two intersections with a given
iso-latitude cone, and the selecting the closes one to spacecraft was
not always the appropriate choice. An hint from the caller was needed,
as a point close to the desired intersection. |
luc |
|
Fixed non-bracketing error near start of sensor line. |
luc |
|
Moved reference date from Rugged top class to LineDatation model. |
luc |
|
Remove check for context, which is ensured since construction. |
luc |
|
Improved speed of inverse location test. |
luc |
|
First working version of inverse location.
It works in simple cases (no light time correction and no aberration of
light correction), and is still really slow. |
luc |
|
Started implementation of inverse location (not working yet). |
luc |
|
Removed a check that is not needed anymore.
The indices are now checked at caller level. |
luc |
|
Added an option to use Duvenhage algorithm with flat-Earth hypothesis.
This option is mainly intended for comparison with existing systems. It
should not be used for operational systems and the full Duvenhage
algorithm with line-of-sight bending in geodetic coordinates should be
used instead. |
luc |
|
Avoid array bounds error when interpolating exactly at tile edges. |
luc |
|
Added automatic mean plane computation for line sensors.
This will allow implementing inverse location. |
luc |
|
Allow direct use of Orekit inertial frames and ellipsoids. |
luc |
|
Added optional aberration of light correction. |
luc |
|
Renamed ligth travel time compensation into light time correction.
This better matches physics naming conventions. |
luc |
|
Moved light travel compensation setting out of construction.
This setting is not intended to be used often (in fact it should be used
only for validation against other systems), so forcing user to set it in
all cases was a bad idea. Now the default configuration is to compensate
and if user does not want to compensate, he can inhibate it by calling a
separate method after construction. |
luc |
|
Fixing light travel time or not is now a user setting. |
luc |
|
Configure tiles updater at construction time. |
luc |
|
Replaced setGeneralContext with constructors. |
luc |
|
Replaced Rugged interface with a class. |
luc |
|
Moved enumerates out of Rugged top level interface. |
luc |
|
Removed SatellitePV and SatelliteQ classes.
We now use directly Orekit PVCoordinates and Apache Commons Math
Rotation classes. |
luc |
|
Remove GroundPoint class.
We use directly the Orekit NormalizedGeodeticPoint now. |
luc |
|
Added ITRF equinox, for applications that rely on it... |
luc |
|
Fixed virtual "wall" appearing at tiles boundaries. |
luc |
|
Avoid an infinite loop near tiles boundaries. |
luc |
|
Fixed error loading elevation from Aster files. |
luc |
|
Improved accuracy by taking speed of light into account in transforms. |
luc |
|
Slight speed-up with a dedicated pointOnGround method. |
luc |
|
Added writing of grid file to full test. |
luc |
|
Don't use a numerical propagator within direct location.
As the time between each line is really small (milliseconds), it is
better to propagate first and use an ephemeris later. |
luc |
|
New global test (temporary, much too computing intensive). |
luc |
|
Added a default linear model for line datation. |
luc |
|
Avoid line-of-sight splitting before its start. |
luc |
|
Fixed a numerical issue at tile exit.
The low point at tile minimum elevation was computed with a tiny
positive error, meaning the point really was above min elevation (at
micrometer level). The line segment between entry and exit stopped just
before traversing the Digital Elevation Model, and an error was
triggered.
The solution was to take some margin when computing the segment
endpoints at entry and exit: we now start above max elevation and end
below min elevation so the intersection should be really on the line. |
luc |
|
Greatly improved accuracy of direct location.
There were some small errors (at centimeter level) as result points may
be slightly out of line of sight. These errors seemed to be due to the
final linear line-of-sight model that is used at pixel level.
An iterative correction step is performed to ensure the point is really
on the line-of-sight.
The residual error is now at nanometer level. |
luc |
|
Allow tolerance for intersections close to pixel edges. |
luc |
|
Use the four corners of each pixel to initialize min/max kd-tree. |
luc |
|
Use point and direction rather than two points for pixel intersection. |
luc |
|
Added a los conversion between Cartesian and geodetic coordinates.
The conversion is of course accurate only in the neighborhood of the
reference point, as a straight line in Cartesian is not a straight line
in geodetic coordinates. What is converted is the initial direction so
the two curves are tangent at the reference point.
Near Earth surface, the two curves remain within one millimeter of each
other after about 100 m travel. |
luc |
|
First working version of Duvenhage algorithm! |
luc |
|
Handle degenerate intersection cases.
The cases handled include linear cases (when Digital Elevation Model has
zero curvature) and constant cases (no curvature and line-of-sight
parallel to tile, both in or out-of-tile). |
luc |
|
First working version of BasicScanAlgorithm.
The case where the line-of-sight enters the Digital Elevation Model in
one tile on top and exit it in another tile on bottom is not tested yet. |
luc |
|
Added tests for BasicScanAlgorithm. |
luc |
|
Don't exclude endpoints when un-merging tiles. |
luc |
|
Changed private method arguments order for easier understanding. |
luc |
|
Fixed computation of sub-tiles crossings. |
luc |
|
Added library setup test, with and without Orekit. |
luc |
|
Prepared framework for more complete flight dynamics tests. |
luc |
|
Implemented intersection at pixel level. |
luc |
|
Delegate final pixel intersection to Tile. |
luc |
|
Added a basic scan algorithm, for testing and validation purposes. |
luc |
|
Added line-of-sight splitting at sub-tiles boundaries. |
luc |
|
Added test for level 0 merging row and tall tile. |
luc |
|
Added methods getLatitudeAtIndex and getLongitudeAtIndex in Tile. |
luc |
|
Changed semantics of merge methods so they refer to current level. |
luc |
|
Renamed package dem into raster. |
luc |
|
Work In Progress on duvenhage algorithm. |
luc |
|
Added getMergingRow and getMergingColumn methods.
These methods are essential to identify where to split the line-of-sight
in the Duvenhage algorithm, when going from one level in the min/max
kd-tree to the next level. |
luc |
|
Added isColumnMerging predicate. |
luc |
|
Added a tolerance around tile for elevation interpolation.
Elevation is going to be interpolated at tiles entry and exit points,
which are computed from geodetic conversions. The result points may be
very slightly out of tiles, at numerical accuracy level. These points
should nevertheless be allowed to be interpolated using the closest
pixel data, so a tolerance was needed.
The SimpleTile class uses a fixed tolerance, arbitrarily set to 1/8
pixel. |
luc |
|
Fixed interpolation error. |
luc |
|
started implementation of the Duvenhage algorithm. |
luc |
|
Added getLatitudeIndex and getLongitudeIndex in Tile. |
luc |
|
Handle properly tiles boundaries.
Tiles are expected to have no inter-tile gap, i.e. the boundary row/columns are repeated in neighboring tiles. |
luc |
|
Improved identification of point location with respect to tile. |
luc |
|
Sensor directly uses points and vectors, and no more Line. |
luc |
|
Intersection algorithms can use the new ExtendedEllipsoid.
This allows them to chop off line-of-sight at DEM cells boundaries. |
luc |
|
Fixed wrong package in tests. |
luc |
|
Added ExtendedEllipsoid to chop off line-of-sight according to DEM. |
luc |
|
Split top level class from DEM intersection algorithm. |
luc |
|
Line numbers are double. |
luc |
|
Started implementation of direct location ... |
luc |
|
Added a protection against unknown sensors. |
luc |
|
Added configuration for sensor lines of sight. |
luc |
|
Use an offset from a reference date for all computation. |
luc |
|
Added a getMergeLevel method to identify when pixels share min/max.
This is a first step towards duvenhage's algorithm. |
luc |
|
Working version of min/max kd-tree tile. |
luc |
|
Started implementation of min/max KD-tree tile.
This is work in progress, the min/max computation seems wrong for now. |
luc |
|
pixels are double. |
luc |
|
Added protection against empty tiles. |
luc |
|
Removed AbastractTile.
Specialized tiles should directly extend SimpleTile. |
luc |
|
Added global min/max handling for any tile. |
luc |
|
Prepared first implementation for Duvenhage algorithm.
For now, only the (incomplete) API and classes hierarchy has been set
up. The tile is still a simple tile and does not yet creates the min/max
kd-tree. The algorithm doesn't do anything. |
luc |
|
Boilerplate part for Rugged interface implementation. |
luc |
|
Added API for global context initialization. |
luc |
|
Added containers for parsed position/velocity and attitude. |
luc |
|
Added a hook called after tile update completion. |
luc |
|
Force use of factory to create simple tiles. |
luc |
|
Extract an AbstractTile from SimpleTile |
luc |
|
Added a simple container for inverse location result. |
luc |
|
Expanded API. |
luc |
|
Use new specialized exceptions. |
luc |
|
Added error messages handling, with translation. |
luc |
|
Added design document and diagrams. |
luc |
|
Implemented TilesCache. |
luc |
|
Added factory for tiles.
The factory is to be implemented by the DEM intersection algorithm, at
very low level (typically tiles based on min/max kd-tree for Duvenhage
algorithm).
The tile updater on the other hand is the responsibility of the mission
specific interface. |
luc |
|
Added method to check ground point coverage. |
luc |
|
Reference latitude/longitude must be the minimum.
This ensures simple search for tiles given a ground point. |
luc |