Skip to content

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)搜索和下载相关数据的步骤。

  1. 访问 USGS EarthExplorer 网站。在 Search Criteria 选项卡下,点击 World Features。在 Feature Name 中输入 Everest,在 Country 中输入 NEPAL,然后点击 Show。这将显示一个包含位置信息的表格。在 Placename 下选择 Everest

../../_images/1169.png

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

../../_images/2138.png

操作流程

  1. 打开 Layer(图层) -> Add Layer(添加图层) -> Add Raster Layer(添加栅格图层)

../../_images/640.png

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

../../_images/740.png

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

../../_images/839.png

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

../../_images/940.png

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

../../_images/1047.png

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

../../_images/1170.png

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

../../_images/1250.png

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

../../_images/1348.png

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

../../_images/1444.png

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

../../_images/1538.png

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

../../_images/1635.png

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

../../_images/1735.png

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

../../_images/1830.png

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

../../_images/1924.png

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

../../_images/2022.png

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

../../_images/2139.png

  1. Smooth(平滑) 窗口中,选择 mt_everest_contour 作为 Input Layer(输入图层),在 Iterations(迭代次数) 中输入 5。点击 Run(运行)

警告

平滑算法的工作原理是沿着线条添加额外的节点。随着迭代次数的增加,等高线中的节点数量会大幅增加。因此,使用更高的迭代次数时要小心。您可以通过将输出导出为 Shapefile 并使用 Mapshaper 简化结果来减小文件大小。

../../_images/2223.png

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

../../_images/2320.png

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

../../_images/2420.png

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

../../_images/2519.png

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

../../_images/2616.png


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