Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
R
Rugged
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Orekit
Rugged
Commits
00449de1
Commit
00449de1
authored
6 years ago
by
Guylaine Prat
Browse files
Options
Downloads
Patches
Plain Diff
Update links to UML diagramss
parent
a6deae0d
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/site/markdown/design/preliminary-design.md
+13
-13
13 additions, 13 deletions
src/site/markdown/design/preliminary-design.md
with
13 additions
and
13 deletions
src/site/markdown/design/preliminary-design.md
+
13
−
13
View file @
00449de1
<!--- Copyright 2013-201
7
CS Systèmes d'Information
<!--- Copyright 2013-201
8
CS Systèmes d'Information
Licensed under the Apache License, Version 2.0 (the "License");
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
You may obtain a copy of the License at
...
@@ -12,8 +12,8 @@
...
@@ -12,8 +12,8 @@
limitations under the License.
limitations under the License.
-->
-->
Overview
##
Overview
--------
The top level design describes the various libraries and their interactions. The lowest level
The top level design describes the various libraries and their interactions. The lowest level
corresponding to the Hipparchus library is not shown here for clarity.
corresponding to the Hipparchus library is not shown here for clarity.
...
@@ -29,7 +29,8 @@ He also creates a LineSensor containing the geometry of the pixels line-of-sight
...
@@ -29,7 +29,8 @@ He also creates a LineSensor containing the geometry of the pixels line-of-sight
an instance of the top-level Rugged class and provides it the created objects as well as its selection
an instance of the top-level Rugged class and provides it the created objects as well as its selection
of options for algorithm, ellipsoid and frame choices.
of options for algorithm, ellipsoid and frame choices.


The Rugged instance will store everything and create the various objects defining the configuration
The Rugged instance will store everything and create the various objects defining the configuration
(creating the algorithm, ellipsoid and frames from the identifiers provided by the user. Using simple
(creating the algorithm, ellipsoid and frames from the identifiers provided by the user. Using simple
...
@@ -39,7 +40,7 @@ if the predefined identifiers do not cover his needs. As shown in the following
...
@@ -39,7 +40,7 @@ if the predefined identifiers do not cover his needs. As shown in the following
added to a single Rugged instance, this is intended to compute correlation grid, when images coming from
added to a single Rugged instance, this is intended to compute correlation grid, when images coming from
two different sensors are expected to be accurately combined.
two different sensors are expected to be accurately combined.


### Direct location
### Direct location
...
@@ -51,7 +52,7 @@ SpacecraftToObservedBody converter, the conversions between Cartesian coordinate
...
@@ -51,7 +52,7 @@ SpacecraftToObservedBody converter, the conversions between Cartesian coordinate
to an internal ExtendedEllipsoid object, and the computation of the intersection with the Digital Elevation
to an internal ExtendedEllipsoid object, and the computation of the intersection with the Digital Elevation
Model to the algorithm that was selected by user at configuration time.
Model to the algorithm that was selected by user at configuration time.


The pixels independent computation (orbit and attitude interpolation, Earth frame to inertial frame transforms,
The pixels independent computation (orbit and attitude interpolation, Earth frame to inertial frame transforms,
transforms composition) are performed only once per date inside the caching combined transform provider set up
transforms composition) are performed only once per date inside the caching combined transform provider set up
...
@@ -63,17 +64,17 @@ and followed by the Digital Elevation Model intersection. The callback to the mi
...
@@ -63,17 +64,17 @@ and followed by the Digital Elevation Model intersection. The callback to the mi
retrieve DEM raw data is called from the inner loop but is expected to be triggered only infrequently thanks to a
retrieve DEM raw data is called from the inner loop but is expected to be triggered only infrequently thanks to a
caching feature done at Rugged library level.
caching feature done at Rugged library level.


The following figure describes the algorithm used for tile selection and how the underlying intersection algorithm
The following figure describes the algorithm used for tile selection and how the underlying intersection algorithm
(Duvenhage in this example) is called for one tile:
(Duvenhage in this example) is called for one tile:


The recommended Digital Elevation Model intersection algorithm is the Duvenhage algorithm. The following figure
The recommended Digital Elevation Model intersection algorithm is the Duvenhage algorithm. The following figure
describes how it is implemented in the Rugged library.
describes how it is implemented in the Rugged library.


### Inverse location
### Inverse location
...
@@ -84,7 +85,7 @@ pixel number). The pixels independent computation (orbit and attitude interpolat
...
@@ -84,7 +85,7 @@ pixel number). The pixels independent computation (orbit and attitude interpolat
frame transforms, transforms composition) are performed only once per line and cached across successive calls to
frame transforms, transforms composition) are performed only once per line and cached across successive calls to
inverse location, thus greatly improving performances.
inverse location, thus greatly improving performances.


The computation is performed in several steps. The line to which the points belong is first searched using a dedicated
The computation is performed in several steps. The line to which the points belong is first searched using a dedicated
solver taking advantage of the first time derivatives automatically included in Orekit transforms. It can therefore set
solver taking advantage of the first time derivatives automatically included in Orekit transforms. It can therefore set
...
@@ -98,8 +99,7 @@ were done using a mean plane do not represent reality. These final fixes are sim
...
@@ -98,8 +99,7 @@ were done using a mean plane do not represent reality. These final fixes are sim
simple values as results, the first step in fact provided a Taylor expansion, thus allowing to slightly shift the result
simple values as results, the first step in fact provided a Taylor expansion, thus allowing to slightly shift the result
at will.
at will.
Focus point on Digital Elevation Model loading
## Focus point on Digital Elevation Model loading
----------------------------------------------
The Digital Elevation Model is used at a very low level in the Rugged library, but read at a high level in the mission
The Digital Elevation Model is used at a very low level in the Rugged library, but read at a high level in the mission
specific interface library. The following design has been selected in order to allow the lower layer to delegate the
specific interface library. The following design has been selected in order to allow the lower layer to delegate the
...
@@ -107,7 +107,7 @@ implementation of the loading to the upper layer, and to avoid too many calls. T
...
@@ -107,7 +107,7 @@ implementation of the loading to the upper layer, and to avoid too many calls. T
for DEM tiles, keeping a set of recently used tiles in memory up to a customizable maximum number of tiles, and asking for
for DEM tiles, keeping a set of recently used tiles in memory up to a customizable maximum number of tiles, and asking for
new tiles when what is in memory does not cover the region of interest.
new tiles when what is in memory does not cover the region of interest.


The cache and the tiles themselves are implemented at Rugged library level. The loader is implemented at mission specific
The cache and the tiles themselves are implemented at Rugged library level. The loader is implemented at mission specific
interface level, by implementing the TileUpdater interface, which defines a single updateTile method. When this updateTile
interface level, by implementing the TileUpdater interface, which defines a single updateTile method. When this updateTile
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment