18. 使用网格数据

18.1. 什么是网状结构?

网格模型是一种非结构化网格,通常包含时间和其他组件。空间组件包含2D或3D空间中的顶点、边和/或面的集合:

  • vertices -XY(Z)点(在层的坐标参考系中)

  • edges -连接成对的顶点

  • faces -面是形成闭合形状的一组边-通常是三角形或四边形(四边形),很少是具有更多折点的多边形

依赖于上述,网格层因此可以具有不同类型的结构:

  • 一维网格:由顶点和边组成。一条边连接两个顶点,并可以在其上指定数据(标量或向量)。例如,1D网状网络可以用于城市排水系统的建模。

  • 二维网格:由带有三角形、规则四边形或非结构化四边形的面组成。

  • 三维分层网格:由多个堆叠的二维非结构化网格组成,每个非结构化网格都通过垂直坐标在垂直方向(标高)上拉伸。顶点和面在每个垂直层级中具有相同的拓扑。网格定义(垂直水平拉伸)通常会随时间变化。数据通常以体积中心或某些参数函数来定义。

../../../_images/mesh_grid_types.png

图 18.1 不同的网格类型

网格提供了有关空间结构的信息。此外,网格可以具有为每个顶点指定值的数据集(组)。例如,拥有一个带有编号顶点的三角形网格,如下图所示:

../../../_images/triangual_grid_with_numered_vertices.png

图 18.2 带有编号顶点的三角形格网

每个顶点可以存储不同的数据集(通常是多个量),并且这些数据集还可以具有时间维度。因此,单个文件可能包含多个数据集。

下表介绍了可存储在网格数据集中的信息。表列表示网格顶点的索引,每行表示一个数据集。数据集可以具有不同的数据类型。在本例中,它存储特定时刻(t1、t2、t3)10m处的风速。

同样,网格数据集也可以存储每个顶点的矢量值。例如,给定时间戳的风向矢量:

表 18.1 网格数据集示例

10米大风

1

2

3

..。

时间=t1时的10米速度

17251

24918

32858

..。

时间=T2时的10米速度

19168

23001

36418

..。

时间=t3时的10米速度

21085

30668

17251

..。

..。

..。

..。

..。

..。

10米风向时间=T1

[20,2]

[20,3]

[20,4.5]

..。

10米风向时间=T2

[21,3]

[21,4]

[21,5.5]

..。

10米风向时间=T3

[22,4]

[22,5]

[22,6.5]

..。

..。

..。

..。

..。

..。

我们可以通过为值指定颜色来可视化数据(类似于数据的处理方式 Singleband pseudocolor 栅格渲染)以及根据网格拓扑在顶点之间内插数据。一些量通常是2D向量,而不是简单的标量值(例如,风向)。对于这样的量,希望显示指示方向的箭头。

../../../_images/mesh_visualisation.png

图 18.3 网格数据的可能可视化

18.2. 支持的格式

QGIS使用 MDAL drivers, and natively supports a variety of formats 。QGIS是否可以编辑网格层取决于格式和网格结构类型。

要将网格数据集加载到QGIS中,请使用 添加网格层 Mesh 选项卡中的 Data Source Manager 对话框中。朗读 加载网格层 了解更多详细信息。

18.3. 网格数据集属性

这个 Layer Properties 网格层的对话框提供管理层的数据集组及其渲染(活动数据集组、符号系统、2D和3D渲染)的常规设置。它还提供有关该层的信息。

要访问 Layer Properties 对话框:

  • Layers 面板中,双击该图层或右键单击并选择 Properties... 从弹出式菜单;

  • Layer ► Layer Properties... 选定层时的菜单。

网状结构 Layer Properties 对话框提供以下部分:

表 18.2 网格层属性的选项卡

元数据 Information

系统 Source

符号学 Symbology :sup:` [1] `

三维 3D View :sup:` [1] `

时态 Temporal

高程比例尺 Elevation

渲染 Rendering

编辑元数据 Metadata

[1] Also available in the Layer styling panel

备注

网格图层的大多数属性都可以保存到或从加载 .qml 使用 Style 对话框底部的菜单。更多详细信息请访问 管理自定义样式

18.3.1. 信息属性

../../../_images/mesh_info_properties.png

图 18.4 网状层信息属性

