01 为什么要进行正射校正?
因为传感器遥远的感知地球时,大家可以想象一下这个画面。
第一:地球本身(譬如地球曲率)会对 传感器收集到的信息产生干扰。(信息本身就是从地面以某种方式被传感器接收到嘛)
第二:在信息传递的途中,信息会受到大气层的干扰,也会对传感器产生干扰。
第三:传感器本身也会对信息产生干扰(所有的测量工具都不能百分百做到没有误差)(譬如传感器本身的姿态、身体的位置)。
当然还有一些其它的误差,譬如比例尺的变化啊,我们常说近大远小,但是我们知道远处的东西未必就比近处的东西小对吧。
02 RPC模型是什么?
2.1 解释
具体的思路,推导过程等等可以参考 张过等的《推扫式光学卫星影像系统几何校正产品的3维几何模型及定向算法研究》
这里引用论文其中的图像,简单说明RPC模型,主要是理解为主,不会讲解计算相关的知识。
RPC模型是基于线性多项式模型进一步的拓展,我们了解的 y = ax + c、x² + y² = 16等等都是线性多项式 。那么线性多项式模型是如何对图像进行校正呢?
一幅图像上的每一个像素都有它的像点坐标(x,y)(即以图像的左上角点为原点,该像素在整幅图像的哪一个行(y),哪一列(x)),以及该像素所在实际位置的DEM高程数据。
那么也就是说,对于一幅图像上的每一个像素,都需要知道该像素所在的行数(y),所在的列数(x),所处位置的DEM高程数据(h) ==> 坐标(x,y,h)。
那么我们的线性多项式模型就是已知若干(假定为m)像素所表示的实际位置的经纬度坐标(lon,lat),那么建立方程组去找到像素在图像上的像元坐标(x,y,h)与像素在实际地球上表示的经纬度坐标(lon,lat)==> 实际也就是求解系数。
假设建立的方程阶数是1,那么至少需要((n + 1) * (n + 2))/ 2 ==> 3个方程才可以解得该系数。建立的方程组如下:
(注意: 方程组中的 f*lat1、2、3 需要删除,这里忘记删除了)
那么也就是说,其实我们的模型其实就是加未知数,加阶数......然后通过某种方法以这些变数作为桥梁去连接图像上像素坐标(x,y,h)与像素对应的经纬度(lon,lat),以找到两者坐标的某种对应关系。之后就可以通过这种对应关系去预测所有像素的的经纬度坐标。
那这里又回到RPC模型,它实际上就是将这种对应关系解决的更好,它使用非线性的关系去建立方程组,而线性多项式模型则是纯粹的使用线性关系去拟合像素坐标与其对应的经纬度坐标的关系。
但是我们知道,人生哪里有那么多1就是1,2就是2的情况,更多的实际上是非线性的关系,所以说RPC模型(基于线性多项式模型的进一步改进)会比线性多项式模型更为妥善的解决几何校正的问题。但是花费的时间等等也会相应的加长.....因为它更复杂!
2.2 准备
我说了这么多其实想说的还是和接下来讲的ENVI操作有关!这才是最关键的。
如果我们需要进行RPC模型的正射校正,我们需要准备什么?
第一:需要准备带有RPC信息的图像文件(这个RPC信息包含的就是传感器在拍摄这张影像时相关的卫星辅助数据等等数据,它们都会参与方程组的构建,具体怎么构建我们不需要管,了解即可。如果没有那么你需要创建RPCs,当然这又是另外一个话题不再今天的讨论范围之内了)
第二:如果图像文件没有DEM高程的波段数据,那么你需要准备与该图像文件配套的DEM高程数据,一般而言高程数据是单独分开存储的。当然,即使没有也是可行的,因为ENVI提供了默认900m分辨率的DEM高程数据。
以上两点是做正射校正需要提前准备的 ==> 图像文件和对应的DEM高程文件
———————————————————————————————————————————
03 实 操
———————————————————————————————————————————
3.1 加载图像文件
如果上面的打开方式你选择打开而不是 打开为 ==> 通用格式 ==> TIFF/GeoTIFF 那么下面个窗口将不会跳出。因为默认是真彩色合成。
加载的图像显示的效果如下
3.2 加载图像对应的DEM高程文件
加载的高程数据显示的效果如下
3.3 寻找并打开 RPC正射校正工作流程 工具
3.4 流程控制
3.4.1 需要校正的图像文件的选择和DEM高程数据的选择
3.4.2 输入控制点 —— 控制点
说明:对于输入控制点,你需要找到你选择的像素所在的实际的精确的经纬度信息和DEM高程信息。至于这些信息如何找到,你可以从老师/学校、测绘局、实地测量等等得到,如果无法得到,那么正射校正无法进行。目前该图像是一幅美国加利福尼亚某地的图像文件。
3.4.3 输入控制点 —— 高级
3.4.4 输入控制点 —— 统计
3.4.5 输入控制点 —— 输出
3.4.6 正在进行正射校正
3.5 输出的效果展示
3.6 校正前后的效果展示