Type |
Changes |
By |
![Add Add](images/add.gif) |
Added a getAlgorithm method at Rugged level. This allows for example to
retrieve the DEM elevation for a latitude/longitude pair. |
luc |
![Add Add](images/add.gif) |
Added a utility to help estimate visibility and set up min/max search lines. |
luc |
![Fix Fix](images/fix.gif) |
Improved latitude crossing robustness. |
luc |
![Add Add](images/add.gif) |
Added a protection against infinite loops in Duvenhage algorithm. |
luc |
![Add Add](images/add.gif) |
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 |
![Add Add](images/add.gif) |
Added Norwegian translation of error messages. Thanks to Espen Bjørntvedt. |
luc |
![Update Update](images/update.gif) |
Updated Apache Commons Version as 3.4 has now been released. |
luc |
![Add Add](images/add.gif) |
Added partial derivatives for line-of-sights with respect to transforms parameters.
This is the first step towards los calibration. |
luc |
![Add Add](images/add.gif) |
Added sequences of transforms for lines-of-sight. |
luc |
![Add Add](images/add.gif) |
Added a builder for line-of-sight lists. |
luc |
![Update Update](images/update.gif) |
Reorganized packages. |
luc |
![Add Add](images/add.gif) |
Added getters to the RuggedBuilder. |
luc |
![Fix Fix](images/fix.gif) |
Force reset of builder interpolator when time span is changed. |
luc |
![Add Add](images/add.gif) |
Added Romanian translation of error messages. Thanks to Lucian Barbulescu. |
luc |
![Update Update](images/update.gif) |
Use builder pattern and fluent interface to create the top level Rugged instance. |
luc |
![Fix Fix](images/fix.gif) |
Force geodetic points to remain in the same longitude range as the tile of the
Digital Elevation Model they belong to. |
luc |
![Fix Fix](images/fix.gif) |
Added a protection agains some extremely rare numerical problems
in Duvenhage algorithm. |
luc |
![Add Add](images/add.gif) |
Added Spanish and Galician translations of error messages. Thanks to Silvia Ríos Bergantiños and Beatriz Salazar. |
luc |
![Add Add](images/add.gif) |
Added German translation of error messages. Thanks to Marina Ludwig. |
luc |
![Add Add](images/add.gif) |
Added Italian translation of error messages. Thanks to Francesco Coccoluto. |
luc |
![Fix Fix](images/fix.gif) |
Added detection of wrong position/line-of-sight that misses the ground. |
luc |
![Add Add](images/add.gif) |
Added a way to reuse transform interpolator from one run to another
by dumping its state into a file, thus avoiding costly initialization. |
luc |
![Add Add](images/add.gif) |
Time step for internal transform caching is now user-configurable. |
luc |
![Update Update](images/update.gif) |
Switched maven configuration to multi-modules. |
luc |
![Update Update](images/update.gif) |
Updated UML diagrams. |
luc |
![Update Update](images/update.gif) |
Moved TileUpdate to raster package. |
luc |
![Update Update](images/update.gif) |
Finalized direct location diagrams. |
luc |
![Update Update](images/update.gif) |
renamed core package into intersection. |
luc |
![Update Update](images/update.gif) |
Created a utils package. |
luc |
![Update Update](images/update.gif) |
Moved raster package one level up. |
luc |
![Fix Fix](images/fix.gif) |
Fixed top package name. |
luc |
![Update Update](images/update.gif) |
Updated maven plugins versions. |
luc |
![Update Update](images/update.gif) |
Updated Apache Commons Version as 3.3 has now been released. |
luc |
![Update Update](images/update.gif) |
Updated Orekit version. |
luc |
![Update Update](images/update.gif) |
Improved performance. |
luc |
![Update Update](images/update.gif) |
Disabled timing test for inverse location. |
luc |
![Update Update](images/update.gif) |
Improved inverse location speed again! |
luc |
![Update Update](images/update.gif) |
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 |
![Update Update](images/update.gif) |
Simplified direct location. |
luc |
![Update Update](images/update.gif) |
Improved inverse location performances. |
luc |
![Update Update](images/update.gif) |
Added rate to the LineDatation interface. |
luc |
![Update Update](images/update.gif) |
Disable timing test by default. |
luc |
![Update Update](images/update.gif) |
Renamed setLineSensor into addLineSensor.
The new name explains more clearly that several sensors can be set up at
once. |
luc |
![Fix Fix](images/fix.gif) |
First working version of inverse location. |
luc |
![Update Update](images/update.gif) |
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 |
![Update Update](images/update.gif) |
Ensure sensor mean plane normal has a deterministic orientation. |
luc |
![Update Update](images/update.gif) |
Slightly changed the intersection refinement in flat-body. |
luc |
![Update Update](images/update.gif) |
Added a flat-body implementation of refineIntersection.
The former implementation ignored the flat-body flag and in fact
corrected the flat-body ... |
luc |
![Fix Fix](images/fix.gif) |
Fixed mean reference point position. |
luc |
![Update Update](images/update.gif) |
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 |
![Fix Fix](images/fix.gif) |
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 |
![Fix Fix](images/fix.gif) |
Fixed non-bracketing error near start of sensor line. |
luc |
![Update Update](images/update.gif) |
Moved reference date from Rugged top class to LineDatation model. |
luc |
![Update Update](images/update.gif) |
Remove check for context, which is ensured since construction. |
luc |
![Update Update](images/update.gif) |
Improved speed of inverse location test. |
luc |
![Fix Fix](images/fix.gif) |
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 |
![Add Add](images/add.gif) |
Started implementation of inverse location (not working yet). |
luc |
![Update Update](images/update.gif) |
Removed a check that is not needed anymore.
The indices are now checked at caller level. |
luc |
![Update Update](images/update.gif) |
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 |
![Fix Fix](images/fix.gif) |
Avoid array bounds error when interpolating exactly at tile edges. |
luc |
![Update Update](images/update.gif) |
Added automatic mean plane computation for line sensors.
This will allow implementing inverse location. |
luc |
![Update Update](images/update.gif) |
Allow direct use of Orekit inertial frames and ellipsoids. |
luc |
![Update Update](images/update.gif) |
Added optional aberration of light correction. |
luc |
![Update Update](images/update.gif) |
Renamed ligth travel time compensation into light time correction.
This better matches physics naming conventions. |
luc |
![Update Update](images/update.gif) |
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 |
![Update Update](images/update.gif) |
Fixing light travel time or not is now a user setting. |
luc |
![Update Update](images/update.gif) |
Configure tiles updater at construction time. |
luc |
![Update Update](images/update.gif) |
Replaced setGeneralContext with constructors. |
luc |
![Update Update](images/update.gif) |
Replaced Rugged interface with a class. |
luc |
![Update Update](images/update.gif) |
Moved enumerates out of Rugged top level interface. |
luc |
![Update Update](images/update.gif) |
Removed SatellitePV and SatelliteQ classes.
We now use directly Orekit PVCoordinates and Apache Commons Math
Rotation classes. |
luc |
![Update Update](images/update.gif) |
Remove GroundPoint class.
We use directly the Orekit NormalizedGeodeticPoint now. |
luc |
![Add Add](images/add.gif) |
Added ITRF equinox, for applications that rely on it... |
luc |
![Fix Fix](images/fix.gif) |
Fixed virtual "wall" appearing at tiles boundaries. |
luc |
![Fix Fix](images/fix.gif) |
Avoid an infinite loop near tiles boundaries. |
luc |
![Fix Fix](images/fix.gif) |
Fixed error loading elevation from Aster files. |
luc |
![Update Update](images/update.gif) |
Improved accuracy by taking speed of light into account in transforms. |
luc |
![Update Update](images/update.gif) |
Slight speed-up with a dedicated pointOnGround method. |
luc |
![Update Update](images/update.gif) |
Added writing of grid file to full test. |
luc |
![Update Update](images/update.gif) |
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 |
![Add Add](images/add.gif) |
New global test (temporary, much too computing intensive). |
luc |
![Add Add](images/add.gif) |
Added a default linear model for line datation. |
luc |
![Update Update](images/update.gif) |
Avoid line-of-sight splitting before its start. |
luc |
![Fix Fix](images/fix.gif) |
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 |
![Update Update](images/update.gif) |
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 |
![Add Add](images/add.gif) |
Allow tolerance for intersections close to pixel edges. |
luc |
![Update Update](images/update.gif) |
Use the four corners of each pixel to initialize min/max kd-tree. |
luc |
![Update Update](images/update.gif) |
Use point and direction rather than two points for pixel intersection. |
luc |
![Update Update](images/update.gif) |
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 |
![Fix Fix](images/fix.gif) |
First working version of Duvenhage algorithm! |
luc |
![Fix Fix](images/fix.gif) |
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 |
![Fix Fix](images/fix.gif) |
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 |
![Add Add](images/add.gif) |
Added tests for BasicScanAlgorithm. |
luc |
![Update Update](images/update.gif) |
Don't exclude endpoints when un-merging tiles. |
luc |
![Update Update](images/update.gif) |
Changed private method arguments order for easier understanding. |
luc |
![Fix Fix](images/fix.gif) |
Fixed computation of sub-tiles crossings. |
luc |
![Update Update](images/update.gif) |
Added library setup test, with and without Orekit. |
luc |
![Add Add](images/add.gif) |
Prepared framework for more complete flight dynamics tests. |
luc |
![Update Update](images/update.gif) |
Implemented intersection at pixel level. |
luc |
![Update Update](images/update.gif) |
Delegate final pixel intersection to Tile. |
luc |
![Fix Fix](images/fix.gif) |
Added a basic scan algorithm, for testing and validation purposes. |
luc |
![Update Update](images/update.gif) |
Added line-of-sight splitting at sub-tiles boundaries. |
luc |
![Update Update](images/update.gif) |
Added test for level 0 merging row and tall tile. |
luc |
![Update Update](images/update.gif) |
Added methods getLatitudeAtIndex and getLongitudeAtIndex in Tile. |
luc |
![Update Update](images/update.gif) |
Changed semantics of merge methods so they refer to current level. |
luc |
![Update Update](images/update.gif) |
Renamed package dem into raster. |
luc |
![Update Update](images/update.gif) |
Work In Progress on duvenhage algorithm. |
luc |
![Update Update](images/update.gif) |
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 |
![Update Update](images/update.gif) |
Added isColumnMerging predicate. |
luc |
![Update Update](images/update.gif) |
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 |
![Fix Fix](images/fix.gif) |
Fixed interpolation error. |
luc |
![Add Add](images/add.gif) |
started implementation of the Duvenhage algorithm. |
luc |
![Update Update](images/update.gif) |
Added getLatitudeIndex and getLongitudeIndex in Tile. |
luc |
![Fix Fix](images/fix.gif) |
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 |
![Update Update](images/update.gif) |
Improved identification of point location with respect to tile. |
luc |
![Update Update](images/update.gif) |
Sensor directly uses points and vectors, and no more Line. |
luc |
![Update Update](images/update.gif) |
Intersection algorithms can use the new ExtendedEllipsoid.
This allows them to chop off line-of-sight at DEM cells boundaries. |
luc |
![Fix Fix](images/fix.gif) |
Fixed wrong package in tests. |
luc |
![Add Add](images/add.gif) |
Added ExtendedEllipsoid to chop off line-of-sight according to DEM. |
luc |
![Update Update](images/update.gif) |
Split top level class from DEM intersection algorithm. |
luc |
![Update Update](images/update.gif) |
Line numbers are double. |
luc |
![Add Add](images/add.gif) |
Started implementation of direct location ... |
luc |
![Update Update](images/update.gif) |
Added a protection against unknown sensors. |
luc |
![Add Add](images/add.gif) |
Added configuration for sensor lines of sight. |
luc |
![Update Update](images/update.gif) |
Use an offset from a reference date for all computation. |
luc |
![Update Update](images/update.gif) |
Added a getMergeLevel method to identify when pixels share min/max.
This is a first step towards duvenhage's algorithm. |
luc |
![Fix Fix](images/fix.gif) |
Working version of min/max kd-tree tile. |
luc |
![Add Add](images/add.gif) |
Started implementation of min/max KD-tree tile.
This is work in progress, the min/max computation seems wrong for now. |
luc |
![Update Update](images/update.gif) |
pixels are double. |
luc |
![Update Update](images/update.gif) |
Added protection against empty tiles. |
luc |
![Update Update](images/update.gif) |
Removed AbastractTile.
Specialized tiles should directly extend SimpleTile. |
luc |
![Add Add](images/add.gif) |
Added global min/max handling for any tile. |
luc |
![Add Add](images/add.gif) |
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 |
![Update Update](images/update.gif) |
Boilerplate part for Rugged interface implementation. |
luc |
![Update Update](images/update.gif) |
Added API for global context initialization. |
luc |
![Update Update](images/update.gif) |
Added containers for parsed position/velocity and attitude. |
luc |
![Update Update](images/update.gif) |
Added a hook called after tile update completion. |
luc |
![Update Update](images/update.gif) |
Force use of factory to create simple tiles. |
luc |
![Update Update](images/update.gif) |
Extract an AbstractTile from SimpleTile |
luc |
![Update Update](images/update.gif) |
Added a simple container for inverse location result. |
luc |
![Update Update](images/update.gif) |
Expanded API. |
luc |
![Update Update](images/update.gif) |
Use new specialized exceptions. |
luc |
![Update Update](images/update.gif) |
Added error messages handling, with translation. |
luc |
![Update Update](images/update.gif) |
Added design document and diagrams. |
luc |
![Update Update](images/update.gif) |
Implemented TilesCache. |
luc |
![Update Update](images/update.gif) |
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 |
![Update Update](images/update.gif) |
Added method to check ground point coverage. |
luc |
![Update Update](images/update.gif) |
Reference latitude/longitude must be the minimum.
This ensures simple search for tiles given a ground point. |
luc |