地理配准地形图和扫描地图(QGIS3)¶
大多数GIS项目都需要地理配准某些栅格数据。地理配准 是将实际坐标分配给栅格的每个像素的过程。在许多的情况下,这些座标是透过野外调查收集而来,例如说用 GPS 装置定位那些易于辨识的地标。但有的时候,例如说如果你要使用的是某地图的数位化扫描档,你也可以借由地图上的一些标记来蒐集空间座标。一旦我们有了这些采样的座标点或地面控制点 (Ground Control Points),这些影像就可以用给定的座标系统来投影绘制。在本章节中,我们会讨论相关的概念、作法与 QGIS 提供的工具,以达成高准确度空间对位的目标。
本教学的目标是为一张具有座标资讯 (例如有座标标切的经纬度网格) 的地图影像进行地理配准。如果你的来源影像没有这类资讯,请参考在 地理参考航空影像 (QGIS3) 中的说明
取得资料¶
Hipkiss的扫描过的旧地图 网站上有大量的非版权扫描过的地图集,可用于研究。
这边可以下载储存 1870 年的南印度地图 的 JPG 档。
为了方便起见,你也可以直接用下面的连结下载数据集:
操作流程¶
1.Georeferencing in QGIS is done via the Georeferencer GDAL plugin. This is a core plugin - meaning it is already part of your QGIS installation. You just need to enable it. Go to Georeferencer GDAL plugin in the Installed tab. See 使用附加元件 for more details on how to work with plugins.
and enable the该附加插件安装在栅格菜单中。单击
以打开插件。
此附加元件视窗有上下 2 个部分,上半部是影像显示区,下半部则会以表格方式呈现所有的地面控制点。
现在就来开启我们的 JPG 影像。选择 Open。
,然后找到刚才下载的地图扫描档,按下
接下来,程式会要你选择参考座标系统 (CRS)。我们的来源影像是 JPEG 档,并没有包含任何参考座标系统的资讯,所以你可以点选 Cancel。
您将看到图像将被加载到顶部。您可以使用工具栏中的缩放/平移控件来了解有关地图的更多信息。
现在我们要为图上的某些点指定座标了。仔细观察后,可以发现本地图具有标示经纬度的格线。
在开启加入地面控制点 (Ground Control Points, GCP) 之前,必须先填写空间对位的设定。按下
。
在 Transformation settings 对话框中,将 Transformation type 选择为
Polynomial 2
。 请参阅 QGIS文档 了解不同的穿透式类型及其用法。单击 Target SRS 旁边的 Select CRS 按钮。
在本例的情况下,CRS 资讯可以直接在地图影像扫描档上取得。我们先端详一下地图,可发现本地图的座标是经纬度,不过并没有标示任何的大地座标系统资讯,所以我们得自己假设一个才行。因为此地图是年代久远的印度地图,我们可以猜测它是使用 Everest 1830 大地座标系统,这应该会有不错的结果。搜寻
everest
然后选择最老的 Everest 大地基准的 CRS (EPSG:4042),然后按下 OK。
注解
印度Topo图纸调查是在1960年至2000年之间创建的,使用的是Everest 1956椭球体和India_nepal基准面。如果您要对SOI Topo Sheets进行地理配准,则可以使用以下参数在QGIS中定义自定义CRS,并在此步骤中使用它。此定义包括用于将此数据转换为WGS84的delta_x,delta_y和delta_z参数。有关 印度网格系统 的更多信息,请参见此页面。
+proj=longlat +a=6377301.243 +b=6356100.2284 +towgs84=295,736,257,0,0,0,0 +no_defs
注解
大多数地图都是使用Projected CRS创建的。如果您尝试进行地理配准的地图使用了已知的投影CRS,但是标线标签位于地理CRS(纬度/经度)中,则可以使用替代工作流程来最大程度地减少失真。不用像我们在这里使用的那样使用地理CRS,而是可以在QGIS中创建矢量网格并将其转换为投影的CRS,以用作精确坐标捕获的参考。有关更多详细信息,请参见 本页。
将输出栅格命名为
1870_southern_india_modified.tif
。 选择LZW
作为 Compression 标签。确保选中 Load in QGIS when done 选项。单击 OK。
注解
未压缩的GeoTIFF文件的大小可能非常大。因此压缩它们始终是一个好主意。您可以在 本文 中了解有关不同TIFF压缩选项(LZW,PACKBITS或DEFLATE)的更多信息。
现在,我们可以开始添加地面控制点(GCP)。在我们的案例中,网格线的交点将用作 地面真相。标记网格线后,我们可以使用它们确定点的X和Y坐标。单击 Add Point。
在跳出的视窗中输入此点的座标,记得 X 是经度,Y 是纬度。完成后按下 OK。
这下子,下半部的地面控制点表格会新增一栏你刚刚选的地面控制点。
同样,至少添加更多覆盖整个图像的GCP。点数越多,图像到目标坐标的配准就越准确。多项式2转换至少需要6个GCP。
一旦添加了转换所需的最少点数,您将注意到GCP现在具有非零的
dX
,dY
和Residual
错误值。如果特定的GCP具有异常高的误差值,则通常意味着在输入坐标值时出现人为错误。 因此,您可以删除该GCP并再次捕获它。 您也可以通过点击目标中任一单元格中的单元格来编辑GCP表中的坐标值。 Dest. X 或 Dest. Y 目标标签。对GCP满意后,转到 。 这将开始使用GCP变形图像并创建目标栅格的过程。
处理程式结束后,已经过空间对位修正的图层会被载入到 QGIS 中,空间地理配准的操作就此完成。
注解
GCP也将显示在主QGIS画布中。如果要删除它们,可以切换到 Georeferencer 窗口,然后选择 。
验证做过的事永远是件好习惯,现在就让我们好好检查一下本操作是否准确。请试着从可信的来源(例如 Natural Earth 资料库)寻找并读取含有国家边界的 shapefile,然后跟我们的结果比对一下。你可以看到,他们基本上对应得相当良好,不过仍然有一点小误差。如要减少这些误差,可以增加更多控制点、修改空间对位的参数,或是换另一个猜测的大地座标系统来试试。