Skip to content

使用表达式为河流网络设置样式 (QGIS3)

原文链接:https://www.qgistutorials.com/en/docs/3/river_styling_expressions.html

使用表达式为河流网络设置样式 (QGIS3)

供稿人: Steven Kim

在之前的教程 创建一个方块世界地图 (QGIS3) 中,我们使用表达式来缩放数值并应用颜色渐变。我们将以此为基础,学习如何使用表达式以一种流行样式可视化河流。

注意

本教程重点介绍使用表达式进行样式设置。您可以查看我们的另一个教程 创建彩色化河流流域地图 (QGIS3),该教程使用基于工具的工作流程创建了此处所示地图的不同版本。

任务概述

我们将使用表达式来过滤和设置南美洲河流的样式——用线条宽度表示集水面积,用颜色表示来自 HydroRIVERS 的流域 ID。

../../_images/output6.png

获取数据

HydroRIVERS 数据集提供了具有统一尺寸的河段的全球无缝覆盖,并附带了支持进行河流网络拓扑基本分析(如河流连通性和距离)的几何信息。该数据是世界自然基金会综合 HydroATLAS 数据包的一个子集。我们来下载南美洲河流的 shapefile 文件。

  1. 访问 HydroRIVERS 主页。

../../_images/data126.png

  1. 该页面提供了 HydroRIVERS 全球和区域提取数据的 shapefile 和地理数据库格式的下载链接。向下滚动并点击 South America shapefile 的下载链接。您将看到为本教程下载的 HydroRIVERS_v10_sa_shp.zip 文件。

../../_images/data28.png

为方便起见,您可以直接从下方下载上述图层的副本: HydroRIVERS_v10_sa_shp.zip

数据来源:[HYDROSHEDS]

操作步骤

  1. 在 QGIS 浏览器中找到 HydroRIVERS_v10_sa_shp.zip 文件并展开它。选择 HydroRIVERS_v10_sa_shp/HydroRIVERS_v10_sa.shp 文件并将其拖到画布上。

../../_images/1152.png

  1. 新图层 HydroRIVERS_v10_sa 现在将加载到 QGIS 中,您应该能看到南美洲的河流地图。点击打开图层样式面板。

../../_images/2128.png

  1. 将样式从单一符号切换到基于规则。

../../_images/366.png

  1. 双击默认规则以进入编辑规则对话框。

../../_images/437.png

  1. 要使用表达式进行过滤,请点击过滤 ε 按钮。这将打开表达式构造器。

../../_images/533.png

  1. 在左侧选择表达式框,按如下方式输入表达式,然后点击确定。此表达式选择集水面积大于或等于 100 平方公里的河流要素。

bash "UPLAND_SKM" >= 100

../../_images/632.png

  1. 地图现在显示了具有较大集水面积的过滤后河流。您可以根据您所在区域的比例调整此阈值。

../../_images/732.png

  1. 既然我们已经使用表达式过滤了要素,现在让我们使用表达式根据 MAIN_RIV 字段为每个河段着色。在样式面板中向下滚动到符号选项,选择简单线以调出样式选项,如颜色、线条宽度等。点击颜色的数据定义覆盖按钮,在菜单中选择编辑…。

../../_images/831.png

  1. 这将打开用于颜色的表达式构造器对话框。输入下面的表达式。此表达式结合了 ramp_color()scale_linear() 函数,使用 MAIN_RIV ID 值的范围从光谱色带中选择颜色。点击确定退出对话框。

bash ramp_color('Spectral',scale_linear("MAIN_RIV", minimum("MAIN_RIV"),maximum("MAIN_RIV"),0,1))

../../_images/932.png

  1. 在编辑规则对话框中,点击线条宽度的数据定义覆盖按钮,在菜单中选择编辑…。输入以下表达式。该表达式根据每个河段的集水面积缩放线条宽度,对于集水面积大于或等于 10,000 平方公里的河流,线条宽度最小为 0.01 毫米,最大为 0.1 毫米。

bash scale_linear("UPLAND_SKM",100,10000,0.01,0.1)

../../_images/1038.png

  1. 点击确定退出对话框。现在,河流线条将根据其集水面积以不同的宽度渲染。表达式需要为每个要素进行评估,因此渲染可能需要一些时间。

../../_images/1153.png

  1. 让我们将背景颜色改为黑色,以便与我们选择的颜色形成对比。导航到 项目 ‣ 属性 ‣ 常规。点击向下箭头并选择黑色。点击确定。

../../_images/1241.png

  1. 现在您应该能看到完整的南美洲河流网络图。

../../_images/1339.png


如果您想反馈或分享您对本教程的体验,请在下方评论。(需要 GitHub 账户)