前言

采用地形无关的控制方案建立 RPC 模型。本次作业是小组作业,成果为小组共同完成,上传博客经小组成员同意。

数据组成

DX_ZY3_NAD_att.txt:记录卫星影像某一时刻的四元数(用于计算本体坐标系与 J2000 坐标系之间的变换矩阵),并没有用到本体到轨道坐标系姿态的三个欧拉角。

DX_ZY3_NAD_gps.txt:记录卫星某一时刻在 WGS84 坐标系中的位置,并没有用到速度数据。

本体到轨道坐标系姿态的三个欧拉角与 GPS 速度数据应该是计算本体坐标系到轨道坐标系、轨道坐标系到 WGS84 坐标系的数。这里我们是用本体坐标系与 J2000 坐标系,然后 J2000 坐标系到 WGS84 坐标系计算的。

此外将 GPS 相位中心坐标直接视为了投影中心坐标,忽视了两者之间的误差,是因为这一部分误差可以归在偏置矩阵中,可以结合光学卫星在轨几何定标相关知识理解。

DX_ZY3_NAD_imagingTime.txt:记录卫星的扫描行对应的时刻,以对应 GPS 定位数据和四元数数据。

NAD.cbr:记录一个扫描行上的像元指向角,包括垂轨和沿轨方向的指向角。在本次作业中,沿轨方向 x 指向角均为0。

NAD.txt:记录偏置矩阵数据。本次作业中该数据均为0,不需要使用。

zy3.tif:卫星影像数据,从.tif文件中可以读取影像的范围,并由此获取相应区域的 DEM 。

在美国地质调查局USGS官网下载航天飞机成像雷达地形测绘(SRTM) DEM 数据,按卫星影像范围裁剪,作为后续检查计算的基础。

zy3_rpc.txt:用途暂时未知。

基本思路

  • 控制点获取

    • 文件读取

    • 格网划分

    • 四元数计算

    • 视向量计算

    • 视向量与椭球的交点

      计算特定 H 下, 椭球与视向量的交点直角坐标

  • 检查点获取

    • 格网划分
    • 根据 DEM 中仿射参数,计算大地坐标 BL 对应的 DEM 像元坐标,获取高程 H
    • 窗口二分法确定扫描行

这两部分有很多相通的地方:

  • 包括读取、处理数据可以公用
  • 直角坐标 XYZ 与大地坐标 BLH 相互转换函数
  • RPC 解算

    • 这一部分的计算很迷,尤其是线性化的方式,和以往的不同
  • 精度检查

要注意的地方

  • 坐标的对应关系

    整个计算过程中涉及到很多种坐标,一定要理清它们之间的关系。

    1. 像方坐标

      • (x , y) 与 (line , sample) 是等价的

      • (height , width)

      • (r , c)

      在本次作业中,sample 对应的是图像的 width, 因而可以看出 x 对应 r,y 对应 c

    2. 地球坐标系

      要注意大地坐标 BLH 与直角坐标 XYZ 之间的转化

  • 像元指向角

    像元指向角文件中的数据是指向角,而不是正切值。

  • 地球椭球的使用

    在获取控制点时,我们是通过影像格网与高度计算的地面点坐标,但其中存在一个问题。使用 xyh 计算坐标的时候得到 XYZ 坐标,

    然后 XYZ 计算 BLH 坐标也会得到一个高程 H 。如果这 xyh 和 BLH 的两个高程不相等,那就会麻烦不少。其解决方法详见 PPT 内容。

  • RPC 的线性化,根据我的理解,它甚至没有用到偏导数,是很不常规的解法。同时,它也不需要提供较为准确的初始值(解出参数的稳定堪忧)