从原始图像到校准产品

本节介绍了按标准顺序提供的各种前处理任务,以获得经过校准、全色锐化的图像。

光学辐射定标

在遥感图像中,像素值被称为数字数字(DN),它们不能在物理上进行解释或比较。它们受到各种因素的影响,如流经传感器的光量、探测器的增益和模数转换器。

根据季节、光线和大气条件、太阳位置或传感器内部参数的不同,对于给定的像素,这些dN可能会发生巨大变化(除了任何地面变化影响)。此外,这些影响在光谱上并不均匀:例如,气溶胶的数量和类型通常对蓝色通道的影响更大。

因此,在对像素值进行物理解释之前,有必要对像素值进行校准。特别是,在比较多个图像(来自同一传感器)之间的像素光谱之前,这一处理是强制性的,并且训练分类器而不依赖于采集时的大气条件。

校准值被称为表面反射率,这是一个比率,表示在给定光谱范围内被下表面反射的光的比例。因此,它的值位于 [0,1] 。为方便起见,图像通常以千分之一的反射率存储,以便可以用整数类型进行编码。通常区分两个级别的校准:

  • 第一个级别称为 Top Of Atmosphere (TOA) 反射率。它考虑了传感器的增益、传感器的光谱响应和太阳照度。
  • 第二个级别称为 Top Of Canopy (TOC) 反射率。除了传感器增益和太阳照度外,它还考虑了大气的光学厚度、大气压力、水蒸汽量、臭氧以及气溶胶气体的组成和数量。

这种转变可以通过OTB应用程序来完成。与传感器相关的参数,如增益、日期、光谱灵敏度和传感器位置,可从图像元数据中无缝读取。大气参数可由用户调节。支持的传感器包括:

  • Pleiades
  • SPOT5
  • QuickBird
  • Ikonos
  • WorldView-1
  • WorldView-2
  • FORMOSAT

这个 OpticalCalibration 应用程序执行光学校准。必选参数为输入和输出图像。所有其他参数都是可选的。默认情况下,校准级别设置为TOA(大气顶部)。输出图像使用16位无符号整数类型以千分之一的反射率表示。

可以使用以下命令执行基本TOA校准任务:

otbcli_OpticalCalibration -in  input_image -out output_image

可以使用以下命令执行基本的TOC校准任务:

otbcli_OpticalCalibration -in  input_image -out output_image -level toc

全景锐化

由于传感器设计的物理限制,很难同时实现高空间分辨率和光谱分辨率:更好的空间分辨率意味着更小的探测器,这反过来意味着探测器表面的光流更少。相反,光谱带是通过在探测器表面应用滤光片获得的,这降低了光流,因此有必要增加探测器尺寸以达到可接受的信噪比。

由于这些原因,许多高分辨率卫星有效载荷由两组探测器组成,而探测器又提供两种不同类型的图像:

  • 多光谱(XS)图像,由3到8个光谱波段组成,通常包含给定分辨率(通常从2.8米到2米)的蓝、绿、红和近红外波段。
  • 全色(PAN)图像是由覆盖更宽光谱部分的探测器获取的灰度图像,它允许增加光流,从而减小像素大小。因此,全色图像的分辨率通常比多光谱图像的分辨率低约4倍(从46厘米到70厘米)。

这两个图像通常是由数据提供商并排提供的。这样的数据集称为捆绑包。一种非常常见的遥感处理方法是将全色图像与多光谱图像进行融合,从而得到一幅结合了全色图像的空间分辨率和多光谱图像的光谱丰富度的图像。这一操作被称为泛锐化。

此融合操作需要两个不同的步骤:

  1. 多光谱(XS)图像被缩放并配准到全色图像,
  2. 将逐个像素的融合算子应用于多光谱和全色图像的共配准像素以获得融合的像素。

使用OTB应用程序,可以同时执行这两个步骤,或分步融合,如以上各节所述。

这个 BundleToPerfectSensor 应用程序同时执行这两个步骤。无缝传感器建模用于在全色图像上执行多光谱图像的缩放和配准。在Pléiade束的情况下,使用了不同的方法:使用仿射变换来缩放多光谱图像并应用残差平移。该转换是基于关于束的几何处理的元数据来计算的。多光谱图像在全色图像上的这种缩放和配准也可以由 Superimpose 申请。

在配准步骤之后,根据以下公式应用简单的全景锐化:

PXS(i,j)=FRAC{PAN(i,j)}{PAN_{Smooth}(i,j)}CDOT XS(i,j)

哪里 ij 是像素索引, PAN 是全色图像, XS 是多光谱图像和 PAN_{smooth} 全色图像是否使用核进行平滑以适应多光谱图像的比例。

下面是一个简单的示例,说明如何使用 BundleToPerfectSensor 应用程序:

