8. 配准

[sec:geocoding]

如果没有未配准的数据,那么本章可以略过。

为了将扫描栅格图导入为配准过的地图,需要定义两个项目区域。扫描地图首先导入XY 区域(没有投影),然后导入一个定义了坐标系统的区域。

[H]

image

image

8.1. 配准前的准备

[refprepare]

根据所需的地理边界和分辨率,在开始配准以前,需要定义目标区域的投影。原则上,GRASS支持的投影都可以使用,目标区域的的分辨率不能太低。如果目标区域的分辨率比原始数据的分辨率低很多,那么在配准过程中的”重采样”会生成的质量的数字图(有数据丢失)。另一方面,分辨率太高会生成高质量地图,但需要过多的存储空间(文件大小)。

8.1.1. 最优的扫描分辨率

[scanres]

如果纸质地图要导入GRASS,那么地图的扫描分辨率也决定着将要选择的区域分辨率。这看起来很简单,但却需要经过许多尝试和错误,来找到一个合适的扫描分辨率。 为了使区域分辨率达到最优,下面的例子说明了这一过程(反之亦然):

  1. 300dpi 分辨率的计算:

300dpi = 300rows/2,54cm = 118,11rows/cm

  1. 计算与之适应的,1:25000地图的栅格分辨率:

Route_in_nature/scan rows_per_cm = 25000cm/118,11rows = 2.12m/row

如果区域已经定义了分辨率,那么就需要一个扫描分辨率与区域分辨率之间的转换,以此来确定相应的分辨率值。因此,上面的例子需要反算。

8.1.2. 创建所需的项目区域

[refprojs]

第一步要为扫描的原始地图创建一个XY区域。项目区域的范围至少要与原始地图的像元行列数(可以使用’xv’来确定)一致。XY区域要足够大,使其能容纳下原始数据,这一点很重要。 GRASS允许建立的区域比所需的大,所以当我们不确定它是否够用时,就定义一个宽裕的区域(存储空间不会增多!)。分辨率设置为1,这样原始影像的每个像元值都会存入GRASS。 通常地理区域的分辨率确定了扫描地图的像元数目,然而这一关系在没有投影的XY区域中不存在。只有在后面的坐标系统转换中,才会使用”真实的”分辨率(由扫描分辨率和地图分辨率指定)。

第二步是创建目标区域,以转入配准的地图。目标区域需要提供项目所需的投影、范围和分辨率。最简单的情况是配准的地图需要添加的区域已经存在。创建一个目标区域在[sec:vorgehen]中已经描述过了。

处理多幅地图的过程

如果一幅地图由多部份组成,为了避免配准过程中的”错位”,每个部分都应该分别导入到独立的区域中。否则,为了导入一幅整图,在导入GRASS之前需要用图像编辑软件将它们拼起来。但只有在扫描过程中分割的很好时,才可以这么做。 只有当要导入的数据重叠的很好时,才推荐这么做。例如,未配准的卫星影像,其不同光谱范围的影像正确地提供时。

8.2. 配准过程

[georoh] 一旦创建了XY区域和目标区域,我们就可以按下面的步骤来配准原始地图:

  1. 指明地图和影像数据的名称,它们将被导入新创建的影像组中。

    i.group

    • 为该组指定名称:如”map”。
    • 用”x”来选择需要导入的地图。
  2. 指明目标区域和地图集(如高斯-克吕格投影的区域),地图和影像数据将转换到这里。

    i.target

    • 目标区域不能缩放。否则最终产品只是缩放后的视图区,因为GRASS总是处理当前的范围。重设标准分辨率(目标区域内的): g.region -dp
  3. 启动一个GRASS监视器:d.mon start=x0

  4. 指定四边或当前范围的高斯-克吕格坐标值(请参阅[sec:passp])。

    i.points (用于栅格地图) i.vpoints (用于矢量地图)

    • 指明将要转换的影像组(本例为”map”)。

8.2.1. 选择控制点

[sec:passp]

GRASS监视器左边的导入地图/影像是可点击的。有两种方法可以来配准:(A) 使用参考坐标(B)使用已有的参考地图。

[H]

image [abb:ipoints]

(A):如果控制点已知,例如从已有的纸质地图上,有清晰可辨的点(如高斯交点或明确的边界坐标),那么在导入的地图上点击并在终端中输入坐标。

(B): 如果在目标区域内有已配准的地图,地图上有易于区分的点(如道路交叉口或建筑物),并且在待配准的图上也可找到这些点,那么可以用功能将已配准的地图载入右边的窗口。因此,可以在两边的窗口中找到并标记相应的参考点。功能可以用来放大显示控制点位置。(见图[abb:ipoints])

控制点应该均匀分布在地图上。通过可以确定均方差,它应该小于目标区域栅格分辨率的一半。所有局部均方差用来计算总体误差。 如果需要,可以在的窗口上双击某个不准确的点来忽略或重新定位。这样可以减小均方差或使点的分布更均匀。

均匀分布、有”不理想”均方差的点与不均匀分布、有”理想”均方差的点相比,会产生更低的总体错误。

在成功指定了控制和参考点后,模块会退出,指定的坐标会在退出时自动保存。这也适用于前次指定的点,即前次执行的。 用一个新的调用,您可以在同一个区域继续工作。

根据原始数据和选择的多项式的次数,当设置了足够的控制点后,模块会启动。此时,影像组必须首先指明。接着会询问地图是否

  1. 能够转换到目标区域的当前范围中 (与目标区域的当前设置参数一致;
  2. 或最小范围中(在目标区域中GRASS会独立计算该范围)。

如果选择了1’current region’,那么在配准之前需要再次确认,是否正确选择了目标区域的当前设置。由于所有数据都会自动保存,所以先退出,检验目标区域的当前设置或修改它,然后再调入XY区域和,是没有问题的。

8.2.2. 确定转换是否正确

正确的转换由多项式次数确定,这依赖于变形的程度和有效控制点的数目。影像内部变形越大,多项式的次数就越高,要精确配准(见表[polies])就需要更多的控制点。然而过高的多项式次数在数学上又是不合理的。

作为一个经验法则,正确的影像需要最少控制点和最小的多项式次数。否则,变形的影像需要更多的控制点和更高的多项式次数。

[H]

多项式次数 最少的控制点数 模块
1 3  
2 6  
3 10  
4 15  

对于选定的多项式次数,如果设置的控制点太少,那么GRASS不会启动校正过程。表[polies]给出了一个确定控制点数目的参考。实践证明1到3次多项式都是有效的。3次以上的多项式需要10个以上的控制点。