使用表达式为河流网络设置样式 (QGIS3)
原文链接:https://www.qgistutorials.com/en/docs/3/river_styling_expressions.html
使用表达式为河流网络设置样式 (QGIS3)¶
供稿人: Steven Kim
在之前的教程 创建一个方块世界地图 (QGIS3) 中,我们使用表达式来缩放数值并应用颜色渐变。我们将以此为基础,学习如何使用表达式以一种流行样式可视化河流。
注意
本教程重点介绍使用表达式进行样式设置。您可以查看我们的另一个教程 创建彩色化河流流域地图 (QGIS3),该教程使用基于工具的工作流程创建了此处所示地图的不同版本。
任务概述¶
我们将使用表达式来过滤和设置南美洲河流的样式——用线条宽度表示集水面积,用颜色表示来自 HydroRIVERS 的流域 ID。
获取数据¶
HydroRIVERS 数据集提供了具有统一尺寸的河段的全球无缝覆盖,并附带了支持进行河流网络拓扑基本分析(如河流连通性和距离)的几何信息。该数据是世界自然基金会综合 HydroATLAS 数据包的一个子集。我们来下载南美洲河流的 shapefile 文件。
- 访问 HydroRIVERS 主页。
- 该页面提供了 HydroRIVERS 全球和区域提取数据的 shapefile 和地理数据库格式的下载链接。向下滚动并点击
South Americashapefile 的下载链接。您将看到为本教程下载的HydroRIVERS_v10_sa_shp.zip文件。
为方便起见,您可以直接从下方下载上述图层的副本: HydroRIVERS_v10_sa_shp.zip
数据来源:[HYDROSHEDS]
操作步骤¶
- 在 QGIS 浏览器中找到
HydroRIVERS_v10_sa_shp.zip文件并展开它。选择HydroRIVERS_v10_sa_shp/HydroRIVERS_v10_sa.shp文件并将其拖到画布上。
- 新图层
HydroRIVERS_v10_sa现在将加载到 QGIS 中,您应该能看到南美洲的河流地图。点击打开图层样式面板。
- 将样式从单一符号切换到基于规则。
- 双击默认规则以进入编辑规则对话框。
- 要使用表达式进行过滤,请点击过滤 ε 按钮。这将打开表达式构造器。
- 在左侧选择表达式框,按如下方式输入表达式,然后点击确定。此表达式选择集水面积大于或等于 100 平方公里的河流要素。
bash "UPLAND_SKM" >= 100
- 地图现在显示了具有较大集水面积的过滤后河流。您可以根据您所在区域的比例调整此阈值。
- 既然我们已经使用表达式过滤了要素,现在让我们使用表达式根据
MAIN_RIV字段为每个河段着色。在样式面板中向下滚动到符号选项,选择简单线以调出样式选项,如颜色、线条宽度等。点击颜色的数据定义覆盖按钮,在菜单中选择编辑…。
- 这将打开用于颜色的表达式构造器对话框。输入下面的表达式。此表达式结合了
ramp_color()和scale_linear()函数,使用 MAIN_RIV ID 值的范围从光谱色带中选择颜色。点击确定退出对话框。
bash ramp_color('Spectral',scale_linear("MAIN_RIV", minimum("MAIN_RIV"),maximum("MAIN_RIV"),0,1))
- 在编辑规则对话框中,点击线条宽度的数据定义覆盖按钮,在菜单中选择编辑…。输入以下表达式。该表达式根据每个河段的集水面积缩放线条宽度,对于集水面积大于或等于 10,000 平方公里的河流,线条宽度最小为 0.01 毫米,最大为 0.1 毫米。
bash scale_linear("UPLAND_SKM",100,10000,0.01,0.1)
- 点击确定退出对话框。现在,河流线条将根据其集水面积以不同的宽度渲染。表达式需要为每个要素进行评估,因此渲染可能需要一些时间。
- 让我们将背景颜色改为黑色,以便与我们选择的颜色形成对比。导航到 项目 ‣ 属性 ‣ 常规。点击向下箭头并选择黑色。点击确定。
- 现在您应该能看到完整的南美洲河流网络图。
如果您想反馈或分享您对本教程的体验,请在下方评论。(需要 GitHub 账户)