这个 元数据 Information 选项卡是只读的,表示快速获取当前层上的汇总信息和元数据的有趣位置。提供的信息包括:

  • 常规,如项目中的名称、源路径、辅助文件列表、上次保存的时间和大小、使用的提供者

  • 基于图层的提供者:范围、折点、面、边和/或数据集组计算

  • 坐标参考系:名称、单位、方法、精度、参考(即它是静态的还是动态的)

  • 从填充中提取 metadata :访问、范围、链接、联系人、历史记录...

18.3.2. 源属性

这个 系统 Source 选项卡显示有关选定网格的基本信息,包括:

../../../_images/mesh_source.png

图 18.5 网格层源属性

  • 要在中显示的层名称  Layers 嵌板

  • 设置坐标参考系:显示图层的 Assigned Coordinate Reference System (CRS) 。您可以通过在下拉列表中选择最近使用的CRS或单击 集合投影 Select CRS 按钮(请参见 坐标参考系选择器 )。仅当应用到层的CRS错误或未应用任何CRS时,才使用此过程。

  • 这个 Available datasets 框架列出网格层中的所有数据集组(和子组),并在树视图中显示其类型和说明。常规数据集(即其数据存储在文件中)和虚拟数据集(即 calculated on the fly )列出。

    • 使用 添加 Assign extra dataset to mesh 按钮将更多组添加到当前网格层。

    • 折叠树 Collapse all扩展树 Expand all 数据集树,在嵌入组的情况下

    • 如果您对少数几个数据集感兴趣,可以取消选中其他数据集并使其在项目中不可用

    • 在名称上双击,即可重命名该数据集。

    • 刷新 Reset to defaults :检查所有组并将其重命名回其在提供程序中的原始名称。

    • 右键单击虚拟数据集组,您可以执行以下操作:

      • Remove dataset group 从项目中

      • Save dataset group as... 磁盘上的文件,格式为任何受支持的格式。新文件将保持指定给项目中的当前网格层。

  • Checking the 未选中 Treat as static dataset group allows to ignore the map temporal navigation properties while rendering the mesh layer. For each active dataset group (as selected in 符号学 Symbology ► 一般信息 Datasets tab), you can:

    • 设置为 None :根本不显示数据集组

    • Display dataset 例如,对于不知道时间的“床高”数据集

    • 提取特定的日期时间:与提供的时间匹配的数据集被呈现,并在地图导航期间保持不变。

18.3.3. 符号系统属性

单击 符号学 Symbology 按钮激活该对话框。符号系统属性分为几个选项卡:

18.3.3.1. 数据集

该选项卡 一般信息 Datasets 是控制和设置将用于层的数据集的主要位置。它提供了以下项目:

  • Groups 在网格数据集中可用,以及它们是否提供:

    • 网格等高线 标量数据集

    • 网格矢量器 矢量数据集:默认情况下,每个矢量数据集都有一个标量数据集,表示自动生成的大小。

    单击数据集名称旁边的图标以选择要表示的数据组和数据类型。

  • Selected dataset group(s) metadata ,详情如下:

    • 网格类型:边或面

    • 数据类型:顶点、边、面或体积

    • 不管它是不是矢量型

    • 网格层中的原始名称

    • 单位(如果适用)

  • blending mode 可用于选定的数据集。

../../../_images/mesh_symbology_datasets.png

图 18.6 网状层数据集

您可以使用下一步选项卡将符号系统应用于所选的矢量和/或标量组。

18.3.3.2. 等高线符号系统

备注

这个 网格轮廓线 Contours 仅当在中选择标量数据集时,才能激活 一般信息 Datasets 标签。

In the 网格轮廓线 Contours tab you can see and change the current visualization options of contours for the selected group, as shown in 图 18.7 below:

../../../_images/mesh_symbology_contours.png

图 18.7 设置网格层中等高线的样式

  • 对于一维网格,设置 Stroke width 在边缘上。这可以是整个数据集的固定大小,也可以随几何而变化(有关详细信息,请参阅 interpolated line renderer )

  • 使用滑块或旋转框设置 Opacity 如果是二维网格类型,则为当前组的。

  • 输入要在当前组上表示的值范围:使用 刷新 Load 获取当前组的最小值和最大值,如果要排除某些值,则输入自定义值。

  • 对于2D/3D网格,请选择 Resampling method 使用将周围顶点上的值内插到面(或从周围面到顶点) Neighbour average 方法。根据是否在折点上(分别在面上)定义数据集,QGIS会将此设置默认为 None (分别 Neighbour average )方法,以便在顶点上使用值并保持默认渲染平滑。

  • 对数据集进行分类。 color ramp shader 分类。

