14.3. 课: 林分数字化

除非打算将配准地图用作简单的背景图像,否则下一步自然是将其元素数字化。当您对学校场地数字化时,已经在 课: 创建新的矢量数据集 的有关创建矢量数据的练习中完成了此操作。在本课,您将对地图中显示为绿线的林分边界进行数字化,此地图不是使用航拍图像,而是使用配准地图。

本课目标: 学习一种帮助完成数字化任务的技术,将林分数字化,并最终将清查数据添加到其中。

14.3.1. basic 跟我做: 提取林分边界

在QGIS中打开上节课保存的 map_digitizing.qgs 工程。

扫描和配准地图后,可以通过查看图像作为辅助直接开始数字化。例如,如果要数字化的图像是航拍照片,那么这很可能是一种方法。

如果您用来数字化的是一张不错的地图,就像我们的示例一样,很可能会清晰地显示每种元素类型不同颜色的线条信息。使用类似 GIMP 这样的图像处理软件,可以相对容易地提取用来辅助数字化的单独图像,如下所示。

第一步是使用GIMP获取仅包含林分的图像,即可以在原始扫描地图中看到的所有绿色线条:

  • 打开GIMP (如果您还未安装,可以从网上下载或咨询您的老师)。

  • 单击 文件 ► 打开 ,在 exercise_data/forestry 文件夹中打开 rautjarvi_map.tif 原地图图像。请注意,林分用绿线表示 (每个多边形内的林分编号也使用绿色)。

../../../_images/gimp_map.png

现在,您可以选择图像中构成林分边界的像素 (绿色像素):

  • 打开工具 选择 ► 按颜色

  • 激活该工具后,放大图像 (Ctrl + 鼠标滚轮),使林分线足够近,以区分形成此线条的像素。请参见下左图。

  • 在线中间单击并拖动鼠标光标,以便该工具收集多个像素颜色值。

  • 释放鼠标左键并等待几秒钟,与工具收集的颜色相匹配的像素将在整个图像中被选中。

  • 缩小视图,查看在整个图像中绿色像素的选择情况。

  • 如果对结果不满意,请重复单击并拖动操作。

  • 您的像素选择应该类似于下右图。

../../../_images/green_px_selected.png

完成选择后,需要将此选择复制为新图层,然后另存为单独的图像文件:

  • 复制 (Ctr+C) 所选像素。

  • 如果直接粘贴像素 (Ctr+V),GIMP在 图层 面板将粘贴的像素显示为新的临时图层,称为 浮动选区 (被粘贴的图层)

  • 在临时图层上右键单击,然后选择 到新图层

  • 单击原图像图层旁边的 "眼睛" 图标将其关闭,这样只有 被粘贴的图层 可见:

../../../_images/saving_green_px.png
  • 最后,选择 文件 ► 导出... ,在导出图像对话框中设置 选择文件类型 (按扩展名)TIFF 图像 ,选择 digitizing 文件夹并将其命名为 rautjarvi_map_green.tif 。询问时选择 压缩方式。

您可以对图像中的其他元素执行相同的处理,例如提取表示道路的黑线或表示地形等高线的棕色线。但对我们来说,林分就足够了。

14.3.2. basic 试一试 配准绿色像素图像

正如在上一课中所做的那样,您需要对该新图像进行地理配准,以便能够将其与其他数据一起使用。

请注意,您不再需要数字化地面控制点,因为就地理配准工具而言,该图像基本上与原地图图像相同。以下是您应该注意的地方:

  • 当然,该图像也在 KKJ / Finland zone 2 CRS中。

  • 应该使用您保存的GCP 文件 ► 加载地面控制点

  • 请查看 变换设置

  • 将输出栅格命名为 rautjarvi_green_georef.tif ,并保存在 digitizing 文件夹。

检查新栅格是否与原地图完美匹配。

14.3.3. basic 跟我做: 为数字化创建支点

考虑到QGIS中的数字化工具,您可能已经认为,在数字化时捕捉这些绿色像素会很有帮助。这正是您接下来要做的,通过使用QGIS中可用的捕捉工具,从这些像素创建点,以便稍后使用它们来帮助您在数字化时跟踪林分的边界。

  • 使用 栅格 ► 转换 ► 栅格矢量化 (栅格转矢量) 工具将绿线矢量化为多边形。如果忘记如何操作,可以温习 课: 栅格转换为矢量

  • 另存为 rautjarvi_green_polygon.shpdigitizing 文件夹中。