otbcli_BundleToPerfectSensor -inp pan_image -inxs xs_image -out output_image

此外,还有一些可选参数可用于此工具:

  • 这个 -elev 选项指定高程,或者使用针对OTB格式化的DEM (-elev.dem 选项,请参见部分  数字高程模型管理 )或平均海拔高度 (-elev.default 选项)。由于多光谱图像的配准和缩放是使用传感器模型来执行的,因此在高程变化较大的情况下,配准可能不是完美的。在这种情况下,DEM将允许实现更好的注册。
  • 这个 -lmSpacing 选项指定多光谱图像和全色图像之间的配准栅格的步长。这是用全色像素量表示的。较低的值提供更精确的配准,但意味着使用传感器模型进行更多的计算,从而增加计算时间。默认值为10像素,这在大多数情况下提供了足够的精度。
  • 这个 -mode 选项选择多光谱图像的配准模式。这个 default 模式使用每个图像的传感器模型来创建通用的“MS到平移”转换。这个 phr 模式使用简单的仿射变换(既不需要高程源,也不需要注册网格)。

全景锐化是一个需要大量系统资源的过程。这个 -ram 选项允许您限制可用于计算的内存量,还可以避免计算机过载。增加可用的RAM数量也可能会导致更好的计算时间,似乎它优化了系统资源的使用。默认值为256 Mb。

../_images/monteverdi_QB_XS_pan-sharpened.png

图5:使用Orfeo工具箱的全景锐化图像。

还请注意,由于多光谱图像与全色图像的配准和缩放依赖于传感器建模,因此此工具仅适用于传感器型号在 Orfeo ToolBox (见第节 正射纠正与地图投影 查看详细列表)。它还将与地图投影中的正射影像产品合作。

数字高程模型管理

数字高程模型(DEM)是地理参考图像(或图像集合),其中每个像素对应一个局部高程。DEM对于涉及传感器到地面和地面到传感器坐标转换的任务非常有用,例如,正射校正(请参见部分 正射纠正与地图投影 )。这些变换需要找到传感器的视线和地球大地水准面之间的交点。如果使用简单的椭球体作为地球模型,在海拔较高或受干扰的地区可能会产生很高的定位误差。当然,DEM的精度和分辨率对这些转换的精度有很大的影响。

两种主要的DEM免费提供,并覆盖全球,均以1度乘1度的瓷砖形式交付。它们是:

这个 Orfeo ToolBox 依赖于 GDAL 处理DEM的能力。给定DEM的切片应该位于单个目录中。GeoTIFF文件也支持常规高程支持。

每当应用程序需要DEM时,选项 elev.dem 设置DEM目录。此目录必须包含DTED或SRTM格式或GeoTIFF格式的DEM切片。不支持子目录。

根据高程的参考,还需要使用大地水准面来精确管理高程。为此,需要指定包含大地水准面的文件的路径。 Geoid 对应于与地球平均海洋表面重合的等势面。

我们提供一个大地水准面 OTB-Data 存储库。

在所有应用程序中,选项 elev.geoid 管理到大地水准面的路径。最后,如果没有可用的DEM,也可以使用平均高程 elev.default 选择。

正射纠正与地图投影

遥感图像市场上有几个级别的产品可用。最基本的级别通常提供获取的几何图形(有时称为原始几何图形)。在这种情况下,像素坐标不能直接用作地理位置。对于大多数传感器(但不是全部),不同的线对应于不同的采集时间,从而对应于不同的传感器位置,并且不同的行对应于探测器的不同单元。

为了将原始图像配准到地图网格而进行的映射称为正射纠正,它至少包含以下效果:

  • 在大多数情况下,直线与传感器轨迹垂直,传感器轨迹并不完全(在某些情况下根本不是)沿着南北轴,
  • 视传感器而定,视线可能不同于Nadir(传感器的地面位置),因此可能出现投影翘曲,
  • 景观中高度的变化可能会导致图像严重扭曲。

此外,根据获取图像的世界区域的不同,应该使用不同的地图投影。

正射校正过程如下:一旦定义了适当的地图投影,计算定位网格以将像素从原始图像映射到正射校正后的图像。然后根据该网格对原始图像中的像素进行内插,以填充正射校正后的像素。

可使用OTB应用程序进行正畸矫正。如果所有辅助文件都可用,则无需任何用户交互即可从图像文件中无缝读取传感器参数和图像元数据。用于其的传感器 Orfeo ToolBox 支持原料药的正畸精馏如下:

  • Pleiades
  • SPOT5
  • Ikonos
  • 快鸟
  • GeoEye
  • WorldView

此外,GeoTiff和其他具有地理信息文件格式可由 Orfeo ToolBox ,并且可以使用正射纠正工具在另一地图投影中对这些图像进行重新采样。