18.3.3.3. 向量符号体系

备注

这个 网格向量 Vectors 只有在中选择了矢量数据集时,才能激活 一般信息 Datasets 标签。

In the 网格向量 Vectors tab you can see and change the current visualization options of vectors for the selected group, as shown in 图 18.8:

../../../_images/mesh_symbology_vectors.png

图 18.8 使用箭头设置网格层中矢量的样式

网格矢量数据集可使用各种类型的 Symbology

  • Arrows :矢量在原始数据集中定义的相同位置(即在元素的节点或中心上)或在用户定义的网格上使用箭头表示(因此,它们是均匀分布的)。箭头长度与原始数据中定义的箭头大小成正比,但可以通过各种方法进行缩放。

  • Streamlines :矢量使用从起点设定种子的流线表示。种子点可以从网格的顶点开始,也可以从用户栅格或随机开始。

  • Traces :更好的流线动画,当您随机将沙子扔进水中并查看沙子项流动的位置时,您会获得这种效果。

可用的属性取决于所选的符号系统,如下表所示。

表 18.3 矢量符号系统属性的可用性和意义

标签

描述和属性

流线型

痕迹

Line width

向量表示的宽度

复选框

复选框

复选框

Coloring method

  • 一个 Single color 分配给所有向量

  • 或基于向量大小的可变颜色,使用 Color ramp shader

复选框

复选框

复选框

Filter by magnitude

只有所选数据集的长度介于 MinMax 显示范围

复选框

复选框

Display on user grid

使用自定义将矢量放置在栅格上 X spacingY spacing 并基于邻域内插它们的长度

复选框

复选框

Head options

LengthWidth 以箭杆长度的百分比表示

复选框

Arrow length

  • Defined by Min and Max :您指定了箭头的最小和最大长度,QGIS将根据基础向量的大小插入它们的大小

  • Scale to magnitude :箭头长度与其向量的大小成正比

  • Fixed :所有向量都以相同的长度显示

复选框

Streamlines seeding method

  • On mesh/grid :依靠用户网格显示向量

  • Randomly :向量放置是相对于特定密度随机完成的

复选框

Particles count

你想投入到可视化中的“沙子”的数量

复选框

Max tail length

粒子淡出的时间

复选框

18.3.3.4. 渲染

在选项卡中 网架 Rendering 选项卡中,QGIS提供了显示和定制网格结构的可能性。 Line widthLine color 可以设置为表示:

  • 一维网格的边

  • 对于二维网格:

    • Native mesh rendering :显示来自层的原始面和边

    • Triangular mesh rendering :添加更多边并将面显示为三角形

../../../_images/mesh_symbology_grid.png

图 18.9 二维网格渲染

18.3.3.5. 叠置网格平均法

3D分层网格由多个堆叠的2D非结构化网格组成,每个非结构化网格在垂直方向上拉伸 (levels )通过垂直坐标。顶点和面在每个垂直层级中具有相同的拓扑。值通常存储在规则堆叠在基本2D网格上的体积上。为了在2D画布上可视化它们,您需要将体积(3D)上的值转换为可在网格层中显示的面(2D)上的值。这个 网格化 Stacked mesh averaging method 提供不同的平均/内插方法来处理此问题。

您可以选择导出2D数据集和相应参数(级别索引、深度或高度值)的方法。对于每种方法,对话框中显示了一个应用程序示例,但您可以在https://fvwiki.tuflow.com/index.php?title=Depth_Averaging_Results.上阅读有关这些方法的更多信息

18.3.4. 三维视图属性

网状层可用作 terrain in a 3D map view 基于它们的顶点Z值。从 三维 3D View 属性选项卡中,还可以在相同的3D视图中渲染网格层的数据集。因此,可以将顶点的垂直分量设置为等于数据集值(例如,水位),并且可以设置网格的纹理以使用颜色着色(例如,速度)来渲染其他数据集值。

../../../_images/mesh_3d.png

图 18.10 网格数据集3D属性

检查 复选框 Enable 3D Renderer 您还可以编辑以下属性:

  • 在……下面 Triangle settings

    • Smooth triangles :连续三角形之间的角度被平滑,以获得更好的3D渲染效果

    • Show wireframe whose you can set the Line width and Color

    • Level of detail :控制方式 simplified 要渲染的网格层应为。在最右边,它是基础网格,越往左走,层就越简化,渲染的细节就越少。此选项仅在以下情况下可用 Simplify mesh 选项下的 Rendering 选项卡处于激活状态。

  • Vertical settings 控制垂直组件的行为

    渲染的三角形的顶点的

    • Dataset group for vertical value :将用于网格垂直组件的数据集组

    • 未选中 :guiabel:相对于折点Z值的数据集值:是将数据集值视为绝对Z坐标还是相对于折点原生Z值

    • Vertical scale :要应用于数据集Z值的比例因子

  • Rendering color settings with a Rendering style that can be based on the color ramp shader set in 等高线符号系统 (2D contour color ramp shader) or as a Single color with an associated Mesh color

  • Show arrows :根据中使用的相同矢量数据集组,在网格图层数据集3D实体上显示箭头 vector 2D rendering 。它们使用2D颜色设置显示。还可以定义 Arrow spacing 而且,如果它是一个 Fixed size 或者在规模上有所扩大。此间距设置还定义了箭头的最大尺寸,因为箭头不能重叠。

18.3.5. 渲染属性

../../../_images/mesh_rendering.png

图 18.11 网格渲染属性

在.之下 Scale dependent visibility 组框中,您可以设置 Maximum (inclusive)Minimum (exclusive) 比例,定义网格元素将可见的比例范围。在这个范围之外,他们是隐藏的。这个 地图标识 Set to current canvas scale 按钮帮助您使用当前地图画布比例作为范围可见性的边界。看见 可见性比例选择器 以获取更多信息。

备注

您还可以从中激活图层上的比例相关可见性 Layers 面板:在层上单击鼠标右键并在上下文菜单中选择 Set Layer Scale Visibility

由于网格层可能有数百万个面,它们的渲染有时会非常慢,特别是当所有面都显示在视图中,而它们太小而无法查看时。要加快渲染速度,可以简化网格层,生成一个或多个表示不同 levels of detail 并选择希望QGIS渲染网格层的细节级别。请注意,简化网格仅包含三角面。

渲染 Rendering 制表符,勾选 复选框 Simplify mesh 并设置:

  • 一个 Reduction factor :控制连续层级简化网格的生成。例如,如果基础网格有5M个面,并且减少系数为10,则第一个简化网格将有大约500,000个面,第二个50,000个面,第三个5000个面,...如果减少系数越高,网格越简单(即三角形的大小越大),生成的细节级别也会越少。

  • Minimum triangle size :允许显示的三角形的平均大小(像素)。如果网格的平均大小小于此值,则触发渲染较低级别的细节网格。

18.3.6. 时态属性

这个 时态 Temporal 选项卡提供了随着时间推移控制层渲染的选项。它允许动态显示启用的数据集组的时间值。这样的动态呈现需要 temporal navigation 在地图画布上启用。

../../../_images/mesh_temporal.png

图 18.12 网格的时态属性

Layer temporal settings

  • Reference time 作为绝对日期时间。默认情况下,QGIS解析源图层并返回图层组数据集组中的第一个有效参考时间。如果不可用,该值将按项目时间范围设置或回退到当前日期。这个 Start timeEnd time 然后基于数据集的内部时间戳步长来计算要考虑的。

    可以设置自定义 Reference time (然后是时间范围),并使用 刷新 Reload from provider 纽扣。使用 复选框 Always take reference time from data source 选中后,可确保每次重新载入图层或重新打开项目时,都会从文件更新时间特性。

  • Dataset matching method :确定在给定时间显示的数据集。选项包括 Find closest dataset before requested timeFind closest dataset from requested time (after or before)

Provider time settings

  • Time unit 从原始数据中提取,或用户定义。这可用于在地图时间导航期间将网格层的速度与项目中的其他层对齐。支持的单位为 SecondsMinutesHoursDays

18.3.7. 高程属性

这个 高程比例尺 Elevation 选项卡提供了用于控制 3D map view 以及它的出现在 profile tool charts 。具体而言,您可以设置:

../../../_images/mesh_elevation.png

图 18.13 网格高程属性

  • Elevation Surface :应如何将网格层顶点Z值解释为地形高程。您可以将 Scale 因子和An Offset

  • Profile Chart Appearance :控制渲染 Style 绘制纵断面图时将使用的网格高程。它可以设置为:

    • 个人资料 Line 使用一个 line style 套用

    • 具有以下特征的曲面 Fill below 以及相应的 fill style

18.3.8. 元数据属性

这个 编辑元数据 Metadata 选项卡提供了在您的层上创建和编辑元数据报告的选项。看见 元数据 以获取更多信息。

18.4. 编辑网格层

QGIS允许您 create a mesh layer 从头开始的或基于现有的。您可以创建/修改新层的几何图形,然后可以为其分配数据集。也可以编辑现有的网格层。由于编辑操作需要仅限框架的图层,因此系统将要求您首先移除所有关联的数据集(如果仍有必要,请确保它们可用)或创建该图层的副本(仅几何图形)。

备注

QGIS不允许数字化网格层上的边。只有顶点和面是可以创建的网格元素。此外,并非所有支持的格网格式都可以在QGIS中进行编辑(请参见 permissions )。

18.4.1. 网格数字化工具概述

要与基础网格层元素交互或编辑该元素,可以使用以下工具。

表 18.4 网格数字化的工具

标签

目的

位置

所有编辑 Current Edits

访问以同时保存、回滚或取消所有或选定层中的更改

Digitizing 工具栏

ToggleEditing Toggle to Edit

在编辑模式下打开/关闭该层

Digitizing 工具栏

保存编辑 Save Edits

保存对层所做的更改

Digitizing 工具栏

撤销 Undo

撤消最后一次更改(S)- Ctrl+Z

Digitizing 工具栏

重做 Redo

重做上一个未完成的动作(S)-- Ctrl+Shift+Z

Digitizing 工具栏

民航处 Enable Advanced Digitizing tools

打开/关闭 Advanced Digitizing Panel

Advanced Digitizing 工具栏

网格重索引 Reindex Faces and Vertices

重新创建索引并对网格元素重新编号以进行优化

Mesh 菜单

网格化数字化 Digitize Mesh Elements

选择/创建顶点和面

Mesh Digitizing 工具栏

网格选择多边形 Select Mesh Elements by Polygon

选择与绘制的多边形重叠的顶点和面

Mesh Digitizing 工具栏

MeshSelectExpression Select Mesh Elements by Expression

使用表达式选择顶点和面

Mesh Digitizing 工具栏

MeshTransformByExpression Transform Vertices Coordinates

修改所选顶点的坐标

Mesh Digitizing 工具栏

MeshEditForceByVectorLines Force by Selected Geometries

使用线性几何图形拆分面并约束Z值

Mesh Digitizing 工具栏

18.4.2. 探索Z值赋值逻辑

当网格层转换为编辑模式时, Vertex Z value 小部件在地图画布的右上角打开。默认情况下,它的值对应于 Default Z value 设置在 Settings ► Options ► Digitizing 标签。当存在选定顶点时,小工具将显示选定顶点的平均Z值。

在编辑过程中, Vertex Z value 指定给新顶点。也可以设置自定义值:编辑小部件,按 Enter 您将覆盖该缺省值,并在数字化过程中使用该新值。单击 明文 图标,将其值重置为选项的默认值。

18.4.2.1. 转让规则

什么时候 creating 新顶点的Z值定义可能会因网格层中的活动选择及其位置而异。下表显示了各种组合。

表 18.5 为新顶点赋值的Z值矩阵

顶点创建

网格层中是否有选定的顶点?

指配价值来源

指定的Z值

自由折点,未连接到任何

脸或脸的边缘

不是

Vertex Z value

默认或用户定义

Advanced Digitizing Panel (如果 z 小组件已加入 上锁 Locked 州)

z 小组件(如果在) 上锁 Locked 状态

Vertex Z value

选定折点的平均值

边上的顶点

--

网格层

从边的折点进行内插

面上的顶点

--

网格层

从人脸的顶点进行插补

捕捉到2D矢量要素的折点

--

Vertex Z value

默认或用户定义

捕捉到三维矢量顶点的顶点

--

矢量层

顶点

捕捉到3D向量线段的顶点

--

矢量层

沿向量线段内插

备注

这个 Vertex Z value 如果出现以下情况,则停用微件 Advanced Digitizing Panel 处于启用状态且未选择任何网格元素。后者的 z 然后,小部件决定Z值的赋值。

18.4.2.2. 修改现有折点的Z值

要修改顶点的Z值,最简单的方法是:

  1. 选择一个或多个顶点。这个 Vertex Z value 小工具将显示所选内容的平均高度。

  2. 更改小部件中的值。

  3. 新闻发布会 Enter 。输入的值将分配给顶点,并成为下一个顶点的默认值。

更改顶点的Z值的另一种方法是在具有Z值功能的矢量层要素上移动和捕捉它。如果选择了多个顶点,则不能以这种方式更改Z值。

这个 Transform mesh vertices 对话框还提供了修改选定顶点的Z值(以及它们的X或Y坐标)的方法。

18.4.3. 选择网格元素

18.4.3.1. vbl.使用 Digitize Mesh Elements

激活 网格化数字化 Digitize Mesh Elements 工具。将鼠标悬停在某个元素上时,该元素将高亮显示,允许您选择该元素。

  • 单击一个顶点,它将被选中。

  • 单击面或边中心的小正方形,它将被选中。连接的顶点也会被选中。相反,选择边或面的所有顶点也会选择该元素。

  • 拖动矩形以选择重叠元素(选定面及其所有顶点)。新闻发布会 Alt 如果只想选择完全包含的元素,则按键。

  • 要向选定内容添加元素,请按 Shift 同时选择它们。

  • 要从所选内容中删除元素,请按 Ctrl 并重新选择它。取消选择的面也将取消选择其所有顶点。

18.4.3.2. vbl.使用 Select Mesh Elements by Polygon

激活 网格选择多边形 Select Mesh Elements by Polygon 工具和:

  • 绘制一个多边形(左键单击可添加顶点, Backspace 要撤消最后一个顶点,请执行以下操作: Esc 以中止多边形并单击鼠标右键以对其进行验证)。任何部分重叠的顶点和面都将被选中。新闻发布会 Alt 如果只想选择完全包含的元素,请在绘制时按键。

  • 右击矢量层要素的几何体,在弹出的列表中选择它,网格层的任何部分重叠的顶点和面都将被选中。使用 Alt 绘制时仅选择完全包含的元素。

  • 要向选定内容添加元素,请按 Shift 同时选择它们。

  • 要从所选内容中删除元素,请按 Ctrl 同时在选择多边形上绘制。

18.4.3.3. vbl.使用 Select Mesh Elements by Expression

选择网格元素的另一个工具是 MeshSelectExpression Select Mesh Elements by Expression 。按下后,该工具将打开网格 expression selector dialog 从中,您可以执行以下操作:

  1. 选择选择方法:

    • Select by vertices :将输入的表达式应用于顶点,并返回匹配的顶点及其最终关联的边/面

    • Select by faces :将输入的表达式应用于面,并返回匹配的面及其关联的边/顶点

  2. 写出选择的表达式。根据选定的方法, Meshes group 将相应地进行过滤。

  3. 通过设置所选内容的行为方式并按:

    • 表达式选择 Select :替换层中的任何现有选区

    • 选择添加 Add to current selection

    • 选择删除 Remove from current selection

18.4.4. 修改网格元素

18.4.4.1. 添加折点

要将顶点添加到网格层,请执行以下操作:

  1. 按下按钮 网格化数字化 Digitize mesh elements 按钮

  2. A Vertex Z value 小部件出现在地图画布的右上角。将此值设置为要分配给后续折点的Z坐标

  3. 然后双击:

    • 面的外部:添加“自由顶点”,即没有链接到任何面的顶点。当层处于编辑模式时,该顶点由一个红点表示。

    • 在现有面的边上(S):在边上添加顶点,将接触面(S)分割为连接到新顶点的三角形。

    • 面内部:将面拆分为三角形,三角形的边将周围的顶点连接到新顶点。

18.4.4.2. 添加面

要将面添加到网格层,请执行以下操作:

  1. 按下按钮 网格化数字化 Digitize mesh elements 按钮

  2. A Vertex Z value 小部件出现在地图画布的右上角。将该值设置为要指定给后续顶点的Z坐标。

  3. 将鼠标悬停在顶点上,然后单击它旁边显示的小三角形。

  4. 将光标移动到下一个顶点位置;您可以捕捉到现有顶点或单击鼠标左键添加新顶点。

  5. 如上图所示,为面添加任意数量的顶点。新闻发布会 Backspace 按钮撤消最后一个顶点。

  6. 移动鼠标时,会显示一个显示脸部形状的橡皮筋。如果它显示为绿色,则预期的面有效,您可以单击鼠标右键将其添加到网格中。如果为红色,则该面无效(例如,因为它自相交、与现有面或顶点重叠、创建一个洞等)。并且不能添加。您需要撤消一些顶点并修复几何体。

  7. 新闻发布会 Esc 要中止面数字化,请执行以下操作。

  8. 单击鼠标右键以验证面。

../../../_images/invalid_mesh.png

图 18.14 无效网格的示例

18.4.4.3. 删除网格元素

  1. Select the target elements

  2. 启用 网格化数字化 Digitize mesh elements 工具

  3. 单击鼠标右键并选择:

    • Remove Selected Vertices and Fill Hole(s) 或按下 Ctrl+Del :删除顶点和链接面,并通过从相邻顶点三角剖分来填充洞(S)

    • Remove Selected Vertices Without Filling Hole(s) 或按下 Ctrl+Shift+Del :删除顶点和链接面,不填充空洞(S)

    • Remove Selected Face(s) 或按下 Shift+Del :删除面,但保留顶点

将鼠标悬停在单个项目上而不进行选择时,也可以从上下文菜单访问这些选项。

18.4.4.4. 移动网格元素

要移动网格层的顶点和面,请执行以下操作:

  1. Select the target elements

  2. 启用 网格化数字化 Digitize mesh elements 工具

  3. 要开始移动元素,请单击面/边的顶点或质心

  4. 将光标移动到目标位置(支持捕捉到矢量要素)。

  5. 如果新位置没有生成 invalid mesh 时,移动的元素显示为绿色。再次单击以在此位置释放它们。顶点全部选定的面将被平移,其相邻面将相应地重塑形状。

18.4.4.5. 变换网格顶点

这个 MeshTransformByExpression Transform Vertices Coordinates 工具通过使用表达式编辑顶点的X、Y和/或Z坐标,提供了一种更高级的方法来移动顶点。

  1. 选择要编辑坐标的折点

  2. 新闻发布会 MeshTransformByExpression Transform Vertices Coordinates 。此时将打开一个对话框,其中提到了选定的顶点数。您仍然可以在选择中添加或删除顶点。

  3. 根据您要修改的属性,您需要选中 X coordinateY coordinate 和/或 Z value

  4. 然后在框中以数值或表达式的形式输入目标位置(使用 表达式 Expression dialog )

  5. 顶点坐标 Import Coordinates of the Selected Vertex 按下后,无论何时选择单个顶点,X、Y和Z框都会自动填充其坐标。一种方便快捷的单独调整顶点的方法。

  6. 新闻发布会 Preview Transform 模拟顶点的新位置,并使用变换预览网格。

    • 如果预览为绿色,则变换的网格有效,您可以应用变换。

    • 如果预览为红色,则变换后的网格无效,只有在更正后才能应用变换。

  7. 新闻发布会 Apply Transform 若要修改该组顶点的选定坐标,请执行以下操作。

18.4.4.6. 重塑网格几何图形

上下文菜单
  1. 启用 网格化数字化 Digitize mesh elements

  2. 选择网格项目(S),或不选择

  3. 将鼠标悬停在网格元素上时,该元素将亮显。

  4. 右键单击,您可以执行以下操作:

    • remove the item(s)

    • Split Selected Face(s) (Split Current Face): splits the face you are hovering over or each selected quad mesh faces into two triangles

    • Delaunay Triangulation with Selected vertices :使用选定的自由顶点构建三角面。

    • Refine Selected Face(s) (Refine Current Face): splits the face into four faces, based on vertices added at the middle of each edge (a triangle results into triangles, a quad into quads). Also triangulates adjacent faces connected to the new vertices.

边缘标记

网格化数字化 Digitize mesh elements 处于活动状态且您将鼠标悬停在某条边上时,该边将高亮显示,并且可以与其交互。根据环境的不同,可能会提供以下标记:

  • 一个 square ,在边的中心:单击它以选择末端顶点。

  • 一个 cross 如果任一侧的两个面可以合并:单击它以删除边并合并面。

  • 一个 circle 如果边在两个三角形之间:单击它可以翻转边,即将其连接到面的另外两个自由顶点

这个 Force by Selected Geometries 工具

这个 MeshEditForceByVectorLines Force by Selected Geometries 该工具提供了使用线几何图形应用截断线的高级方法。折断线将强制网格沿线具有边。请注意,一旦操作完成,断线将不会被视为永久性的;生成的边将不再作为约束,并且可以像任何其他边一样进行修改。例如,这可用于局部修改具有精确线条的网格层,如河岸或路堤边界。

  1. 启用 MeshEditForceByVectorLines Force by Selected Geometries 工具

  2. 指示要用作“强制线”的几何图形;它可以是:

    • 从地图画布中的线要素或多边形要素拾取:在矢量要素上单击鼠标右键并从关联菜单的列表中选择它。

    • 在网格框架上绘制的虚线:左键单击可添加顶点,右击可进行验证。折点Z值是通过 Vertex Z value 小部件或 z 微件,如果 Advanced Digitizing Panel 打开了。如果直线捕捉到网格顶点或三维矢量要素的顶点或线段,则新顶点将采用捕捉的元素Z值。

重叠线几何或面边界的网格面将受到影响,具体取决于您可以从 MeshEditForceByVectorLines Force by Selected Geometries 工具下拉菜单:

  • 复选框 Add new vertex on intersecting edges :使用此选项时,每次强制线与边相交时都会添加一个新顶点。此选项会导致沿线拆分每个遇到的面。

    如果没有此选项,遇到的面将被移除,并替换为来自仅包含现有顶点和强制线顶点的三角剖分的面(还会在与强制线相交的边界边上添加新顶点)。

    ../../../_images/force_mesh_geometry.png

    图 18.15 使用线条几何图形强制网格-在边上没有(中间)和(右侧)新折点相交的结果

  • Interpolate Z value from :设置计算新顶点Z值的方式。它可以来自:

    • 这个 Mesh 本身:新顶点Z值是从它们所在的面的顶点内插而来的

    • Forcing line :如果直线是由三维矢量要素或绘制的直线定义的,则新顶点Z值是从其几何图形派生的。对于二维线要素,新折点Z值为 Vertex Z value

  • Tolerance :当现有网格顶点比公差值更接近直线时,请不要在直线上创建新顶点,而是使用现有顶点。该值可以在 Meters at Scale 或在 Map Units (更多详细信息请访问 单位选择器 )。

18.4.5. 重建索引网格

During edit, and in order to allow quick undo/redo operations, QGIS keeps empty places for deleted elements, which may lead to growing memory use and inefficient mesh structuring. The Mesh ► 网格重索引 Reindex Faces and Vertices tool is designed to remove these holes and renumber the indices of faces and vertices so that they are continuous and somewhat reasonably ordered. This optimizes relation between faces and vertices and increases the efficiency of calculation.

备注

这个 网格重索引 Reindex Faces and Vertices 工具保存层并清除撤消/重做堆栈,禁用任何回滚。

18.5. 网格计算器

The Mesh Calculator tool from the top Mesh menu allows you to perform arithmetic and logical calculations on existing dataset groups to generate a new dataset group (see 图 18.16).

../../../_images/mesh_calculator.png

图 18.16 网格计算器

这个 Datasets 列表包含活动网格层中的所有数据集组。要在表达式中使用数据集组,请在列表中双击其名称,它将被添加到 Mesh calculator expression 菲尔德。然后,您可以使用运算符来构造计算表达式,或者只需将它们键入框中。

这个 Result Layer 帮助您配置输出层的属性:

  • 复选框 Create on-the-fly dataset group instead of writing layer to disk

    • 如果未选中,输出将作为新的纯文件存储在磁盘上。一个 Output File 路径和一个 Output Format 都是必需的。

    • 如果选中,将向网格层添加新的数据集组。数据集组的值不存储在内存中,但每个数据集在需要时使用在网格计算器中输入的公式进行计算。该虚拟数据集组与工程一起保存,如果需要,可将其从图层中移除或永久保存在文件中 Source 属性选项卡。

    在任何一种情况下,您都应该提供 Group Name 用于输出数据集组。

  • 这个 Spatial extent 考虑进行计算的方法可以是:

    • 一个 Custom extent ,并手动填充 X minX maxY minY max 坐标或从现有数据集组中提取(在列表中选择它,然后按 Use selected layer extent 填写上述坐标字段)

    • 由面层定义 (Mask layer ):使用面要素几何裁剪网格图层数据集

  • 这个 Temporal extent 来考虑数据集,可以使用 Start timeEnd time 选项,从现有数据集组TimeSteps中选择。它们也可以使用 Use all selected dataset times 按钮以获取整个范围。

这个 Operators 部分包含所有可用的运算符。要将运算符添加到网格计算器表达式框中,请单击相应的按钮。数学计算 (+-* ,...)和统计函数 (minmaxsum (aggr)average (aggr) ,...)都是可用的。条件表达式 (=!=<>=IFANDNOT ,...)返回0表示FALSE,返回1表示TRUE,因此可以与其他运算符和函数一起使用。这个 NODATA 值也可以在表达式中使用。

这个 Mesh Calculator Expression 小部件显示并允许您编辑要执行的表达式。