09_QGIS3 地形数据处理
原文链接: https://www.qgistutorials.com/en/docs/3/working_with_terrain.html
地形数据处理(QGIS3)¶
地形或高程数据对许多 GIS 分析非常有用,并经常用于地图制作。QGIS3 内置了强大的地形处理功能。在本教程中,我们将逐步学习如何从高程数据(如数字高程模型)生成晕渲图和等高线等各种产品。
任务概述¶
任务是为珠穆朗玛峰周边地区创建等高线和晕渲地图。
您将学习的其他技能¶
- 搜索和下载免费可用的地形数据。
- 将矢量图层导出为 KML 格式并在 Google Earth 中查看。
- 平滑等高线。
获取数据¶
我们将使用美国地质调查局(USGS)的 GMTED2010 数据集。GMTED(全球多分辨率地形高程数据) 是一个全球地形数据集,是 GTOPO30 数据集的更新版本。
以下是如何从 USGS 地球资源观测与科学中心(EarthExplorer)搜索和下载相关数据的步骤。
- 访问 USGS EarthExplorer 网站。在 Search Criteria 选项卡下,点击 World Features。在 Feature Name 中输入
Everest,在 Country 中输入NEPAL,然后点击 Show。这将显示一个包含位置信息的表格。在 Placename 下选择 Everest。

- 现在画布将移动到珠穆朗玛峰的位置。点击 Data Sets。

操作流程¶
- 打开 Layer(图层) -> Add Layer(添加图层) -> Add Raster Layer(添加栅格图层)。

- 点击 Source(源) 下的 ...,搜索并选择名为
10n060e_20101117_gmted_mea300.tif的文件。

- 您将在 QGIS 画布中看到渲染的地形数据。地形栅格中的每个像素代表该位置的平均海拔(以米为单位)。深色像素代表低海拔区域,浅色像素代表高海拔区域。

- 让我们定位感兴趣区域。根据 维基百科,我们得知感兴趣区域——珠穆朗玛峰——的坐标是 27.9881° N,86.9253° E。请注意,当坐标参考系统(CRS)设置为 EPSG:4326 时,QGIS 使用 (纬度, 经度) 格式。因此,在 QGIS 窗口底部显示为 Coordinate(坐标) 的位置粘贴数值
27.9881, 86.9253,然后按下 guilabel:Enter键。视口将以此坐标为中心。要放大,请在 Scale(比例尺) 字段中输入1:1000000并按 Enter。您将看到视口放大到喜马拉雅山脉周边区域。

- 现在,我们将栅格裁剪到此感兴趣区域。在 Processing Toolbox(处理工具箱) 中搜索
Clip。在 GDAL 算法下选择Clip Raster by extent(按范围裁剪栅格)。

- 在 Clip Raster by Extent(按范围裁剪栅格) 窗口中,选择
10n060e_20101117_gmted_mea300作为 Input Layer(输入图层),点击 Clipping extent(裁剪范围) 旁边的...并选择Use Map canvas extent(使用地图画布范围),点击 Clipped (extent)(裁剪后(范围)) 旁边的...并输入名称为mt_everest.tif。点击 Run(运行)。

- 一个新图层
mt_everest将出现在画布中。在 Processing Toolbox(处理工具箱) 中搜索Hill。在 GDAL 算法下选择Hillshade(山体阴影)算法。

- 在 Hillshade(山体阴影) 窗口中,选择
mt_everest作为 Elevation Layer(高程图层),在 Azimuth (horizontal angle)(方位角(水平角度)) 中输入315.000,在 Vertical angle(垂直角度) 中输入45.000。点击 Hillshade(山体阴影) 旁边的...并输入名称为mt_everest_hillshade.tif。点击 Run(运行)。

- 一个新图层
mt_everest_hillshade将出现在画布中。

- 在 Processing Toolbox(处理工具箱) 中搜索
Contour。在 GDAL 算法下选择Contour(等高线)算法。

- 在 Contour(等高线) 窗口中,选择
mt_everest作为 Input Layer(输入图层),在 Interval between contour lines(等高线间隔) 中输入250。点击 Contours(等高线) 旁边的...并输入名称为mt_everest_contour.gpkg。点击 Run(运行)。

- 一个新图层
mt_everest_contour将出现在画布中。右键单击该图层,然后点击 Open Attribute Table(打开属性表)。

- 您将看到每条线要素都有一个名为
ELEV的属性。这是每条线所代表的高度(以米为单位)。点击列标题几次以降序对值进行排序。在这里,您将找到代表我们数据中最高海拔(即珠穆朗玛峰)的线。

- 选择顶行,然后点击 Zoom to selection(缩放到选中要素) 按钮。

- 切换到主 QGIS 窗口。您将看到选中的等高线以黄色高亮显示。这是我们数据集中海拔最高的区域。

- 在 Processing Toolbox(处理工具箱) 中搜索
Smooth。在 Vector geometry(矢量几何) 下选择Smooth(平滑)。

- 在 Smooth(平滑) 窗口中,选择
mt_everest_contour作为 Input Layer(输入图层),在 Iterations(迭代次数) 中输入5。点击 Run(运行)。
警告
平滑算法的工作原理是沿着线条添加额外的节点。随着迭代次数的增加,等高线中的节点数量会大幅增加。因此,使用更高的迭代次数时要小心。您可以通过将输出导出为 Shapefile 并使用 Mapshaper 简化结果来减小文件大小。

- 一个新图层
Smoothed将出现在画布中。与mt_everest_contour图层相比,此图层的边缘更加平滑。

- 您也可以通过将等高线图层导出为 KML 格式并在 Google Earth 中查看,来可视化您的等高线图层并验证您的分析。右键单击平滑后的图层,选择 Export(导出) -> Save Feature As…(将要素另存为…)。

- 选择 Keyhole Markup Language [KML](Keyhole 标记语言 [KML]) 作为 Format(格式)。点击 File name(文件名) 旁边的
...并输入名称为contour_smoothed.kml。点击 OK(确定)。

- 在磁盘上浏览到输出文件,双击它以打开 Google Earth Pro。

如果您想对此教程提供反馈或分享您的经验,请在下方留言。(需要 GitHub 账户)