传感器型号

这个班级 otb::SensorTransformBase 是传感器模型的基类。它继承自 otb::Transform ,它继承自 itk::Transform 。它在数据类型以及输入和输出维度上模板化。所有传感器模型类都应该继承它,并实现以下方法:

  • SetMetadataModel 这需要一个 boost::any 表示模型的对象;
  • IsValidSensorModel 如果模型设置正确,则返回TRUE;
  • TransformPoint 这就是转变的过程。

RPC传感器型号

../_images/UmlRPCSensorModel.png

该结构 otb::Projection::RPCParam 用于存储RPC模型的参数。它是基于 GDAL's RPC structure

RPC模型存储在 otb::ImageMetadata 对象,使用键 MDGeom::RPC 。这些班级 otb::RPCTransformBaseotb::RPCForwardTransformotb::RPCInverseTransform 用于使用该模型执行正反变换。

抽象类 otb::RPCTransformBase 包含SetMetadataModel方法的实现,该方法从 otb::ImageMetadata 并实例化一个 otb::GDALRPCTransformer

这些班级 otb::RPCForwardTransformotb::RPCInverseTransform 每个都实现一个版本的 TransformPoint 方法,该方法使用 otb::GDALRPCTransformer

合成孔径雷达传感器模型

../_images/UmlSARSensorModel.png

该结构 otb::SARParam 用于存储合成孔径雷达模型的参数。有关可用参数的详尽列表,请参阅 otb::SARParam ,请参阅 Doxygen

SAR模型存储在 otb::ImageMetadata 对象,使用键 MDGeom::SAR 。这些班级 otb::SarTransformBaseotb::SarForwardTransformotb::SarInverseTransform 用于使用该模型执行正反变换。

抽象类 otb::SarTransformBase 包含SetMetadataModel方法的实现,该方法接收 otb::SARParam 描述来自 otb::ImageMetadata 并实例化一个 otb::SarSensorModel

这些班级 otb::SarForwardTransformotb::SarInverseTransform 每个都实现一个版本的 TransformPoint 方法,该方法使用 otb::SarSensorModel

传感器变送器厂

这个班级 SensorTransformFactory 旨在基于可用的元数据自动实例化最佳传感器变换。一个人应该使用函数 CreateTransform 它是在变换中使用的标量类型以及输入和输出空间的维度上模板化的。它将指向ImageMetadata对象的指针和转换方向(正向或反向)作为参数。它向Transform对象返回std::Unique_ptr。

#include "otbSensorTransformFactory.h"
auto sensorModel = otb::SensorTransformFactory::GetInstance().CreateTransform <double, 2, 3>(imageMetadataPointer, TransformDirection::FORWARD);
auto worldPoint = sensorModel->TransformPoint(sensorPoint);