放大并查看多边形的外观,您会得到这样的结果:

../../../_images/green_polygons.png

从这些多边形获取点的下一个选项是得到它们的质心:

  • 打开 矢量 ► 几何图形工具 ► 质心

  • 将刚取得的多边形图层设置为该工具的输入文件。

  • 将输出命名为 green_centroids.shp ,并保存在 digitizing 文件夹。

  • 勾选 执行算法后打开输出文件

  • 运行该工具以计算多边形的质心。

../../../_images/green_points.png

现在可以从TOC移除 rautjarvi_green_polygon 图层。

将质心图层的符号更改为:

  • 打开 green_centroids图层属性

  • 转到 符号化 选项卡。

  • 单位 设置为地图单位。

  • 设置 大小 为 1。

不需要将点相互区分开,只需要它们在那里,捕捉工具就可以使用。现在,您可以使用这些点来跟随原线条,这比不使用它们要容易得多。

14.3.4. basic 跟我做: 数字化林分

现在,您可以开始真正的数字化工作了。可以先创建 多边形类型 的矢量文件,但对于本练习,有一个Shapefile,其中关注区的一部分已经数字化。您只需将主要道路 (宽粉色线) 和湖泊之间剩下的一半林分数字化即可:

../../../_images/forest_stands_to_digitize.png
  • 使用文件管理器转到 digitizing 文件夹。

  • forest_stands.shp 矢量文件拖放到您的地图。

修改新图层的符号,便于更容易看到哪些多边形已经数字化:

  • 将多边形填充为绿色。

  • 多边形的边界为 1 毫米。

  • 并将透明度设置为50%。

现在,您还记得之前单元学习的内容吗?我们必须设置并激活捕捉选项:

  • 转到 工程 ► 捕捉选项...

  • 激活 green_centroidsforest_stands 图层的捕捉。

  • 将其 容差 设置为 5 个地图单位。

  • 勾选 forest_stands 图层的 避免重叠 方框。

  • 选中 启用拓扑编辑

  • 单击 应用

../../../_images/snapping_settings_forest.png

使用这些捕捉设置,无论何时进行数字化,距离质心图层中的某个点或数字化多边形的顶点足够近时,都会在要捕捉的点上显示一个粉红色的十字。

最后,关闭除 forest_standsrautjarvi_georef 之外的所有图层的可见性。确保地图图像不再具有透明度。

开始数字化之前,需要注意以下几点:

  • 不要试图过于精确数字化边界。

  • 如果边界是一条直线,只需两个结点即可将其数字化。通常,使用尽可能少的结点进行数字化。

  • 仅当您认为需要精确时才放大到近距离,例如,在某些拐角处,或者当您希望某个多边形在某个结点与另一个多边形连接时。

  • 在数字化时,使用鼠标中键进行放大/缩小和平移。

  • 一次仅能数字化一个多边形。

  • 数字化一个多边形后,写出从地图上可以看到的林分ID。

现在您可以开始数字化了:

  • 在地图窗口中找到林分编号357。

  • 激活编辑 forest_stands.shp 图层。

  • 选择 添加要素 工具。

  • 通过连接一些点开始数字化林分号 357

  • 请注意,粉红色的十字表示捕捉。

../../../_images/dgitizing_357_1.png
  • 完成后,右键单击结束对该多边形的数字化。

  • 输入林分 ID (本例中为357)。

  • 单击 确定

如果完成数字化后没有提示您输入多边形 ID ,请转到 设置 ► 选项 ► 数字化 并确保 要素创建后不要弹出属性表单 未勾选。

您的数字化多边形如下所示:

../../../_images/dgitizing_357_3.png

现在,数字化林分号为358的第二个多边形。确保勾选 forest_stands 图层的 避免重叠 。此选项不允许数字化时使多边形相交,因此,如果在现有多边形上进行数字化,新多边形将被修剪以符合现有多边形的边界。可以使用此特征自动获取公共边界。

  • 在林分357的一个公共角开始数字化林分358。

  • 然后继续正常操作,并到达两个林分的另一个公共角。

  • 最后,数字化多边形357内的几个点,确保公共边界不相交。见下左图。

  • 右键单击完成对林分358的编辑。

  • 输入 ID 为 358。

  • 单击 确定 ,新多边形应显示与林分357的公共边界,如下右图所示。

