... | ... | @@ -322,14 +322,14 @@ OSSIM DEMs. It provided an API to retrieve height from DEM and/or geoid using OS |
|
|
The `otb::DEMHandler` class is a singleton, a reference to the `otb::DEMHandler` object can be obtained via the `GetInstance()` method. This is a change of API, the Ossim `otb::DEMHandler` returned a ITK smart pointer to the singleton object. This was not a very good design, and a singleton object does not need to use the ITK memory management system.
|
|
|
|
|
|
|
|
|
The new approach is based on RasterIO from GDAL. A 2x2 window is extracted around the point of interest, and the height, above ellipsoid or above mean sea level. The following methods are provided:
|
|
|
The new approach is based on `RasterIO` from GDAL. A 2x2 window is extracted around the point of interest, and the height, above ellipsoid or above mean sea level. The following methods are provided:
|
|
|
|
|
|
* GetHeightAboveEllipsoid():
|
|
|
* GetHeightAboveEllipsoid(lon, lat):
|
|
|
* SRTM and geoid both available: dem_value + geoid_offset
|
|
|
* No SRTM but geoid available: default height above ellipsoid + geoid_offset
|
|
|
* SRTM available, but no geoid: dem_value
|
|
|
* No SRTM and no geoid available: default height above ellipsoid
|
|
|
* GetHeightAboveMSL():
|
|
|
* GetHeightAboveMSL(lon, lat):
|
|
|
* SRTM and geoid both available: dem_value
|
|
|
* No SRTM but geoid available: 0
|
|
|
* SRTM available, but no geoid: dem_value
|
... | ... | @@ -350,10 +350,7 @@ that the DEM management functions are not part of GDAL's |
|
|
API. Therefore, it is not possible to access the DEM interpolation as
|
|
|
expected from the OTB.
|
|
|
|
|
|
#### Possible evolutions
|
|
|
|
|
|
1. It has been proposed to change the behavior of the DEM handler when a DEM is available but no geoid is, currently it returns the DEM height but it could return the sum of the DEM height and the default height above ellipsoid instead. This can be done in future work.
|
|
|
2. The DEMHandler performs one rasterIO on a 2x2 window (for interpolation) call for each height request. It could be optimized to call rasterIO on a bigger window to take advantage of GDAL caching, like it is done in the RPC module of GDAL. This can be done in future work.
|
|
|
Note that RPC transforms will use GDAL DEM functions internally instead of using `otb::DEMHandler`.
|
|
|
|
|
|
|
|
|
|
... | ... | |