Important
翻译是一项社区工作:ref:你可以加入<translation_guidelines>。此页面目前翻译进度为 80.25%。
7.3. Lesson: Terrain Analysis
某些类型的栅格允许您更深入地了解它们所表示的地形。数字高程模型 (DEM) 在这方面特别有用。在本课中,您将使用地形分析工具,了解更多关于之前提出的住宅开发研究区域的信息。
本课目标: 使用地形分析工具获取有关地形的更多信息。
7.3.1. ★☆☆ Follow Along: Calculating a Hillshade
我们将使用与上一课相同的DEM图层。如果您从头开始本节练习,请使用 浏览器 面板加载 raster/SRTM/srtm_41_19.tif 文件。
DEM图层显示地形的高程,但有时看起来有点抽象。它包含了您需要的有关地形的所有3D信息,但看起来并不像3D对象。为了更好地了解地形,可以计算 山体阴影 ,这种栅格使用光和阴影来映射地形,以创建3D外观图像。
我们将使用的算法位于 菜单中。
单击 菜单
该算法允许您指定光源的位置: 方位角 的值从0 (北) 到90 (东)、180 (南) 和270 (西),而 垂直角 设置光源的高度 (0到90度)。
我们将使用以下值:
Z因子 是
1.0方位角 (水平角度) 是
300.0°垂直角 是
40.0°
Save the file in a new folder
exercise_data/raster_analysis/with the namehillshade.tif最后单击 运行
You will now have a new layer called hillshade that looks like
this:
这看起来还不错,而且是3D效果,但我们可以完善一下吗?就其本身而言,山体阴影看起来就像石膏模型。就不能以某种方式把它和其他颜色更丰富的栅格一起使用吗?当然可以,我们通过使用山体阴影作为叠加图层来实现。
7.3.2. ★☆☆ Follow Along: Using a Hillshade as an Overlay
山体阴影可以提供在一天中的某个特定时间关于阳光的非常有用的信息。但它也可以用于美学目的,使地图看起来更好。关键是设置山体阴影的透明度。
Change the symbology of the original
srtm_41_19layer to use the Pseudocolor scheme as in the previous exerciseHide all the layers except the
srtm_41_19andhillshadelayersClick and drag the
srtm_41_19to be beneath thehillshadelayer in the Layers panelSet the
hillshadelayer to be transparent by clicking on the Transparency tab in the layer properties将 全局不透明度 设置为
50%。您将得到如下结果:
Switch the
hillshadelayer off and back on in the Layers panel to see the difference it makes.
Using a hillshade in this way, it's possible to enhance the topography of the
landscape. If the effect doesn't seem strong enough to you, you can change the
transparency of the hillshade layer; but of course, the brighter
the hillshade becomes, the dimmer the colors behind it will be. You will need
to find a balance that works for you.
完成后记得保存工程。
7.3.3. Follow Along: Finding the best areas
回想一下房地产代理问题,我们上次在 矢量分析 课中讨论了这个问题。让我们想象一下,买家现在希望购买一栋房屋,并在所属地产上建造一座较小的平房。在南半球,我们知道,理想的开发地块需要有以下区域:
朝向为北
坡度小于5度
但如果坡度小于2度,则无需考虑坡向问题。
让我们为他们找到最好的地方。
7.3.4. ★★☆ Follow Along: Calculating the Slope
坡度 表示地形的陡峭程度。例如,如果想在那里的土地上建造房屋,那么您需要相对平坦的土地。
要计算坡度,需要使用 中的 算法。
打开算法
Choose
srtm_41_19as the Elevation layer将 Z 因子 保留为
1.0Save the output as a file with the name
slope.tifin the same folder as thehillshade.tif单击 运行
现在,您将看到地形的坡度,每个像素都有相应的坡度值。黑色像素显示为平坦地形,白色像素显示陡峭地形:
7.3.5. ★★☆ Try Yourself: Calculating the aspect
坡向 是地形坡度所面对的罗盘方向。坡向为0表示坡度朝北、朝东90度、朝南180度、朝西270度。
因为这项研究是在南半球进行的,所以理想情况下,房屋应该建在朝北的坡度上,这样就可以一直沐浴阳光。
Use the Aspect algorithm of the
to get the aspect.tif
layer saved along with the slope.tif.
答案
按如下设置 坡向 对话框:
您的结果是:
7.3.6. ★★☆ Follow Along: Finding the north-facing aspect
现在,您可以通过栅格显示坡度和坡向,但您无法立即知道理想条件在哪里可以满足要求。如何进行这种分析?
答案在于 栅格计算器 。
QGIS提供了不同的栅格计算器供选用:
在处理工具箱中:
以上每种工具都会产生相同的结果,但语法可能略有不同,而且可用的运算符可能会有所不同。
我们将使用 处理工具箱 中的
双击打开此工具。
对话框的左上角列出了所有加载的栅格图层,正如
name@N,其中name是图层名,N是波段。在右上角,会看到许多不同的运算符。停下来想一想,栅格就是图像。您应该将其看作填充有数字的2D矩阵。
北为 0 (零) 度,因此要使地形朝北,其坡向必须大于270度或小于90度。因此,公式为:
aspect@1 <= 90 OR aspect@1 >= 270
现在,您必须设置栅格详细信息,如像元大小、范围和CRS。这可以手动完成,也可以通过选择
参照图层自动设置。单击 参照图层 参数旁边的 ... 按钮来选择最后一个选项。In the dialog, choose the
aspectlayer, because we want to obtain a layer with the same resolution.Save the layer as
aspect_north.tif.对话框应如下所示:
最后单击 运行 。
您的结果将是这样的:
输出值为 0 或 1 ,这是什么意思?对于栅格中的每个像素,我们编写的公式将返回它是否符合条件。因此,最终结果将是 False (0) 和 True (1) 。
7.3.7. ★★☆ Try Yourself: More criteria
现在已经完成了坡向,请从DEM创建两个新图层。
首先应确定坡度小于或等于
2度的区域第二个类似,但坡度应小于或等于
5度。将它们保存在
exercise_data/raster_analysis命名为slope_lte2.tif和slope_lte5.tif。
答案
使用以下选项设置 栅格计算器 对话框:
使用如下表达式:
slope@1 <= 2slope图层作为 参照图层
对于5度,将表达式和文件名中的
2替换为5。
您的结果:
2度:
5度:
7.3.8. ★★☆ Follow Along: Combining Raster Analysis Results
现在,您已经从DEM生成了三个栅格图层:
aspect_north: terrain facing northslope_lte2: slope equal to or below 2 degreesslope_lte5: slope equal to or below 5 degrees
满足条件时,像素值为 1 ,其他为 0 。因此,如果将这些栅格相乘,所有值为 1 的像素将得到 1 的值 (其余像素将得到 0 )。
需要满足的条件包括:
坡度等于或低于5度时,地形必须朝北
坡度等于或低于2度时,地形的朝向无关紧要。
因此,您需要找到坡度在5度或以下 AND 地形朝北, OR 坡度在2度或以下的区域。这样的地形适合开发。
要计算满足这些条件的区域:
再次打开 栅格计算器
在 表达式 中使用如下表达式:
( aspect_north@1 = 1 AND slope_lte5@1 = 1 ) OR slope_lte2@1 = 1
将 Reference layer(s) - 参照图层 参数设置为
aspect_north(如果您选择另一个也没关系 - 它们都是根据srtm_41_19计算的)将输出保存在
exercise_data/raster_analysis/中的all_conditions.tif单击 运行
其结果为:
Hint
使用以下命令可以简化前面的步骤:
((aspect@1 <= 90 OR aspect@1 >= 270) AND slope@1 <= 5) OR slope@1 <= 2
7.3.9. ★★☆ Follow Along: Simplifying the Raster
正如您从上图看到的,组合分析给我们留下了许多非常小的满足条件的区域 (白色)。但这些对我们的分析并没有真正的用处,因为它们太小而无法构建任何东西。让我们把这些极小的不能使用的地方都处理掉。
打开 滤除碎斑 工具 (位于 处理工具箱 中的 )
将 输入图层 设置为
all_conditions,并将 碎斑处理结果 设置为all_conditions_sieve.tif(位于exercise_data/raster_analysis/)。将 阈值 设置为8 (至少八个连续像素),并勾选 使用8向连通 。
处理完成后,将加载新图层。
现在发生了什么呢?答案位于新栅格文件的元数据中。
在 图层属性 对话框的 信息 选项卡中查看元数据。请查找
STATISTICS_MINIMUM的值:
这个栅格,像其派生,应仅包含值
1和0,但它也有一个非常大的负数。对数据的检查显示,这个数字是一个空值。因为我们只关注未被过滤掉的区域,所以将这些空值设置为零。打开 栅格计算器 ,并构建以下表达式:
(all_conditions_sieve@1 <= 0) = 0
这将维持所有非负值,并将负数设置为零,保持所有值为
1的区域不变。将输出保存在
exercise_data/raster_analysis/并命名为all_conditions_simple.tif。
您的输出如下所示:
这就是预期的结果:早期结果的简化版本。请记住,如果从工具中获得的结果与预期不符,那么请查看元数据 (以及矢量属性,如果适用),这对解决问题至关重要。
7.3.10. ★★☆ Follow Along: Reclassifying the Raster
我们使用 栅格计算器 对栅格图层进行计算,还可以使用另一个强大的工具从现有图层提取信息。
回到 aspect 图层。我们现在知道它的数值范围在0到360之间。现在要做的是根据不同的坡向,将该图层 重分类 为其他离散值 (从1到4):
1 = 北 (从 0 到 45 和从 315 到 360)
2 = 东 (从 45 到 135)
3 = 南 (从 135 到 225)
4 = 西 (从 225 到 315)
该运算可以使用栅格计算器来实现,但是公式会变得非常大。
另一种工具是 处理工具箱 中 的 按表格重分类 工具。
打开工具
Choose
aspectas the Raster layer单击 重分类表 的 ... 。将弹出一个类似表格的对话框,您可以在其中为每个类选择最小值、最大值和新值。
单击 新增行 按钮,添加5行。如下图所示填写每一行内容,然后单击 确定:
该算法用于处理每个类的阈值的方法由 范围边界 定义。
在
exercise_data/raster_analysis/文件夹中将图层保存为reclassified.tif文件
单击 运行
If you compare the native aspect layer with the
reclassified one, there are not big differences.
But by looking at the legend, you can see that the values go from
1 to 4.
让我们给此图层一个更好的样式。
打开 图层样式 面板
选择 调色板/唯一值 ,而不是 单波段灰度
单击 分类 按钮自动获取值并为其分配随机颜色:
输出可能是这样的 (可以有不同的颜色,因为它们是随机生成的):
通过对图层应用此重分类和调色板样式,可以立即区分坡向地区。
7.3.11. ★☆☆ Follow Along: Querying the raster
与矢量图层不同,栅格图层没有属性表。每个像素包含一个或多个数值 (单波段或多波段栅格)。
我们在本练习中使用的所有栅格图层仅由一个波段组成。根据图层的不同,像素值可能表示高程、坡向或坡度值。
我们如何查询栅格图层获取像素值呢?这可以使用
识别要素 按钮!
从属性工具栏选择该工具。
Click on a random location of the
srtm_41_19layer. Identify Results will appear with the value of the band at the clicked location:
通过在面板底部的 视图 菜单中选择 表格 ,可以将 识别结果 面板的输出从当前
树形模式更改为表格模式:
单击每个像素获取栅格的值可能会在一段时间后令人烦躁,我们可以使用 Value Tool 插件来解决此问题。
转到
在 全部 选项卡中的搜索框里键入
value t选择 Value Tool 插件,按 安装插件 ,然后 关闭 对话框。
此时将显现新的 Value Tool 面板。
Tip
如果您关闭了面板,可以通过在 中启用或单击工具栏中的图标重新打开。
要使用插件,只需勾选 启用 复选框,并确保 图层 面板中的
srtm_41_19图层处于激活状态 (已选中)。将光标在地图上移动以查看像素值。
But there is more. The Value Tool plugin allows you to query all the active raster layers in the Layers panel. Set the
aspectandslopelayers active again and hover the mouse on the map:
7.3.12. 总结
您已经了解了如何从DEM获取各种分析成果,其中包括山体阴影、坡度和坡向计算。还了解了如何使用栅格计算器进一步分析和组合这些结果。最后,您学习了如何重分类图层以及如何查询结果。
7.3.13. 接下来是?
现在有两种分析:矢量分析显示可能适合的地块,栅格分析显示可能适合的地形。如何将这些组合起来,从而得出问题的最终结果?这是下一课的主题,从下一个单元开始学习。