../../../_images/dgitizing_358_5.png

多边形与现有多边形重叠的部分已被自动修剪,剩下的是一个公共边界,就像您所期望的那样。

14.3.5. basic 试一试 完成林分的数字化

现在您已完成两个林分,和如何数字化的好方法。继续您的数字化,直到已经数字化了所有主要道路和湖泊之间的林分。

这看起来工作量很大,但您很快就会习惯数字化林分。整个过程大概需要15分钟。

在数字化过程中,可能需要编辑或删除结点、分割或合并多边形。您可在 课: 要素拓扑 中学习了有关必要的工具,现在可能是复习的好时机。

请记住, 启用拓扑编辑 激活后,可以移动两个多边形的公共结点,以便同时编辑两个多边形的公共边界。

您的成果将如下所示:

../../../_images/stands_fully_digitized.png

14.3.6. basic 跟我做: 连接林分数据

有可能地图上的森林资源清查数据写在纸上。在这种情况下,您必须首先将数据录入文本文件或电子表格。对于本练习,1994年清单 (与地图相同的清单) 中的信息以逗号分隔文本 (csv) 文件的形式准备就绪。

使用文本编辑器从 exercise_data\forestry 目录打开 rautjarvi_1994.csv 文件,请注意,清查数据文件有一个名为 ID 的属性,该属性包含林分的编号。这些数字与您为多边形输入的林分ID相同,可用于将文本文件中的数据链接到矢量文件。您可以在同一文件夹的 rautjarvi_1994_legend.txt 文件中看到此清查数据的元数据。

  • 在QGIS中使用 图层 ► 添加分隔文本图层... 工具打开 .csv ,并在对话框中进行如下设置:

../../../_images/inventory_csv_import.png

.csv 文件添加数据:

  • 打开 forest_stands 图层的图层属性。

  • 转到 连接 选项卡。

  • 单击对话框底部的加号。

  • 选择 rautjarvi_1994.csv连接图层ID连接字段

  • 确保 目标字段 也设置为 ID

  • 单击 确定 两次。

文本文件的数据现在应该链接到您的矢量文件。要查看发生的变化,请打开 forest_stands 图层的属性表。您可以看到,清查数据文件中的所有属性现在都链接到了数字化矢量图层。

14.3.7. basic 试一试 重命名属性名称并添加面积和周长

.csv 文件中的数据只是链接到您的矢量文件。要使此链接永久化,以便将数据实际记录到矢量文件,需要保存 forest_stands 图层为新的矢量文件。关闭属性表,右键单击 forest_stands 图层,将其保存为 forest_stands_1994.shp

如果尚未添加,请在地图中打开新的 forest_stands_1994.shp 文件,然后打开属性表。您会注意到,刚才添加的列的名称没有多大用处。要解决这个问题:

  • 添加插件 Table Manager ,就像之前使用其他插件一样。该插件更新到2016年,最新版的QGIS已不再支持。

  • 确保插件已激活。

  • 在TOC,选择 forest_stands_1994.shp 图层。

  • 然后,转到 矢量 ► Table Manager ► Table manager

  • 使用对话框编辑列的名称,以匹配 .csv 文件中的列名。

../../../_images/forestry_table_manager.png
  • 单击 保存

  • 选择 Yes 保留图层样式。

  • 关闭 Table Manager 对话框。

要完成收集与这些林分相关的信息,可以计算林分的面积和周长。您在 课: 补充练习 计算了多边形的面积。如果需要计算林分的面积,请返回查看该课程。命名新属性 Area ,并确保计算的值以公顷为单位。

现在,您的 forest_stands_1994.shp 图层已准备就绪,并包含所有可用信息。

保存您的工程以保留当前的地图演示,防备以后需要时再返回查看。

14.3.8. 综上所述

只需点击几下鼠标,您就有了数字格式的旧清查数据,并可以在QGIS中使用。

14.3.9. 下节引言

可以开始使用新数据集进行不同的分析,但您可能更感兴趣的是在更加新的数据集中执行分析。下一课的主题是使用当前的航拍照片创建林分,并将一些相关信息添加到数据集。