DEM 构建概述

DEM 构建

通常用 DEM 表达地形特征。DEM(Digital Elevation Model,数字高程模型)主要用于描述一个区域的地貌形态的空间分布情况,同时通过高程测量点(或从等高线中进行采样提取高程点)进行内插或模拟计算获得。SuperMap 提供的地形构建功能通过点或者线数据插值生成 DEM 数据,结果为一个栅格数据集。

应用程序提供了三种方式实现地形的构建:

  1. 通过点数据(高程点)生成 DEM,实现思路与插值算法相似。
  2. 通过线数据(等高线)生成 DEM,可以强化一些地形特征,如山脊线、山谷线等。
  3. 通过点数据(高程点)和线数据(等高线)联合构建,由于加入了特征点高程信息,如山顶、洼地、山脊点、山谷点等,此种方式生成的 DEM 更具有立体感。

实际上,在用点数据进行构建时,应用程序会从线对象中提取点,再对提取的点数据进行内插构建地形。

构建地形时,需要很好的理解以下概念,帮助用户构建更理想的地形模型数据。

  • 源数据集和高程字段:源数据集是指用于构建地形的一个或者多个点、线数据集,也可以由点线联合构建。分别对应了前面提到的三种构建地形的方式。不管采用何种类型的源数据集,都必须包含一个高程字段,用于提供地形特征信息。
  • 插值类型:应用程序提供了三种插值方式,不规则三角网(TIN)、距离反比权重插值法(IDW)和克吕金插值法(Kriging)。

    • IDW 通过计算附近区域离散点群的平均值来估算单元格的值,是一种简单有效的数据插值方法,运算速度较快。
    • TIN 需要先将给定的线数据集生成一个 TIN 模型,然后根据给定的极值点信息(可选)以及湖信息(可选)生成地形。TIN 模型能够较好地反映地形特征,但是数据结果复杂,适用于小区域地形的计算。
    • Kriging 与普通克吕金插值方法思路一样,数据结构简单,非常适用于大区域宏观地形的构建。
  • 重复点处理方式

由于各种原因,可能导致用于构建地形的源数据有重复点(线对象的节点)的情况出现,如果重复点的高程值不同,就需要采取一种方式,确定构建地形时使用的高程值。应用程序提供了两类处理方式,第一种是使用其中一个点的高程值,将之后出现的与该点位置重叠的点去除;另外一种采用重复点的所有高程值的统计值,如平均值、最大(小)值、众数、中位数等。

  • 重采样距离

该参数用来对线数据进行重采样,以过滤掉一些比较密集的节点,然后再生成 TIN 模型,可以提供生成速度。注意:重采样距离参数仅在源数据中包含线数据集且插值方法为不规则三角网(TIN)时可用。默认重采样距离为0.0,即不进行重采样。关于线对象的重采样和采样距离的介绍请参见:线状对象重采样说明

  • 高程缩放比例

用来设置高程被拉伸的程度。数值越大表示拉伸越大,地形越夸张。当系数为1表示不拉伸。数值单位为倍,即对高程相对于原始高度拉伸的倍数。

  • 湖泊面数据和高程字段

湖面数据集存储了湖泊信息,每一个面对象代表了一个湖泊。湖面数据集通过一个字段来标识湖面的高程值,此高程值将作为结果数据集中湖面数据对应位置的栅格值。选择的面数据不一定代表湖面数据,可以是一块洼地或者冰川覆盖区等,一切可以作为障碍区,需要单独处理的面数据均可。

  • 范围数据:范围数据为二维面数据,应用程序根据边界对象的范围确定生成的地形数据的地理范围。设置边界数据,可以帮助我们提取感兴趣区域的地形,或者去除一些不需要的地区信息,如可以将某地行政区划作为裁剪数据集,从而提取该地区的地形数据。边界数据有两种使用方式,即通过设置裁剪数据集或擦除数据集确定生成的地形的边界范围。

    • 若指定了裁剪数据集,在生成地形时,应用程序仅对该数据集中存储的面对象覆盖区域内的像元生成,区域外的部分将赋予无值。
    • 若指定了擦除数据集,在生成地形时,应用程序对该数据集中存储的每个面对象覆盖区域内的像元赋予无值。注意:擦除数据集的设置仅在插值类型为不规则三角网(TIN)时有效。
    • 如果没有指定裁剪数据或擦除数据,生成的地形数据的范围为源数据集范围的并集。
  • 结果数据

需要为生成的地形结果设置以下参数,包括结果保存的数据源、结果数据集名称、编码方式、像素格式、分辨率等。值得一提的是,在确定了地形的分辨率以后,应用程序会自动计算结果数据的行数、列数,并对数据集的大小进行估算,单位为兆(MB)。

DEM 挖湖

在实际的地形地貌中,地形不光是除了高低起伏,可能还存在像湖泊、河流、水库、洼地、冰川等对象。在构建过程中,通过指定类似于湖泊这样的面数据,如果这类面数据中存储了高程信息,在构建地形过程中可以添加这些对象的信息,保证构建的地形更贴近实际情况。

应用程序提供了两种方式帮助用户实现挖湖功能,这两种方式的区别在于湖泊高程值的指定方式不同:

  • 直接指定高程数值进行挖湖,即修改湖泊面数据区域范围内的对应地形数据的高程为用户指定的高程值。
  • 根据指定的高程字段进行挖湖,即修改面数据集区域范围内的对应地形数据的高程值为指定字段的值。

如下图所示,是 DEM 数据挖湖的示意图:

lake1