使用新的测量值更新 terrain 数据集的部分内容
更新表面数据的能力对于为分析提供准确、最新的表面信息而言十分重要。
表面更新可通过多种不同方式实现:
- 添加辅助数据(例如,隔断线)
- 移除或替换错误数据
- 使用较新的或更准确的数据
- 使用附加数据增大范围
- 插入设计/建模数据执行假设分析
通常情况下,最好是对用于构造表面的测量值,而不是对派生的数据(如栅格 DEM)执行这些类型的更新。因为派生数据可在编辑测量值之后根据需要重新创建。Terrain 数据集支持编辑模式,因为其保留了与源测量数据的直接连接。当您修改测量值时,系统将会以相同的过程自动修改 terrain。有关 terrain 数据集的详细基本信息,请参阅什么是 terrain 数据集?
如何编辑 terrain
编辑 terrain 数据集实际上是编辑源测量值。使用标准要素编辑工具时,您可以对参与某个 terrain 的要素类中所包含的测量值进行操作。
Terrain 数据集由一个或多个要素类组成,并且各要素类均具有简单规则,用以控制使用要素类形成 terrain 表面的方式。例如,包含激光雷达点的多点要素类可以作为离散多点添加,包含河流和湖岸的线要素类可用作隔断线的源,而面要素类可控制数据区域边界。
大多数用于定义 terrain 的要素类都将被引用。这表示 terrain 保留了指向这些要素类的指针或句柄。terrain 可防止其引用的要素类被删除,并关注对要素类所做的任何编辑,包括添加、删除或修改要素几何。您可以使用 ArcMap 中的要素编辑器以及地理处理工具修改这些要素类。terrain 会自动将其内部被编辑过的区域标记为脏区。然后,可重新构建该 terrain 以使其金字塔方案与更新后的要素保持一致。此操作是基于脏区进行的。这是一种进行局部处理的方法,无需重新构造整个 terrain。
可嵌入多点要素类。嵌入多点要素类后,在 terrain 构建过程中,点将被复制到仅由 terrain 占用的金字塔表中,并且此 terrain 将变为容纳点的容器。terrain 不会引用源要素类。可删除此源要素类,这样通常可释放大量磁盘空间(大约每 1.5 亿个点占用 1 GB)。特定于 Terrain 的工具追加 Terrain 点(可进行添加和替换)和替换 Terrain 点用于基于感兴趣区域编辑嵌入点。这些地理处理工具也提供了具有 BLOB 属性的优势(如果将任意 LAS 属性与多点一同存储,则必须有 BLOB 属性)。有关 BLOB 和激光雷达属性的详细信息,请参阅由激光雷达创建密度图像。
这些 terrain 数据集处理工具可保证基于 BLOB 的值与相对于编辑的点一致。例如,如果从嵌入式要素类中删除某个多点的几个折点,则 terrain 会删除与这些点相对应的基于 BLOB 的属性值。
追加测量值
可通过追加和追加 Terrain 点地理处理工具向 terrain 数据集中添加测量值。追加地理处理工具作用于 terrain 引用的要素类。追加 Terrain 点工具用于添加或替换嵌入式要素类中的点。
还可以使用向 Terrain 添加要素类地理处理工具向现有 terrain 添加要素类。使用向 Terrain 添加要素类地理处理工具添加测量值的过程中会创建一个使整个 terrain 数据集失效的方案编辑,从而需要重新构建整个 terrain。如果要逐渐添加数据,最好将数据追加到已参与 terrain 数据集的要素类,而不是针对每个新数据集向 terrain 数据集中添加新要素类。
例如,有时将分阶段提供数据,即首先提供裸露地表激光雷达点,然后通过多次传输提供隔断线。了解此过程后,可以创建一个引用激光雷达多点要素类(其中包含裸露地表点)的 terrain 数据集,以及一个用于保存隔断线的空的线要素类。下图显示的是一个仅由裸露地表激光雷达点组成的 terrain 数据集的放大视图:
![仅带有点的 Terrain 数据集 仅带有点的 Terrain 数据集](015w/GUID-73D6F65B-D561-48F1-9E09-E8B5E8AB3637-web.png)
提供部分隔断线后,它们将被添加到 terrain 数据集,方法是将它们添加到 terrain 数据集所引用的线要素类。可使用追加地理处理工具完成此操作,如下所示:
![追加地理处理工具对话框 追加地理处理工具对话框](015w/GUID-A3114A41-C8DB-40F6-A4AB-B6BC1A4FAC4F-web.png)
运行追加地理处理工具之后,terrain 数据集中添加线的区域将变成脏区。要确定脏区,可从 terrain 图层的图层属性 对话框的符号系统选项卡中添加脏区渲染器。下图显示的是 terrain 数据集的图层属性 中的添加渲染器 对话框。介绍为 terrain 数据集添加脏区渲染器的步骤的信息,请参阅显示 terrain 的脏区。
![添加渲染器对话框 添加渲染器对话框](015w/GUID-5731D121-2BA2-44B3-B5DE-E8F44A8C73D9-web.png)
紫色的线表示 terrain 数据集的脏区分块。terrain 图层用于绘制表示所编辑区域周围的矩形边界的脏区。
![脏 terrain 分块 脏 terrain 分块](015w/GUID-4D798AA4-337D-4987-BE9D-97F74D06846E-web.png)
接下来必须重新构建 terrain 数据集。可以使用构建 Terrain 地理处理工具,或者使用 ArcCatalog 或目录 窗口中“Terrain 属性”对话框的“更新”选项卡上的构建 Terrain 按钮。重新构建 terrain 数据集之后,由隔断线所做的改进十分明显。通过添加隔断线(如下图所示),terrain 数据集中水要素的定义得到了改进:
![通过隔断线强化的 Terrain 数据集 通过隔断线强化的 Terrain 数据集](015w/GUID-C1BBA0B1-74C6-4DAB-A0D0-5F0B4530A55A-web.png)
替换要素
对于引用的要素类中的线和面,测量值的替换过程分为两步。首先删除旧要素,然后追加新要素。如果仅处理较少的要素,可考虑使用 ArcMap 中的编辑器 工具选中这些要素,然后将它们删除。对于较大的集合,则通过地理处理工具加以处理。例如,使用按位置选择,然后使用删除要素和追加。
如果激光雷达点被嵌入到 terrain 数据集中,则很容易替换它们。替换 Terrain 点地理处理工具可选择感兴趣区或要素图层选项来替换点。这将替换指定感兴趣区内的所有点。因此,如果发现少数用于构建 terrain 数据集的源点文件存在问题,则无需从头开始重新构建整个 terrain 即可替换它们。下面两张图像显示的是无意中随第一个回波激光雷达数据加载的一个裸露地表模型的示例。
图像显示的是由 terrain 数据集得到的山体阴影。左侧的图像清楚地显示了要包含在子区中的第一个或所有回波数据的错误。右侧的是正确数据的图像。
![]() | ![]() |
要解决此问题,首先将替换数据加载到新的多点要素类中,然后运行替换 Terrain 点地理处理工具以使用正确的激光雷达点数据更新 terrain 数据集。默认情况下,替换区域将由输入要素图层的范围来确定,如下图所示:
![替换 Terrain 点对话框 替换 Terrain 点对话框](015w/GUID-B83CCD4A-D260-426D-8549-B296A102BEC8-web.png)
替换点后,需要重新构建 terrain 数据集以更新受影响的区域。可运行构建 Terrain 地理处理工具,或者使用 ArcCatalog 或目录 窗口中 Terrain 属性 对话框的更新选项卡上的构建 Terrain 按钮。两种方法均可更新受新激光雷达点影响的 terrain 区域。
为了提高质量或分析假设情景,有时也需要更新表面模型。要使这些类型的更新派生出诸如栅格 DEM 的产物并且更新区域周围没有异常,是很困难的。更恰当的做法是修改派生出表面模型的源测量数据。对于较大的数据集(例如来自激光雷达的数据集),最好也仅重新处理发生更新的数据集位置,而不是重新构建整个数据集。通过保留与地理数据库中源测量值的连接和脏区使用,Terrain 数据集实现了对此操作的支持。