有关表面的基础知识
3D 表面模型是三维空间中要素(真实或假想)的一种数字表达形式。3D 表面的几个简单示例如地表、城市走廊、地下天然气矿床以及用于测定地下水位深度的深井组成的网络。这些均属于真实要素的示例,但表面也可以是派生的或假想的。某种特定细菌在每个井中的污染程度就是派生表面的一个示例。这些污染程度级别也可以绘制成 3D 表面地图。在视频游戏或计算机模拟环境中经常可以见到假想 3D 表面。
通常可以使用专门设计的算法来获取或计算 3D 表面,这些算法对点、线或面数据进行采样然后将其转换为数字 3D 表面。ArcGIS 可以创建和存储四种类型的表面模型:栅格、不规则三角网 (TIN)、terrain 数据集和 LAS 数据集。
这些表面模型可通过多种数据源创建。创建表面模型的两种主要方法为插值法和三角测量法。创建栅格表面的插值方法有很多种,例如反距离权重法、样条函数法、克里金法和自然邻域法。可以通过创建 TIN、terrain 数据集或 LAS 数据集来构建三角面。还可以在这些表面模型之间进行转换。
栅格、TIN、terrain 和 LAS 数据集都属于功能性表面类型。功能性表面是一组连续值的场域,在各点处的值各不相同。例如,地球表面某一区域内的各点可能在高程值、与要素的接近度或某特定化学物质的浓度等方面存在差异。这些值中的任意一个都可以在 x,y,z 三维坐标系的 z 轴上表示,因此通常将它们称为 z 值。
表面模型可用于在 GIS 中存储表面信息。由于表面中包含无数个点,因此不可能测量并记录每一个点的 z 值。但是,通过对表面上不同点处的值进行采样并在这些点之间进行插值,表面模型便可以近似地看作表面。
下图显示了某区域范围内化学物质浓度的表面模型。其中的点表示浓度的采样地点。
栅格
GIS 数据一般分为两种主要的类型:栅格数据和矢量数据。矢量数据由点、线、面以及它们之间用以组成地理空间数据的关联关系来定义。真实要素和真实表面可以表示为存储在 GIS 中的矢量数据。栅格数据则是栅格像元的矩形矩阵,以行和列的形式表示。每个栅格像元均用于表示地球表面上一块经过定义的方形区域,其值在整个栅格像元范围内始终保持不变。表面可以通过栅格数据表示,数据中的每个栅格像元均表示实际信息的某个值。该值可以为高程数据、污染程度、地下水位高度等。
栅格数据还可以被细分成多个类别,例如专题数据、图片数据或连续数据。通过栅格数据表示的表面就是连续数据的一种形式。连续数据也指字段数据、非离散数据或表面数据。通过连续表面可以表示这样的现象:表面上的每个位置都可以用来衡量浓度级别,还可以用来衡量某点与空间中固定点或与发射源之间的关系。
高程模型就是这种栅格表面模型的一种示例。固定点可能是通过摄影测量方法得出的高程点,而在这些高程点之间插值将有助于构建数字高程模型 (DEM)。由于栅格表面通常以栅格像元之间间隔均匀的格网格式存储,因此,栅格像元越小,格网的位置精度就越高。下例对较高精度格网(左图)与较低精度格网(右图)进行了比较。
各要素(例如,山顶)的位置是否精确与格网像元的大小直接相关。在上例中,使用了一种非常粗糙的高程表面数据描绘二维平面视图中的表面模型。也可以在 3D 透视图中通过其他图像源生成栅格表面并建立表面模型,例如,带有山体阴影的高分辨率 DEM(如下图所示)。
栅格表面是一组连续值的场域,在各点处的值各不相同。例如,某一区域内的各点可能在高程值、与要素的接近度或某特定化学物质的浓度等方面都存在差异。这些值中的任意一个都可以在 x,y,z 三维坐标系的 z 轴上表示,这样便可以生成连续的 3D 表面。
栅格表面数据将表面表示为由大小相同的栅格像元组成的格网,而各栅格像元的属性值则表示 z 值和 x,y 位置坐标。
使用 ArcGIS 3D Analyst 扩展模块进行处理时,很可能会占用或创建许多栅格数据集。在处理栅格时,理解栅格数据集在 3D Analyst 中的表示方法至关重要。
TIN
TIN 以数字方式来表示表面形态,GIS 社区多年来一直采用此方法。TIN 是基于矢量的数字地理数据的一种形式,它通过将一系列折点(点)组成三角形来构建。各折点通过由一系列边进行连接,最终形成一个三角网。形成这些三角形的插值方法有很多种,例如 Delaunay 三角测量法或距离排序法。ArcGIS 支持 Delaunay 三角测量方法。
生成的三角测量满足 Delaunay 三角形准则,这确保没有任何折点位于网络中三角形的任何外接圆内部。如果 TIN 上的任何位置都符合 Delaunay 准则,则所有三角形的最小内角都将被最大化。这样会尽可能避免形成狭长三角形。
TIN 的各边可形成不叠置的连续三角面,可用于捕捉在表面中发挥重要作用的线状要素(如山脊线或河道)的位置。在以下两幅图中,左图显示了 TIN 的结点和边,右图显示了 TIN 的结点、边和面。
由于结点可以不规则地放置在表面上,所以在表面起伏变化较大或需要更多细节的区域,TIN 可具有较高的分辨率,而在表面起伏变化较小的区域,则可具有较低的分辨率。
用于创建 TIN 的输入要素与结点或边在 TIN 中位于同一位置。这样,TIN 便能够在对已知点之间的值进行建模的同时保持输入数据的所有精度。可以在表面上引入精确定位的要素(如山峰、道路及河流),方法是将其用作 TIN 结点的输入要素。
TIN 模型的可用范围没有栅格表面模型那么广泛,且构建和处理也更耗时。获得优良源数据的成本可能会很高,并且,由于数据结构非常复杂,处理 TIN 的效率要比处理栅格数据低。
TIN 通常用于较小区域的高精度建模(如在工程应用中),此时 TIN 非常有用,因为它们允许计算平面面积、表面积和体积。
Terrain 数据集
遥感高程数据(如激光雷达和声纳点的测量值)在数量上可达几十万甚至上百万之多。因此,对如今的大多数硬件和软件而言,在对这种类型的数据进行管理和建模时是很麻烦的。Terrain 数据集允许生成一系列规则和条件,根据此类规则和条件将源数据的索引编成一组动态生成的有序 TIN 金字塔。
Terrain 数据集是管理地理数据库中基于点的大量数据并动态生成高质量精确表面的有效方法。激光雷达、声纳和高程的测量值在数量上可达几十万甚至数十亿之多。在很多情况下,不允许对此类数据进行组织、分类以及根据此类数据生成 3D 产品。而且,即使允许,要执行这些操作也会相当困难。Terrain 数据集可用于克服这些数据管理难题,它能够对源数据进行编辑,并且在不同的分辨率下均可生成具有高精度的 TIN。
渲染大型 TIN 通常比较困难,这部分归因于硬件(如显卡)的限制。然而,在渲染需要以最佳分辨率显示的区域时,terrain 是很好的选择。因此,如果在 ArcGlobe 或 ArcMap 中有一个小比例区域,terrain 将会利用较少的结点在屏幕上生成渲染的 TIN。不过,如果以大比例放大某个区域,将使用全分辨率(利用该区域的所有结点)动态生成 TIN。其明显的优势在于,只有一小部分研究区域使用大量结点来渲染,或者,使用结点的子采样集合动态生成低分辨率的 TIN。
下图显示了这种情况的示例:
Terrain 位于个人地理数据库、文件地理数据库或 ArcSDE 地理数据库中要素数据集的内部。而要素数据集中的其他要素类可以参与 terrain 中或者真正地嵌入到 terrain 中,这样一来,创建完 terrain 数据集后,源数据在离线状态下也可以被移动。下图说明了多种类型的要素类如何参与生成 TIN 金字塔:
Terrain 数据集既可嵌入源数据也可引用源数据,这是它独有的特点。通过为每个测量数据点建立索引可生成一系列 TIN 金字塔,每一金字塔的参与结点(源点)数依次减少。这使得 ArcMap 和 ArcGlobe 能以所需的任意分辨率动态生成 TIN。在小比例下显示数据需要的点较少,因此渲染后获得的 TIN 分辨率较低。随着查看器放大显示画面,数据集中包含的区域越来越小,但分辨率越来越高,点的密度随之增大,但不会对性能产生影响,因为只对显示区域渲染高分辨率表面。
在任何许可级别下均可读取和查看 terrain 数据集。可以使用装有 ArcGIS 3D Analyst 扩展模块的 ArcGIS for Desktop Standard 和 高级版 创建 terrain。ArcScene 不支持 terrain 数据集。
要了解有关 terrain 的详细信息,请访问以下主题:
LAS 数据集
LAS 数据集存储对磁盘上一个或多个 LAS 文件以及其他表面要素的引用。LAS 文件采用行业标准二进制格式,用于存储机载激光雷达数据。LAS 数据集允许您以原生格式方便快捷地检查 LAS 文件,并在 LAS 文件中提供了激光雷达数据的详细统计数据和区域 coverage。
LAS 数据集还可存储包含表面约束的要素类的引用。表面约束为隔断线、水域多边形、区域边界或 LAS 数据集中强化的任何其他类型的表面要素。
LAS 文件包含激光雷达点云数据。有关 LAS 文件的详细信息,请参阅:存储激光雷达数据。
要了解有关 LAS 数据集的详细信息,请访问以下主题: