南北美洲三角的西端,都有北南走向的山脉。山脉面积大约占总面积的三分之一,其余的三分之二在东部,是一块大平原。平原被两座低矮的山脉把它与大海隔离开来。在北美洲,是拉布拉多山和阿巴拉契亚山;南美洲则是圭亚那山脉和巴西高原。 房龙 横看成岭侧成峰,远近高低各不同。 苏轼 第九章 数字地形模型(DTM)与地形分析 导读:DEM和DTM主要用于描述地面起伏状况,可以用于提取各种地形参数,如坡度、坡向、粗糙度等,并进行通视分析、流域结构生成等应用分析。因此,DEM在各个领域中被广泛使用。 DEM可以有多种表达方法,包括网格、等高线、三角网等,本章同时介绍了这些表达方法之间的相互转换算法,如由三角网生成等高线,网格DEM生成三角网等等。 1.概述 数字地形模型(DTM, Digital Terrain Model)最初是为了高速公路的自动设计提出来的(Miller,1956)。此后,它被用于各种线路选线(铁路、公路、输电线)的设计以及各种工程的面积、体积、坡度计算,任意两点间的通视判断及任意断面图绘制。在测绘中被用于绘制等高线、坡度坡向图、立体透视图,制作正射影像图以及地图的修测。在遥感应用中可作为分类的辅助数据。它还是地理信息系统的基础数据,可用于土地利用现状的分析、合理规划及洪水险情预报等。在军事上可用于导航及导弹制导、作战电子沙盘等。对DTM的研究包括DTM的精度问题、地形分类、数据采集、DTM的粗差探测、质量控制、数据压缩、DTM应用以及不规则三角网DTM的建立与应用等。 1.1 DTM和DEM 从数学的角度,高程模型是高程Z关于平面坐标X,Y两个自变量的连续函数,数字高程模型(DEM)只是它的一个有限的离散表示。高程模型最常见的表达是相对于海平面的海拔高度,或某个参考平面的相对高度,所以高程模型又叫地形模型。实际上地形模型不仅包含高程属性,还包含其它的地表形态属性,如坡度、坡向等。 数字地形模型是地形表面形态属性信息的数字表达,是带有空间位置特征和地形属性特征的数字描述。数字地形模型中地形属性为高程时称为数字高程模型(Digital Elevation Model,简称DEM)。高程是地理空间中的第三维坐标。由于传统的地理信息系统的数据结构都是二维的,数字高程模型的建立是一个必要的补充。DEM通常用地表规则网格单元构成的高程矩阵表示,广义的DEM还包括等高线、三角网等所有表达地面高程的数字表示。在地理信息系统中,DEM是建立DTM的基础数据,其它的地形要素可由DEM直接或间接导出,称为“派生数据”,如坡度、坡向。 1.2 DEM的表示法 一个地区的地表高程的变化可以采用多种方法表达,用数学定义的表面或点、线、影像都可用来表示DEM,如图9-1所示。 1)数学方法 用数学方法来表达,可以采用整体拟合方法,即根据区域所有的高程点数据,用傅立叶级数和高次多项式拟合统一的地面高程曲面。也可用局部拟合方法,将地表复杂表面分成正方形规则区域或面积大致相等的不规则区域进行分块搜索,根据有限个点进行拟合形成高程曲面。 2)图形方法 (2.1)线模式 等高线是表示地形最常见的形式。其它的地形特征线也是表达地面高程的重要信息源,如山脊线、谷底线、海岸线及坡度变换线等。 (2.2)点模式 用离散采样数据点建立DEM是DEM建立常用的方法之一。数据采样可以按规则格网采样,可以是密度一致的或不一致的;可以是不规则采样,如不规则三角网、邻近网模型等;也可以有选择性地采样,采集山峰、洼坑、隘口、边界等重要特征点。  图9-1:DEM的表示方法 在地理信息系统中,DEM最主要的三种表示模型是:规则格网模型,等高线模型和不规则三角网模型。 2.DEM的主要表示模型 2.1规则格网模型 规则网格,通常是正方形,也可以是矩形、三角形等规则网格。规则网格将区域空间切分为规则的格网单元,每个格网单元对应一个数值。数学上可以表示为一个矩阵,在计算机实现中则是一个二维数组。每个格网单元或数组的一个元素,对应一个高程值,如图9-2所示。  图9-2:格网DEM 对于每个格网的数值有两种不同的解释。第一种是格网栅格观点,认为该格网单元的数值是其中所有点的高程值,即格网单元对应的地面面积内高程是均一的高度,这种数字高程模型是一个不连续的函数。第二种是点栅格观点,认为该网格单元的数值是网格中心点的高程或该网格单元的平均高程值,这样就需要用一种插值方法来计算每个点的高程。计算任何不是网格中心的数据点的高程值,使用周围4个中心点的高程值,采用距离加权平均方法进行计算,当然也可使用样条函数和克里金插值方法。 规则格网的高程矩阵,可以很容易地用计算机进行处理,特别是栅格数据结构的地理信息系统。它还可以很容易地计算等高线、坡度坡向、山坡阴影和自动提取流域地形,使得它成为DEM最广泛使用的格式,目前许多国家提供的DEM数据都是以规则格网的数据矩阵形式提供的。格网DEM的缺点是不能准确表示地形的结构和细部,为避免这些问题,可采用附加地形特征数据,如地形特征点、山脊线、谷底线、断裂线,以描述地形结构。 格网DEM的另一个缺点是数据量过大,给数据管理带来了不方便,通常要进行压缩存储。DEM数据的无损压缩可以采用普通的栅格数据压缩方式,如游程编码、块码等,但是由于DEM 数据反映了地形的连续起伏变化,通常比较“破碎”,普通压缩方式难以达到很好的效果;因此对于网格DEM数据,可以采用哈夫曼编码进行无损压缩;有时,在牺牲细节信息的前提下,可以对网格DEM进行有损压缩,通常的有损压缩大都是基于离散余弦变换(Discrete Cosine Transformation,DCT)或小波变换(Wavelet Transformation)的,由于小波变换具有较好的保持细节的特性,近年来将小波变换应用于DEM数据处理的研究较多。 2.2等高线模型 等高线模型表示高程,高程值的集合是已知的,每一条等高线对应一个已知的高程值,这样一系列等高线集合和它们的高程值一起就构成了一种地面高程模型。如图9-3所示。  图9-3:等高线 等高线通常被存成一个有序的坐标点对序列,可以认为是一条带有高程值属性的简单多边形或多边形弧段。由于等高线模型只表达了区域的部分高程值,往往需要一种插值方法来计算落在等高线外的其它点的高程,又因为这些点是落在两条等高线包围的区域内,所以,通常只使用外包的两条等高线的高程进行插值。 等高线通常可以用二维的链表来存储。另外的一种方法是用图来表示等高线的拓扑关系,将等高线之间的区域表示成图的节点,用边表示等高线本身。此方法满足等高线闭合或与边界闭合、等高线互不相交两条拓扑约束。这类图可以改造成一种无圈的自由树。下图为一个等高线图和它相应的自由树(图9-4)。其它还有多种基于图论的表示方法。  图9-4:等高线和相应的自由树 2.3不规则三角网(TIN)模型 尽管规则格网DEM在计算和应用方面有许多优点,但也存在许多难以克服的缺陷: 1)在地形平坦的地方,存在大量的数据冗余; 2)在不改变格网大小的情况下,难以表达复杂地形的突变现象; 3)在某些计算,如通视问题,过分强调网格的轴方向。 不规则三角网(Triangulated Irregular Network, TIN)是另外一种表示数字高程模型的方法[Peuker等,1978],它既减少规则格网方法带来的数据冗余,同时在计算(如坡度)效率方面又优于纯粹基于等高线的方法。 TIN模型根据区域有限个点集将区域划分为相连的三角面网络,区域中任意点落在三角面的顶点、边上或三角形内。如果点不在顶点上,该点的高程值通常通过线性插值的方法得到(在边上用边的两个顶点的高程,在三角形内则用三个顶点的高程)。所以TIN是一个三维空间的分段线性模型,在整个区域内连续但不可微。 TIN的数据存储方式比格网DEM复杂,它不仅要存储每个点的高程,还要存储其平面坐标、节点连接的拓扑关系,三角形及邻接三角形等关系。TIN模型在概念上类似于多边形网络的矢量拓扑结构,只是TIN模型不需要定义“岛”和“洞”的拓扑关系。 有许多种表达TIN拓扑结构的存储方式,一个简单的记录方式是:对于每一个三角形、边和节点都对应一个记录,三角形的记录包括三个指向它三个边的记录的指针;边的记录有四个指针字段,包括两个指向相邻三角形记录的指针和它的两个顶点的记录的指针;也可以直接对每个三角形记录其顶点和相邻三角形(图9-5)。每个节点包括三个坐标值的字段,分别存储X,X,Z坐标。这种拓扑网络结构的特点是对于给定一个三角形查询其三个顶点高程和相邻三角形所用的时间是定长的,在沿直线计算地形剖面线时具有较高的效率。当然可以在此结构的基础上增加其它变化,以提高某些特殊运算的效率,例如在顶点的记录里增加指向其关联的边的指针。  图9-5:三角网的一种存储方式 不规则三角网数字高程由连续的三角面组成,三角面的形状和大小取决于不规则分布的测点,或节点的位置和密度。不规则三角网与高程矩阵方法不同之处是随地形起伏变化的复杂性而改变采样点的密度和决定采样点的位置,因而它能够避免地形平坦时的数据冗余,又能按地形特征点如山脊、山谷线、地形变化线等表示数字高程特征。 2.4层次模型 层次地形模型(Layer of Details,LOD)是一种表达多种不同精度水平的数字高程模型。大多数层次模型是基于不规则三角网模型的,通常不规则三角网的数据点越多精度越高,数据点越少精度越低,但数据点多则要求更多的计算资源。所以如果在精度满足要求的情况下,最好使用尽可能少的数据点。层次地形模型允许根据不同的任务要求选择不同精度的地形模型。层次模型的思想很理想,但在实际运用中必须注意几个重要的问题: 1)层次模型的存储问题,很显然,与直接存储不同,层次的数据必然导致数据冗余。 2)自动搜索的效率问题,例如搜索一个点可能先在最粗的层次上搜索,再在更细的层次上搜索,直到找到该点。 3)三角网形状的优化问题,例如可以使用Delaunay三角剖分。 4)模型可能允许根据地形的复杂程度采用不同详细层次的混合模型,例如,对于飞行模拟,近处时必须显示比远处更为详细的地形特征。 5)在表达地貌特征方面应该一致,例如,如果在某个层次的地形模型上有一个明显的山峰,在更细层次的地形模型上也应该有这个山峰。 这些问题目前还没有一个公认的最好的解决方案,仍需进一步深入研究。 3.DEM模型之间的相互转换 在实际应用中,DEM模型之间可以相互转换。大部分DEM数据都是规则格网DEM,但由于规则格网DEM的数据量大而不便存储,也可能由于某些分析计算需要使用TIN模型的DEM,如进行通视分析。此时需要将格网DEM转成TIN模型的DEM。反之,如果已有TIN模型的DEM数据,为满足某种应用的需要,也需要转成规则格网的DEM。 3.1不规则点集生成TIN 对于不规则分布的高程点,可以形式化地描述为平面的一个无序的点集P,点集中每个点p对应于它的高程值。将该点集转成TIN,最常用的方法是Delaunay三角剖分方法。生成TIN的关键是Delaunay三角网的产生算法,下面先对Delaunay三角网和它的偶图Voronoi图作简要的描述。 Voronoi图,又叫泰森多边形或Dirichlet图,它由一组连续多边形组成,多边形的边界是由连接两邻点线段的垂直平分线组成。N个在平面上有区别的点,按照最近邻原则划分平面:每个点与它的最近邻区域相关联。Delaunay三角形是由与相邻Voronoi多边形共享一条边的相关点连接而成的三角形。Delaunay三角形的外接圆圆心是与三角形相关的Voronoi多边形的一个顶点。Delaunay三角形是Voronoi图的偶图,如图9-6所示。  图9-6:Delaunay三角网与Voronoi图 对于给定的初始点集P,有多种三角网剖分方式,而Delaunay三角网有以下特性: 1)其Delaunay三角网是唯一的; 2)三角网的外边界构成了点集P的凸多边形“外壳”; 3)没有任何点在三角形的外接圆内部,反之,如果一个三角网满足此条件,那么它就是Delaunay三角网。 4)如果将三角网中的每个三角形的最小角进行升序排列,则Delaunay三角网的排列得到的数值最大,从这个意义上讲,Delaunay三角网是“最接近于规则化”的三角网。 下面简要介绍Delaunay三角形产生的基本准则: Delaunay三角形产生准则的最简明的形式是:任何一个Delaunay三角形的外接圆的内部不能包含其它任何点[Delaunay 1934]。Lawson[1972]提出了最大化最小角原则:每两个相邻的三角形构成的凸四边形的对角线,在相互交换后,六个内角的最小角不再增大。Lawson [1977]又提出了一个局部优化过程LOP(Local Optimization Procedure)方法。如图9-7所示。先求出包含新插入点p的外接圆的三角形,这种三角形称为影响三角形(Influence Triangulation)。删除影响三角形的公共边(图b中粗线),将p与全部影响三角形的顶点连接,完成p点在原Delaunay三角形中的插入。  图9-7:向Delaunay三角形中插入点 将该点集转成TIN,最常用的方法是Delaunay三角剖分方法,生成过程分两步完成: 1)利用P中点集的平面坐标产生Delaunay三角网; 2)给Delaunay三角形中的节点赋予高程值。 3.2格网DEM转成TIN 格网DEM转成TIN可以看作是一种规则分布的采样点生成TIN的特例,其目的是尽量减少TIN的顶点数目,同时尽可能多地保留地形信息,如山峰、山脊、谷底和坡度突变处。规则格网DEM可以简单地生成一个精细的规则三角网,针对它有许多算法,绝大多数算法都有两个重要的特征: 1)筛选要保留或丢弃的格网点; 2)判断停止筛选的条件。 其中两个代表性的方法算法是保留重要点法和启发丢弃法。 3.2.1保留重要点法 该方法是一种保留规则格网DEM中的重要点来构造TIN的方法[Chen、Gauvara(1987)]。它是通过比较计算格网点的重要性,保留重要的格网点。重要点(VIP,Very Important Point)是通过3*3的模板来确定的,根据八邻点的高程值决定模板中心是否为重要点。格网点的重要性是通过它的高程值与8邻点高程的内插值进行比较,当差分超过某个阈值的格网点保留下来。被保留的点作为三角网顶点生成Delaunay三角网。如图9-8所示,由3*3的模板得到中心点P和8邻点的高程值,计算中心点P到直线AE,CG,BF,DH的距离,图右图表示,再计算4个距离的平均值。如果平均值超过阈值,P点为重要点,则保留,否则去除P点。  图9-8:VIP方法示意 3.2.2启发丢弃法(DH—Drop Heuristic) 该方法将重要点的选择作为一个优化问题进行处理。算法是给定一个格网DEM和转换后TIN中节点的数量限制,寻求一个TIN与规则格网DEM的最佳拟合。首先输入整个格网DEM,迭代进行计算,逐渐将那些不太重要的点删除,处理过程直到满足数量限制条件或满足一定精度为止。具体过程如下(图9-9): 1)算法的输入是TIN,每次去掉一个节点进行迭代,得到节点越来越少的TIN。很显然,可以将格网DEM作为输入,此时所有格网点视为TIN的节点,其方法是将格网中4个节点的其中两个相对节点连接起来,这样将每个格网剖分成两个三角形。 2)取TIN的一个节点O及与其相邻的其它节点,如图9-9所示,O的邻点(称Delaunay邻接点)为A,B,C,D,使用Delaunay三角构造算法,将O的邻点进行Delaunay三角形重构,图9-9中实线所示。 3)判断该节点O位于哪个新生成的Delaunay三角形中,如图9-9为三角形BCE。计算O点的高程和过O点与三角形BCE交点O’的高程差d。若高程差d大于阈值de,则O点为重要点,保留,否则,可删除。de为阈值。 4)对TIN中所有的节点,重复进行上述判断过程。 5)直到TIN中所有的节点满足条件d>de,结束。  图9-9:DH方法转换格网DEM成TIN (左图虚线为以O为中心的Delaunay三角形,实线为新生成的Delaunay三角形; 右图为高差的计算[注意:此图描述了三维空间]) 两种方法相比较[Lee,1991],VIP方法在保留关键网格点方面(顶点、凹点)最好;DH方法在每次丢弃数据点时确保信息丢失最少,但要求计算量大。各种方法各有利弊,实际应用中根据不同的需要,如检测极值点,高效存储,最小误差,可以选择使用不同的方法。 3.3等高线转成格网DEM 表示地形的最常见的线模式是一系列描述高程曲线的等高线。由于现有地图大多数都绘有等高线,这些地图便是数字高程模型的现成数据源,可以将纸面等高线图扫描后,自动获取DEM数据。由于数字化的等高线不适合于计算坡度或制作地貌渲染图等地形分析,因此,必须要把数字化等高线转为格网高程矩阵。 使用局部插值算法,如距离倒数加权平均或克里金插值算法*,可以将数字化等高线数据转为规则格网的DEM数据,但插值的结果往往会出现一些许多不令人满意的结果,而且数字化等高线时越小心,采样点越多,问题越严重。问题不在于计算插值权重系数的理论假设,也不在于平滑等高线是真实地形的反映的假设,而在于估计未知格网点的高程要在一个半径范围内搜索落在其中的已知点数据,再计算它的加权平均值。如果搜索到的点都具有相同的高程,那待插值点的高程也同为此高程值。结果导致在每条等高线周围的狭长区域内具有与等高线相同的高程,出现了“阶梯”地形。当低海拔平原地区等高线距离更远时,搜索到一条等高线上的数据的可能性就越大,问题更严重。以带“阶梯”地形的DEM为基础,计算坡度往往会出现不自然的条斑状分布模式(图9-10)。  图9-10:等值线插值造成“阶梯地形”的原因 最好的解决方法是使用针对等高线插值的专用方法。如果没有合适的方法,最好把等高线数据点减少到最少,增加标识山峰、山脊、谷底和坡度突变的数据点,同时使用一个较大的搜索窗口。 3.4利用格网DEM提取等高线 在利用格网DEM生成等高线时,需要将其中的每个点视为一个几何点,而不是一个矩形区域,这样可以根据格网DEM中相邻四个点组成四边形进行等高线跟踪。其方法类似于后面描述的利用TIN提取等高线。实际上,也可以将每个矩形分割成为两个三角形,并应用TIN提取等高线算法,但是由于矩形有两种划分三角形的方法,在某些情况下,会生成不同的等高线(图9-11),这时需要根据周围的情况进行判断并决定取舍。  (a) (b) 图9-11:由于三角形划分不同造成生成等高线的不同 在格网DEM提取等高线中,除了划分为三角形之外,也可以直接使用四边形跟踪等高线。但是在图9-11所示的情形中,仍会出现等高线跟踪的二义性,即对于每个四边形,有两条等高线的离去边。进行取舍判断的方法一般是计算距离,距离近的连线方式优于距离远的连线方式。在图9-11种,就要采用(b)图所示的跟踪方式。 格网DEM提取等高线另一个值得注意的问题是,如果一些网格点的数值恰好等于要提取的等高线的数值,会使判断过程变得复杂,并且会生成不闭合的等高线,一般的解决办法是将这些网格点的数值增加一个小的偏移量。 3.5 TIN转成格网DEM TIN转成格网DEM可以看作普通的不规则点生成格网DEM的过程。方法是按要求的分辨率大小和方向生成规则格网,对每一个格网搜索最近的TIN数据点,按线性或非线性插值函数计算格网点高程*。 4.DEM的建立 为了建立DEM,必需量测一些点的三维坐标,这就是DEM数据采集。 4.1 DEM数据采集方法 1)地面测量 利用自动记录的测距经纬仪(常用电子速测经纬仪或全站经纬仪)在野外实测。这种速测经纬仪一般都有微处理器,可以自动记录和显示有关数据,还能进行多种测站上的计算工作。其记录的数据可以通过串行通讯,输入计算机中进行处理。 2)现有地图数字化 利用数字化仪对已有地图上的信息(如等高线)进行数字化的方法,目前常用的数字化仪有手扶跟踪数字化仪和扫描数字化仪。 3)空间传感器 利用全球定位系统GPS,结合雷达和激光测高仪等进行数据采集。 4)数字摄影测量方法 这是DEM数据采集最常用的方法之一。利用附有的自动记录装置(接口)的立体测图仪或立体坐标仪、解析测图仪及数字摄影测量系统,进行人工、半自动或全自动的量测来获取数据。 4.2数字摄影测量获取DEM 数字摄影测量方法是空间数据采集最有效的手段,它具有效率高、劳动强度低的优点。数据采样可以全部由人工操作,通常费时且易于出错;半自动采样可以辅助操作人员进行采样,以加快速度和改善精度,通常是由人工控制高程Z,由机器自动控制平面坐标X,Y的驱动;全自动方法利用计算机视觉代替人眼的立体观测,速度虽然快,但精度较差。 人工或半自动方式的数据采集,数据的记录可分为“点模式”或“流模式”,前者根据控制信号记录静态量测数据,后者是按一定规律连续地记录动态的量测数据。 摄影测量方法用于生产DEM,数据点的采样方法根据产品的要求不同而异。沿等高线、断面线、地性线进行采样往往是有目的的采样。而许多产品要求高程矩阵形式,所以基于规则格网或不规则格网点的面采样是必须的,这种方式与其它空间属性的采样方式一样,只是采样密度高一些。 1)沿等高线采样 在地形复杂及陡峭地区,可采用沿等高线跟踪方式进行数据采集,而在平坦地区,则不宜采用沿等高线采样。沿等高线采样时可按等距离间隔记录数据或按等时间间隔记录数据方式进行。采用后一种方式,由于在等高线曲率大的地方跟踪速度较慢,因而采集的点较密集,而在等高线较平直的地方跟踪速度快,采集的点较稀疏,故只要选择恰当的时间间隔,所记录的数据就能很好地描述地形,又不会有太多的数据。 2)规则格网采样 利用解析测图仪在立体模型中按规则矩形格网进行采样,直接构成规则格网DEM。当系统驱动测标到格网点时,会按预先选定的参数停留一短暂时间(如0.2秒),供作业人员精确测量。该方法的优点是方法简单、精度高、作业效率也较高;缺点是对地表变化的尺度的灵活性较差,可能会丢失特征点。 3)渐进采样(Progressive Sampling) 渐进采样方法的目的是使采样点分布合理,即平坦地区样点少,地形复杂区的样点较多。渐进采样首先按预定比较稀疏的间隔进行采样,获得一个较稀疏的格网,然后分析是否需要对格网进行加密,如图9-12所示。判断加密的方法可利用高程的二阶差分是否超过了给定的阈值;或利用相邻的三点拟合一条二次曲线,计算两点间中点的二次内插值与线性内插值之差,判断是否超过阈值。当超过阈值时,则对格网加密采样,然后对较密的格网进行同样的判断处理,直至不再超限或达到预先给定的加密次数(或最小格网间隔),然后再对其它格网进行同样的处理。  图9-12:渐进采样 4)选择采样 为了准确地反映地形,可根据地形特征进行选择采样,例如沿山脊线、山谷线、断裂线进行采集以及离散碎部点(如山顶)的采集。这种方法获取的数据尤其适合于不规则三角网DEM的建立。 5)混合采样 为了同步考虑采样的效率与合理性,可将规则采样(包括渐进采样)与选择性采样结合进行混合采样,即在规则采样的基础上再进行沿特征线、点采样。为了区别一般的数据点和特征点,应当给不同的点以不同的特征码,以便处理时可按不同的方式进行。利用混合采样可建立附加地形特征的规则格网DEM,也可建立附加特征的不规则三角网DEM。 6)自动化DEM数据采集 上述方法均是基于解析测图仪或机助制图系统利用半自动的方法进行DEM数据采集,现在已经可以利用自动化测图系统进行完全自动化的DEM数据采集。此时可按像片上的规则格网利用数字影像匹配进行数据采集。 最后数字摄影测量获取的DEM数据点都要按一定插值方法转成规则格网DEM或规则三角网DEM格式数据。 4.3 DEM数据质量控制 数据采集是DEM的关键问题,研究结果表明,任何一种DEM内插方法,均不能弥补取样不当所造成的信息损失。数据点太稀会降低DEM的精度;数据点过密,又会增大数据量、处理的工作量和不必要的存储量。这需要在DEM数据采集之前,按照所需的精度要求确定合理的取样密度,或者在DEM数据采集过程中根据地形复杂程度动态调整采样点密度。 由于很多DEM数据来源于地形图,所以DEM的精度决不会高于原始的地形图。例如U.S.G.S.用数字化的等高线图,通过线性插值生产的最精确的DEM的最大均方误差(RMSE)为等高线间距的一半,最大误差不大于两个等高线间距。通常用某种数学拟合曲面生产的DEM,往往存在未知的精度问题,即使是正式出版的地形图同样存在某种误差,所以在生产和使用DEM时应该注意到它的误差类型。 DEM的数据质量可以参考美国U.S.G.S.的分级标准,共分为三级:第一级,最大绝对垂直误差50米、最大相对垂直误差21米,绝大多数7.5分幅产品属于第一级;第二级DEM数据对误差进行了平滑和修改处理,数字化等高线插值生产的DEM属于第二级,最大误差为两个等间距,最大均方误差为半个等间距;第三级DEM数据最大误差为一个等间距,最大均方误差为三分之一个等间距。 5.DEM的分析和应用 5.1格网DEM应用 5.1.1地形曲面拟合 DEM最基础的应用是求DEM范围内任意点的高程,在此基础上进行地形属性分析。由于已知有限个格网点的高程,可以利用这些格网点高程拟合一个地形曲面,推求区域内任意点的高程。曲面拟合方法可以看作是一个已知规则格网点数据进行空间插值的特例,距离倒数加权平均方法,克里金插值方法,样条函数等插值方法均可采用。 5.1.2立体透视图 从数字高程模型绘制透视立体图是DEM的一个极其重要的应用。透视立体图能更好地反映地形的立体形态,非常直观。与采用等高线表示地形形态相比有其自身独特的优点,更接近人们的直观视觉。特别是随着计算机图形处理工作的增强以及屏幕显示系统的发展,使立体图形的制作具有更大的灵活性,人们可以根据不同的需要,对于同一个地形形态作各种不同的立体显示。例如局部放大,改变高程值Z的放大倍率以夸大立体形态;改变视点的位置以便从不同的角度进行观察,甚至可以使立体图形转动,使人们更好地研究地形的空间形态。 从一个空间三维的立体的数字高程模型到一个平面的二维透视图,其本质就是一个透视变换。将“视点”看作为“摄影中心”,可以直接应用共线方程从物点(X,Y,Z)计算“像点”坐标(X,Y)。透视图中的另一个问题是“消隐”的问题,即处理前景挡后景的问题。 调整视点、视角等各个参数值,就可从不同方位、不同距离绘制形态各不相同的透视图制作动画。计算机速度充分高时,就可实时地产生动画DTM透视图。 5.1.3通视分析 通视分析有着广泛的应用背景。典型的例子是观察哨所的设定,显然观察哨的位置应该设在能监视某一感兴趣的区域,视线不能被地形挡住。这就是通视分析中典型的点对区域的通视问题。与此类似的问题还有森林中火灾监测点的设定,无线发射塔的设定等。有时还可能对不可见区域进行分析,如低空侦察飞机在飞行时,要尽可能躲避敌方雷达的捕捉,飞行显然要选择雷达盲区飞行。通视问题可以分为五类[Lee,J.(1991)]: 1)已知一个或一组观察点,找出某一地形的可见区域。 2)欲观察到某一区域的全部地形表面,计算最少观察点数量。 3)在观察点数量一定的前提下,计算能获得的最大观察区域。 4)以最小代价建造观察塔,要求全部区域可见。 5)在给定建造代价的前提下,求最大可见区。 根据问题输出维数的不同,通视可分为点的通视,线的通视和面的通视。点的通视是指计算视点与待判定点之间的可见性问题;线的通视是指已知视点,计算视点的视野问题;区域的通视是指已知视点,计算视点能可视的地形表面区域集合的问题。基于格网DEM模型与基于TIN模型的DEM计算通视的方法差异很大。  图9-13:通视分析,图上灰色区域为不可见区域 1)点对点通视 基于格网DEM的通视问题,为了简化问题,可以将格网点作为计算单位。这样点对点的通视问题简化为离散空间直线与某一地形剖面线的相交问题。(图9-13) 已知视点V的坐标为(x0,y0,z0),以及P点的坐标(x1,y1,z1)。DEM为二维数组Z[M][N],则V为(m0,n0,Z[m0,n0]),P为(m1,n1,Z[m1,n1])。计算过程如下: (1.1)使用Bresenham直线算法,生成V到P的投影直线点集{x , y},K=||{x , y}||, 并得到直线点集{x , y}对应的高程数据{Z[k], ( k=1,...K-1 )},这样形成V到P的DEM剖面曲线。 (1.2)以V到P的投影直线为X轴,V的投影点为原点,求出视线在X-Z坐标系的直线方程:  (0<k<K) K为V到P投影直线上离散点数量。 (1.3)比较数组H[k]与数组Z[k]中对应元素的值,如果  存在Z[k]>H[k],则V与P不可见,否则可见。 2)点对线通视 点对线的通视,实际上就是求点的视野。应该注意的是,对于视野线之外的任何一个地形表面上的点都是不可见的,但在视野线内的点有可能可见,也可能不可见。基于格网DEM点对线的通视算法如下: (2.1)设P点为一沿着DEM数据边缘顺时针移动的点,与计算点对点的通视相仿,求出视点到P点投影直线上点集{x, y},并求出相应的地形剖面{x, y, Z(x, y)}。 (2.2)计算视点至每个与Z轴的夹角:  (2.3)求得。对应的点就为视点视野线的一个点。 (2.4)移动P点,重复以上过程,直至P点回到初始位置,算法结束。 3)点对区域通视 点对区域的通视算法是点对点算法的扩展。与点到线通视问题相同,P点沿数据边缘顺时针移动。逐点检查视点至P点的直线上的点是否通视。一个改进的算法思想是,视点到P点的视线遮挡点,最有可能是地形剖面线上高程最大的点。因此,可以将剖面线上的点按高程值进行排序,按降序依次检查排序后每个点是否通视,只要有一个点不满足通视条件,其余点不再检查。点对区域的通视实质仍是点对点的通视,只是增加了排序过程。 5.1.4流域特征地貌提取与地形自动分割 地形因素是影响流域地貌、水文、生物等过程的重要因子,地形属性的空间分布特征一直是人们用于描述这些空间过程变化的重要指标。高精度DEM数据和高分辨率、高光谱、多周期的遥感影像,为人们定量描述流域空间变化过程提供了日益丰富的数据源,而且人们对流域地貌、水文和生物等过程空间变化机理理解的不断加深,可以说人类已经进入了一个“空间模拟”的时代。基于DEM数据自动提取流域地貌特征和进行流域地形自动分割是进行流域空间模拟的基础技术。 基于格网DEM自动提取流域特征地貌和进行地形自动分割技术主要包括两个方面:1)流域地貌形态结构定义,定义能反映流域结构的特征地貌,建立格网DEM对应的微地貌特征。2)特征地貌自动提取和地形自动分割算法。格网DEM数据是一些离散的高程点数据,每个数据本身不能反映实际地表的复杂性。为了从格网DEM数据中得到流域地貌形态结构,必须采用一个清晰的流域地貌结构模型,然后针对该结构模型设计自动提取算法。 1)流域结构定义 可以使用一个具有根的树状图来描述流域结构[Shreve],目前绝大多数算法都沿用这一描述方法。在此结构中主要包括三个部分,即结点集、界线集和汇流区集。如图9-14所示。  图9-14:流域结构 (a.内部沟谷段 b. 外部沟谷段 c. 内部汇流区 d. 外部汇流区 e. 沟谷结点 f. 汇流源点 g. 分水线段 h. 分水线源点) 其具体内容包括几个概念: 1)沟谷线段:一条具有两侧汇流区的线段; 2)分水线段:一条具有两侧分水区的线段; 3)沟谷结点:两条或两条以上沟谷线的交点; 4)分水线结点:两条或两条以上分水线的交点; 5)沟谷源点:沟谷的上游起点; 6)分水线源点:分水线与流域边界的交点; 7)内部汇流区:汇流区边界不包含流域部分边界的汇流区; 8)外部汇流区:汇流区边界包括部分流域边界的汇流区。 沟谷结点和沟谷源点共同组成沟谷结点集,所有的沟谷段组成沟谷段集,形成沟谷网络;所有的分水线组成分水线段集,形成分水线网络。沟谷段集和分水线段集共同把流域分割成一个汇流区集。 沟谷段是最小的沟谷单位,沟谷段可以分为内部沟谷段和外部沟谷段。内部沟谷段连接两个沟谷结点,外部沟谷段连接一个沟谷结点和沟谷源点。同样,分水线段是最小的分水线单位,也分为内部分水线段和外部分水线段。内部分水线段连接两个分水线结点,外部分水线段连接一个分水线结点和一个分水线源点。 汇流网络中每一沟谷段都有一个汇流区域,这些区域由分水线集控制。外部沟谷段有一个外部汇流区,内部沟谷段有两个内部汇流区,分布在内部沟谷段两侧。整个流域被分割成一个个子流域,每个子流域如同树状图上的一片“叶子”。 2)流域特征地貌自动提取和地形自动分割 特征地貌定义与提取:根据网格点高程与周围高程值的关系,将格网点分为坡地、洼地、分水线、谷地、阶地和鞍部等几类。先计算中心点与八邻点的高程差,然后对高程差进行排序,再根据高程差序列的特性给中心点格网赋一个特征编码。然后通过一系列特征码的组合特征,用模式识别的方法,将格网点划分到已知的特征地貌类别。 山脊线和山谷线提取:山脊线和山谷线的自动探测实际上是凹点和凸点的自动搜索。较为简单的算子是2*2的局部算子。将算子在DEM数据中滑动,比较每个格网点与行和列上相邻格网点的高程,标出其中高程最小(探测山谷线)或高程最大(探测山脊线)的格网点。对整个DEM数据计算一遍后,剩下的未标记格网点就是山脊线或山谷线上的格网点。 流域地形自动分割:流域地形自动分割的目标是将整个流域分割成一个个子汇流区。大多数算法是利用3*3窗口计算流向和基于“溢流跟踪”算法确定汇流网络。算法过程如下: (2.1)格网点流向定义 采用3×3窗口按8方向搜索计算最大坡向为各网格点的流向。分别为8方向赋不同的代码,如右图所示。每个格网有一个从1到9的数值,代表它流向相邻象元的方向,如该象元为凹点,则其值为5(图9-15)。  图9-15:格网水流方向定义 几种例外情况的处理: A.如果一个网格点的最大坡向格网点与之具有相同的高程值,且之前没有其它格网点流向这个相邻格网,则强制流向它。如果还有另外的格网点流向这个相邻格网,则当前格网点为凹点。 B.当两个或多个相邻格网点的最大坡向相等时,先比较各自相邻格网点坡向,如果仍没解决,继续比较相对格网点的坡向,决定赋一个流向。 C.对于具有相同高程值的区域则扩大搜索窗口半径,用7×7窗口,如果需要还可以使用更大窗口。 D.在DEM数据的外围加一圈高程值为0的格网点,强制其最大坡向流向研究区之外。 当所有的格网点处理完毕后,生成一个编码1—9的流向图。 (2.2)凹点处理算法 由于凹点的存在,有一些流路不会流向流域出口,而是终止于凹点,所以在进行流域自动分割之前,还要对凹点进行处理。流域中凹点既可能是真实的凹点,也可能是由于插值误差造成的,所以不能使用简单的滤波或平滑函数,将凹点全部去除,目的是将凹点造成的断路连接到主沟谷网络。 搜索所有凹点的相邻最低点(有时可能有多个高程相等的最低点),作为凹点的溢出点,以溢出点为起点继续搜索比它的高程低或相等的邻点(已经搜索的点忽略),判断是否有比原凹点更低的格网点,如果没有则以该凹点的溢出点为起点,重复上述搜索过程;如果搜索到比原凹点低的格网点,将凹点和最低邻点的方向倒转。如图9-15所示:高程为48的点为一个凹点,搜索到高程最低的邻点为49,以它为起点继续搜索,找到高程点49,仍比原凹点高程高,则继续搜索,又找到另一个高程点49,再找到高程47的点,比原凹点高程低,结束搜索,按搜索方向修改流向,如图9-16中实线箭头方向所示。  图9-16:凹点处理 (2.3)提取汇流网络 根据修改后的流向图,给定一个点,所有流向它的格网点的总和就是该点的汇流区。计算方法是给定一个点,搜索8邻点,记录所有流向它的格网点的位置,然后再以找到的格网点为基点继续搜索记录流向它的格网点,直到没有新的汇流点为止,所有记录的格网点构成该点的汇流区。 通常沟谷的汇流区面积大于其它格网点的汇流区面积,可以通过设定一个阈值,将汇流区面积大于此阈值的格网点,标识为沟谷点。很明显,不同的阈值得到的沟谷网络的复杂性是不同的,这种方法虽然为确定沟谷网络的复杂性提供了灵活性,但也使得沟谷网络的确定具有太大的随意性。 得到沟谷网络后,可以对沟谷网络进行编码。首先对沟谷结点编码。从流域出口开始搜索遍历整个汇流网络,对每个沟谷段的上下游结点进行编码标识,标识值是沟谷段的编码值,并记录下这些结点的位置。其次,把沟谷段中的每个格网点标识为沟谷段的编码值。第三,根据沟谷段上游结点的类型判定沟谷段是内部沟谷段还是外部沟谷段。 (2.4)提取分水网络 递归搜索沟谷段中的每个格网点的汇流区,将汇流区的格网点赋为该沟谷段的标识值,形成各沟谷段的子汇流区。然后进行边界跟踪,提取子汇流区的边界线为分水线,得到分水线网络。最后,对沟谷网络和分水线网络及子汇流区进行拓扑编码,以完成流域地形的自动分割。 5.1.5 DEM计算地形属性 由DEM派生的地形属性数据可以分为单要素属性和复合属性二种。前者可由高程数据直接计算得到,如坡度因子,坡向。后者是由几个单要素属性按一定关系组合成的复合指标,用于描述某种过程的空间变化,这种组合关系通常是经验关系,也可以使用简化的自然过程机理模型。 单要素地形属性通常可以很容易地使用计算机程序计算得到,包括: 1)坡度、坡向 坡度定义为水平面与局部地表之间的正切值。它包含两个成分:斜度——高度变化的最大值比率(常称为坡度);坡向——变化比率最大值的方向。地貌分析还可能用到二阶差分凹率和凸率。比较通用的度量方法是:斜度用百分比度量,坡向按从正北方向起算的角度测量,凸度按单位距离内斜度的度数测量。 坡度和坡向的计算通常使用3*3窗口,窗口在DEM高程矩阵中连续移动后,完成整幅图的计算。坡度的计算如下:  坡向计算如下:   为了提高计算速度和精度,GIS通常使用二阶差分计算坡度和坡向,最简单的有限二阶差分法是按下式计算点i,j在x方向上的斜度:  式中是格网间距(沿对角线时应乘以)。这种方法计算八各方向的斜度,运算速度也快得多。但地面高程得局部误差将引起严重得坡度计算误差,可以用数字分析方法来得到更好得结果,用数字分析方法计算东西方向得坡度公式如下:  同理可以写出其它方向的坡度计算公式。 2)面积、体积 (2.1)剖面积 根据工程设计的线路,可计算其与DEM各格网边交点Pi(Xi,Yi,Zi),则线路剖面积为  其中n为交点数;Di,i+1为Pi与P i+1之距离。同理可计算任意横断面及其面积。 (2.2)体积 DEM体积由四棱柱(无特征的格网)与三棱柱体积进行累加得到,四棱柱体上表面用抛物双曲面拟合,三棱柱体上表面用斜平面拟合,下表面均为水平面或参考平面,计算公式分别为  其中S3与S4分别是三棱柱与四棱柱的底面积。 根据两个DEM可计算工程中的挖方、填方及土壤流失量。 3)表面积 对于含有特征的格网,将其分解成三角形,对于无特征的格网,可由4个角点的高程取平均即中心点高程,然后将格网分成4个三角形。由每一三角形的三个角点坐标(xi,yi,zi)计算出通过该三个顶点的斜面内三角形的面积,最后累加就得到了实地的表面积。 5.2三角网DEM分析应用 5.2.1三角网内插 在建立TIN后,可以由TIN解求该区域内任意一点的高程。TIN的内插与矩形格网的内插有不同的特点,其用于内插的点的检索比网格的检索要复杂。一般情况下仅用线性内插,即三角形三点确定的斜平面作为地表面,因而仅能保证地面连续而不能保证光滑。进行三角网内插,一般要经过以下几个步骤: 1)格网点的检索 给定一点的平面坐标P(x,y),要基于TIN内插该点的高程Z,首先要确定点P落在TIN的哪个三角形中。一般的做法是通过计算距离,得到据P点最近的点,设为Q1。然后就要确定P所在的三角形。依次取出Q1为顶点的三角形,判断P是否位于该三角形内。可利用P是否与该三角形每一顶点均在该顶点所对边的同侧(点的坐标分别代人该边直线方程所得的值符号相同)加以判断。若P不在以Q1为顶点的任意一个三角形中,则取离P次最近的格网点,重复上述处理,直至取出P所在的三角形,即检索到用于内插P点高程的三个格网点。 2)高程内插 若P(x,y)所在的三角形为ΔQ1Q2Q3,三顶点坐标为(x1,y1,z1),(x2,y2,z2)与(x3,y3,z3),则由Q1,Q2与Q3确定的平面方程为  或  令  则P点高程为  5.2.2等高线追踪 基于TIN绘制等高线直接利用原始观测数据,避免了DTM内插的精度损失,因而等高线精度较高;对高程注记点附近的较短封闭等高线也能绘制;绘制的等高线分布在采样区域内而并不要求采样区域有规则四边形边界。而同一高程的等高线只穿过一个三角形最多一次,因而程序设计也较简单。但是,由于TIN的存贮结构不同,等高线的具体跟踪算法跟踪也有所不同。 基于三角形搜索的等高线绘制算法如下: 对于记录了三角形表的TIN,按记录的三角形顺序搜索。其基本过程如下: 1)对给定的等高线高程h,与所有网点高程zi(i=1,2,…,n),进行比较,若zi=h,则将zi加上(或减)一个微小正数ε> 0(如ε=10-4),以使程序设计简单而又不影响等高线的精度。 2)设立三角形标志数组,其初始值为零,每一元素与一个三角形对应,凡处理过的三角形将标志置为1,以后不再处理,直至等高线高程改变。 3)按顺序判断每一个三角形的三边中的两条边是否有等高线穿过。若三角形一边的两端点为P1(x1,y1,z1),P2(x2,y2,z2)则 (z1-h)(z2-h)<0表明该边有等高线点; (z1-h)(z2-h)>0表明该边无等高线点。 直至搜索到等高线与网边的第一个交点,称该点为搜索起点,也是当前三角形的等高线进入边、线性内插该点的平面坐标(x,y):  4)搜索该等高线在该三角形的离去边,也就是相邻三角形的进人边,并内插其平面坐标。搜索与内插方法与上面的搜索起点相同,不同的只是仅对该三角形的另两边作处理。 5)进入相邻三角形,重复第(4)步,直至离去边没有相邻三角形(此时等高线为开曲线)或相邻三角形即搜索起点所在的三角形(此时等高线为闭曲线)时为止。 6)对于开曲线,将已搜索到的等高线点顺序倒过来,并回到搜索起点向另一方向搜索,直至到达边界(即离去边没有相邻三角形)。 7)当一条等高线全部跟踪完后,将其光滑输出,方法与前面所述矩形格网等高线的绘制相同。然后继续三角形的搜索,直至全部三角形处理完,再改变等高线高程,重复以上过程,直到完成全部等高线的绘制为止(图9-17), 图9-17描述了利用三角网生成数值为50的等高线的过程。  图9-17:利用TIN生成等高线