谨防“整形外科”产品

有一些形象产品,被称为“正畸准备”,应该仔细处理。它们是原始几何体中的实际产品,但它们的元数据也包含投影数据:

  • 地图投影
  • 物质起源
  • 物理间隔
  • 有时还有一个方位角

该投影信息的目的是给出对原始产品的近似地图投影。它允许您在GIS查看器中将原始图像显示在(几乎)正确的位置,而不必重新投影它。显然,此地图投影不像原始几何体的传感器参数那样精确。此外,如果使用地图投影,则无法观察到高程模型的影响。为了对此类型的产品执行正射校正,必须隐藏地图投影 Orfeo ToolBox

您可以使用以下命令查看某个产品是否为“正畸”产品 gdalinfo 或OTB ReadImageInfo应用程序。检查您的产品是否符合以下两个条件:

  • 积是原始几何图形:您应该预料到RPC系数的存在。
  • 该产品有一个地图投影:您应该看到一个具有物理原点和间距的投影名称。

在这种情况下,您可以隐藏地图投影 Orfeo ToolBox 通过使用 extended 文件名。不使用普通输入图像路径,而是在末尾附加一个特定的键:

"path_to_image?&skipcarto=true"

对于成功的解析,双引号可能是必需的。有关扩展文件名的更多详细信息,请参阅 扩展文件名 一节。

使用正射矫正 OTB Applications

这个 OrthoRectification 应用程序执行正射纠正和地图重新投影。使用它的最简单方法是使用以下命令:

otbcli_OrthoRectification -io.in input_image -io.out output_image

在这种情况下,该工具将自动估计所有必要的参数:

  • 地图投影被设置为UTM(全球地图投影)并且自动估计UTM区域,
  • 计算输出图像的地面采样距离以匹配图像分辨率,
  • 估计感兴趣区域(图像的左上角和大小)以包含整个输入图像范围。

为了使用数字高程模型来提高定位精度,可以将包含DEM切片的目录传递给应用程序,如下所示。有关使用DEM的更多信息,请参阅 数字高程模型管理

otbcli_OrthoRectification -io.in input_image
                          -io.out output_image
                          -elev.dem dem_dir

如果要使用不同的地图投影, -map 选项可以使用(例如 lambert93 地图投影):

otbcli_OrthoRectification -io.in input_image
                          -io.out output_image
                          -elev.dem dem_dir
                          -map lambert93

应用程序处理的地图投影如下(请注意,椭球体始终为WGS84):

  • UTM: -map utm |UTM区域和半球可通过选项设置 -map.utm.zone-map.utm.northhem
  • 《兰伯特2》: -map lambert2

  • 兰伯特93: -map lambert93

  • TransMercator: -map transmercator |相关参数(伪东距、伪北距、比例因子)可通过选项进行设置 -map.transmercator.falseeasting-map.transmercator.falsenorthing-map.transmercator.scale
  • WGS: -map wgs

  • 任何带有EPSG代码的地图投影系统: -map epsg |使用选项设置EPSG代码 -map.epsg.code

这群人 outputs 包含用于设置输出图像的原点、大小和间距的参数。例如,可以按如下方式指定地面间距:

otbcli_OrthoRectification -io.in input_image
                          -io.out output_image
                          -elev.dem dem_dir
                          -map lambert93
                          -outputs.spacingx spx
                          -outputs.spacingy spy

请注意,由于图像的y轴是底部定向的,y间距应为负数,以避免切换南北方向。

可按如下方式指定要进行正射校正的用户定义的感兴趣区域:

otbcli_OrthoRectification -io.in input_image
                          -io.out output_image
                          -elev.dem dem_dir
                          -map lambert93
                          -outputs.spacingx spx
                          -outputs.spacingy spy
                          -outputs.ulx ul_x_coord
                          -outputs.uly ul_y_coord
                          -outputs.sizex x_size
                          -outputs.sizey y_size

在那里 -outputs.ulx-outputs.uly 选项指定输出图像左上角的坐标,而选项: -outputs.sizex-outputs.sizey 指定输出图像的大小。

还有一些更有趣的选项可供选择:

  • 这个 -opt.rpc 选项使用估计的RPC模型而不是严格的SPOT5模型,这加快了处理速度,
  • 这个 -opt.gridspacing 选项定义用于正射校正的本地化栅格的间距。较粗的网格会加快处理速度,但可能会降低精度。标准值将是输出图像地面间距的10倍。
  • 这个 -interpolator 选项在最近邻、线性和双三次之间更改插补算法。默认为最近邻插值,但在大多数情况下,双三次应该可以。
  • 这个 -opt.ram 选项指定可用于处理的内存量(以Mb为单位),默认为256 Mb。增加此值以适应计算机上的可用内存可以加快处理速度。