Changes
Page history
Update Remove OSSIM
authored
Jul 22, 2021
by
Julien Osman
Show whitespace changes
Inline
Side-by-side
Remove-OSSIM.md
View page @
939aba59
...
@@ -207,6 +207,21 @@ With this file attached, GDAL will be able to read the `egm96.grd` file as a ENV
...
@@ -207,6 +207,21 @@ With this file attached, GDAL will be able to read the `egm96.grd` file as a ENV
### The new Sensor Model mechanism
### The new Sensor Model mechanism
The class
```otb::SensorTransformBase```
is the new base class for
sensor models. It inherits from
```otb::Transform```
, which inherits
from
```itk::Transform```
. It is templated over the data type, and
input and output dimentions. All sensor model classes should inherit
from it, and implement the methods:
-
```SetMetadataModel```
that takes a boost::any object representing
the model;
-
```IsValidSensorModel```
that returns
```true```
if the model is
correctly set;
-
```TransformPoint```
that process the transformation.
#### RPC sensor model
```
mermaid
```
mermaid
classDiagram
classDiagram
class Transform~TScalarType, NInputDimensions, NOutputDimensions~{
class Transform~TScalarType, NInputDimensions, NOutputDimensions~{
...
@@ -233,6 +248,39 @@ classDiagram
...
@@ -233,6 +248,39 @@ classDiagram
-TransformPoint(Point) Point
-TransformPoint(Point) Point
}
}
Transform <|-- SensorTransformBase
SensorTransformBase <|-- RPCTransformBase
RPCTransformBase <|-- RPCForwardTransform
RPCTransformBase <|-- RPCInverseTransform
```
The RPC model is stored in the
```otb::ImageMetadata```
object, using the
key
```MDGeom::RPC```
. The classes
```otb::RPCTransformBase```
,
```
otb::RPCForwardTransform``` and ```otb::RPCInverseTransform``` are used to
perform forward and inverse transformation using this model.
The abstract class ```otb::RPCTransformBase``` contains the implementation
of the ```SetMetadataModel``` method, which receives the RPC
description from the ```otb::ImageMetadata``` and instantiates an
```
otb::GDALRPCTransformer
```.
The classes ```
otb::RPCForwardTransform
``` and ```
otb::RPCInverseTransform
```
each implement there version of the ```
TransformPoint
``` method which
uses the ```
otb::GDALRPCTransformer
```.
### SAR sensor model
```
mermaid
classDiagram
class Transform~TScalarType, NInputDimensions, NOutputDimensions~{
-TransformPoint(Point)
*
Point
}
class SensorTransformBase~TScalarType, NInputDimensions, NOutputDimensions~{
-SetMetadataModel(boost_any)
*
bool
-IsValidSensorModel()
*
bool
}
class SarTransformBase~TScalarType, NInputDimensions, NOutputDimensions~{
class SarTransformBase~TScalarType, NInputDimensions, NOutputDimensions~{
-SetMetadataModel(boost_any) bool
-SetMetadataModel(boost_any) bool
-IsValidSensorModel() bool
-IsValidSensorModel() bool
...
@@ -249,41 +297,12 @@ classDiagram
...
@@ -249,41 +297,12 @@ classDiagram
}
}
Transform <|-- SensorTransformBase
Transform <|-- SensorTransformBase
SensorTransformBase <|-- RPCTransformBase
RPCTransformBase <|-- RPCForwardTransform
RPCTransformBase <|-- RPCInverseTransform
SensorTransformBase <|-- SarTransformBase
SensorTransformBase <|-- SarTransformBase
SarTransformBase <|-- SarForwardTransform
SarTransformBase <|-- SarForwardTransform
SarTransformBase <|-- SarInverseTransform
SarTransformBase <|-- SarInverseTransform
```
```
The class
```otb::SensorTransformBase```
is the new base class for
The SAR model works on the same pattern than the RPC model.
sensor models. It inherits from
```otb::Transform```
, which inherits
from
```itk::Transform```
. It is templated over the data type, and
input and output dimentions. All sensor model classes should inherit
from it, and implement the methods:
-
```SetMetadataModel```
that takes a boost::any object representing
the model;
-
```IsValidSensorModel```
that returns
```true```
if the model is
correctly set;
-
```TransformPoint```
that process the transformation.
#### RPC sensor model
The RPC model is stored in the
```otb::ImageMetadata```
object, using the
key
```MDGeom::RPC```
. The classes
```otb::RPCTransformBase```
,
```
otb::RPCForwardTransform``` and ```otb::RPCInverseTransform``` are used to
perform forward and inverse transformation using this model.
The abstract class ```otb::RPCTransformBase``` contains the implementation
of the ```SetMetadataModel``` method, which receives the RPC
description from the ```otb::ImageMetadata``` and instantiates an
```
otb::GDALRPCTransformer
```.
The classes ```
otb::RPCForwardTransform
``` and ```
otb::RPCInverseTransform
```
each implement there version of the ```
TransformPoint
``` method which
uses the ```
otb::GDALRPCTransformer
```.
## Justifications for the technical choices
## Justifications for the technical choices
...
...
...
...