Skip to content

Refactor GeocentricTransform and remove EllipsoidAdapter

Cédric Traizet requested to merge refactor_geocentric_transform into develop

Summary

GeocentricTransform is a subclass of otb::Transform implementing WGS 84 geographical to ECEF geocentric coordinate transformation. This class uses the EllipsoidAdapter, the adapter class to ossimEllipsoid.

As part of the Ossim removal refactoring, this MR modifies the class to use OGR coordinate transformations instead of Ossim. ECEF coordinates are defined by the EPSG:4978 code.

This MR also removes the NInputDimensions and NOutputDimensions template parameters of GeocentricTransform and fixes the input and output dimensions to 3, as the transformation is not defined for dimension 2 (the current code would actually crash for a geocentric of input or output dimension of 2. The class is still templated over the transform direction (FORWARD/INVERSE) and the scalar type used.

This class was actually not used in OTB, excepted in the prTvGeocentricTransform test, as ECEF transformations were only used in OssimPlugins, not OTB. However this MR also refactors SarSensorModel to use otb::GeocentricTransform instead of otb::GenericMapProjection with the EPSG:4978 map projection.

This MR also removes EllipsoidAdapter from otb, as it is not used anymore.

Tests

The prTvGeocentricTransform tests the class. Therefore this MR is validated by non regression on this test. All test using SarSensorModel are also impacted by this MR.

Copyright

The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.


Check before merging:

  • All discussions are resolved
  • At least 2 👍 votes from core developers, no 👎 vote.
  • The feature branch is (reasonably) up-to-date with the base branch
  • Dashboard is green
  • Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
  • Optionally, run git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i on latest changes and commit

Merge request reports