多语言展示
当前在线:460今日阅读:60今日分享:41

ArcGIS中地形转栅格的工作原理

插值过程旨在利用常用输入数据类型和高程表面的已知特征。该方法将采用迭代有限差分插值技术。它经过优化,因此具有局部插值方法(例如,反距离权重 (IDW) 插值)的计算效率,同时又不会牺牲全局插值方法(例如,克里金法和样条函数法)的表面连续性。实际上,该方法属于离散化的薄板样条函数法 (Wahba, 1990),其粗糙度惩罚系数经过修改,从而使经过拟合后的 DEM 能够还原真实的地形突变,例如河流、山脊和悬崖。
工具/原料

ArcGIS

方法/步骤
1

地形转栅格工具属于一种插值方法,专门用于创建符合真实地表的数字高程模型 (DEM)。该方法基于由 Michael Hutchinson(1988、1989、1996、2000、2011)开发的 ANUDEM 程序。有关 ANUDEM 在整个大陆范围的 DEM 生产的应用,请参阅 Hutchinson and Dowling (1991) 以及 ANU Fenner School of Environment and Society and Geoscience Australia (2008)。Hutchinson and Gallant (2000) 和 Hutchinson (2008) 对 DEM 在环境建模中的应用进行了讨论。Hutchinson et al 对 ANUDEM 的后续开发进行了讨论。(2009, 2011). ArcGIS 中使用的 ANUDEM 的当前版本为 5.3。  在施加约束的同时,地形转栅格会为栅格内插高程值,从而确保:  地形结构连续;  准确呈现输入等值线数据中的山脊和河流;  因此,它是唯一专门用于智能地处理等值线输入的 ArcGIS 插值器。  通过文件实现地形转栅格工具在多次执行地形转栅格工具的情况下非常有用,因为更改参数文件中的单个条目然后重新运行工具通常要比每次都重新填充工具对话框方便。

2

插值过程    插值过程旨在利用常用输入数据类型和高程表面的已知特征。该方法将采用迭代有限差分插值技术。它经过优化,因此具有局部插值方法(例如,反距离权重 (IDW) 插值)的计算效率,同时又不会牺牲全局插值方法(例如,克里金法和样条函数法)的表面连续性。实际上,该方法属于离散化的薄板样条函数法 (Wahba, 1990),其粗糙度惩罚系数经过修改,从而使经过拟合后的 DEM 能够还原真实的地形突变,例如河流、山脊和悬崖。    水是决定多数地形大致形状的主要侵蚀力。因此,大部分地形都包含很多山顶(局部最大值)但汇却很少(局部最小值),从而形成一种连续的地形样式。地形转栅格将利用有关表面的这方面知识对插值过程施加约束,从而使地形结构连续并准确呈现山脊和河流。施加的该地形条件约束有助于通过较少的输入数据生成更精确的表面。输入数据的数量所能达到的数量级将小于使用数字化等值线充分描述表面时通常所需的数量级,从而使获得可靠 DEM 的成本进一步降至最低。全局地形条件约束实际上也消除了为移除生成表面中伪汇而进行编辑或后处理的需要。    该程序在移除汇点时表现得比较谨慎,并且在与输入高程数据可能会产生矛盾的位置并不会施加地形条件约束。此类位置通常以汇的形式显示在诊断文件中。通过此信息可校正数据误差,尤其适合处理大型数据集。    地形强化过程    地形强化过程的目的是将输出 DEM 中尚未识别为输入汇要素数据集中汇的所有汇点移除。该程序运行的前提假设是所有未识别的汇都属于错误,因为天然景观中汇较不常见 (Goodchild and Mark, 1987)。    地形强化算法尝试通过修改 DEM 来清除伪汇,从而利用每个伪汇周围水域内的最低凹谷点推断出地形线。该算法并不会尝试清除通过“汇”功能得到的真实汇。由于汇点的清除受到高程容差的限制,因此尝试清除伪汇时该程序将非常谨慎。也就是说,该程序不会清除由于大于容差 1 的值而与输入高程数据相矛盾的伪汇。    地形强化的功能还可以通过结合河流线数据而得到补充。这在需要更准确地安置河流时十分有用。可通过允许每个像元拥有最多两个的下游方向对河流的支流进行建模。    如果关闭地形强化,则汇点清除过程将被忽略。如果您拥有除高程之外其他内容(例如温度)的等值线数据并要为这些数据创建表面,则关闭地形强化十分有用。    等值线数据的使用    最初,使用等值线是存储和表示高程信息的最常见方法。遗憾的是,该方法也最难正确应用于各种常规插值法。其缺点就在于等值线之间的信息欠采样,特别是在地形较低的区域。    插值过程初期,地形转栅格将使用等值线中固有的信息来构建初始的概化地形模型。这是通过标识各等值线上的局部最大曲率点实现的。然后,使用初始的高程格网(Hutchinson,1988)可得到一个与这些点相交的由曲线河流和山脊组成的网络。这些线的位置会随着 DEM 高程的反复更新而更新。该信息可用于确保输出 DEM 具有正确的水文地貌属性,还可用于验证输出 DEM 准确与否。    等值线数据点也可用于在每个像元中内插高程值。所有等值线数据都会被读取并概化。最多从每个像元内的等值线中读取 100 个数据点,并将平均高程值用作与等值线数据相交的每个像元的唯一高程数据点。对于每个 DEM 分辨率来说,每个像元仅使用一个关键点。因此,多条等值线与输出像元交叉的等值线密度是多余的。    确定好表面的大致形态后,等值线数据还将用于为各像元内插高程值。    使用等值线数据内插高程信息时,将读取并概化所有等值线数据。对于每个像元,将从这些等值线中最多读取 50 个数据点。在最终分辨率下,每个像元仅使用一个关键点。因此,多条等值线与输出像元交叉的等值线密度是多余的。    湖泊数据的使用    早期版本的地形转栅格中的湖泊面是用于将每个湖泊表面的高程设置为与湖泊紧邻的所有 DEM 值的最小高程的简单掩膜。湖边界算法已升级为能够自动确定与相连河流线和相邻高程值完全兼容的湖泊高度。    经修订后的湖边界方法也将每个湖边界视为具有未知高程的等值线,并会根据湖边界上的像元值以迭代方式估算该等值线的高程。同时会将每个湖边界的高程调整为与任意上游和下游湖泊的高程保持一致。每个湖边界高程还会调整为与相邻的DEM 值保持一致。会使湖泊外的像元值位于湖边界的高程之上,而使湖泊内的像元值位于湖边界的高程之下。    允许湖边界在湖内包括岛以及在岛内包括湖。正如湖边界面所确定,湖泊内的所有 DEM 值都会设置为湖边界上的 DEM的估算高度。    悬崖数据的使用    悬崖线允许数据悬崖线每侧的相邻像元值之间的连续中出现完全中断,正如将其编码到输出栅格中那样。悬崖线必须以有向直线形式提供,每条悬崖线的低侧位于左侧,高侧位于右侧。这样就可以移除位于悬崖错误侧的高程数据点(正如将其编码到栅格中那样),并且更好地相对于流线放置悬崖。    已经发现,在河流和悬崖上施加的微小位置偏移(将河流和悬崖包括在栅格中时)会导致这些数据之间发生伪相交。因此开发了一种自动化方法,可在放置河流和悬崖线时进行微小调整,从而最大限度地减少这种伪相交。    海岸线数据的使用    位于该面要素类所指定面以外的最终输出 DEM 中的像元会被设置为在内部确定的特殊值,该值小于用户所指定的最小高度限制。由此产生的结果为:可将一个完整的沿海面用作输入并将该面自动裁剪为处理范围。    多分辨率插值    该程序使用的是多分辨率插值方法,分辨率范围可从粗略栅格采用的分辨率到用户指定的精细分辨率。在每种分辨率下,将强制施加地形条件约束并执行插值,而剩余汇点的数量将记录在输出诊断文件中。

3

处理河流数据    地形转栅格工具要求河流网络数据中的所有弧线均指向下坡方向,并且网络中没有面(湖泊)。    河流数据应由树枝状的各条独立弧线组成,其中任意的平行河岸、湖泊面等都将通过交互式编辑进行清理。编辑网络之外的湖泊面时,应从蓄水区域的起始到末端放置单一弧线。如果已知或存在一个历史河床的轨迹,则该弧线应沿着此轨迹。如果已知湖泊的高程,则湖泊面及其高程可作为“等值线”输入数据。    要显示线各个部分的方向,可将符号系统更改为“终点处显示箭头”选项。这样,将使用显示线方向的箭头符号绘制线的各个部分。

4

创建和镶嵌相邻栅格    有时需要根据输入数据的相邻切片创建 DEM。如果输入要素从地图图幅系列中获得,或者由于内存限制而必须将输入数据分成若干部分进行处理,通常会发生这种情况。    插值过程使用周围区域中的输入数据来定义表面的形态和地形,然后内插输出值。但是,任一输出 DEM 边缘处的像元值都没有中心区域的值可靠,因为它们只能根据一半的信息进行插值。    因此要使对感兴趣区域边缘处的预测最准确,输入数据集的范围应大于感兴趣区域。像元间距参数提供了一种根据用户指定的距离修剪输出 DEM 边缘的方法。重叠区域的边缘至少应为 20 个像元宽。    如果要将多个输出 DEM 合并为单个栅格,输入数据应与相邻区域存在部分重叠。如果不存在重叠,合并后 DEM 的边缘可能会不平滑。多次内插中每次内插的输入数据集范围应比进行一次内插仅得到一个插值时的区域大,这样才能确保尽可能准确地预测边缘。    创建多个 DEM 后,最好使用镶嵌地理处理工具的“混合”选项或“平均值”选项将它们合并。该功能提供的选项可对重叠区域进行处理,从而使数据集之间实现平滑过渡。

5

评估输出  应对每个创建的表面进行评估,以确保提供给程序的数据和参数所呈现出表面逼真。评估输出表面质量的方法有很多种,具体取决于创建表面的可用输入类型。  最常见的评估方法是使用等值线工具根据新表面创建等值线,然后将这些等值线与输入等值线数据进行比较。新建等值线的间隔最好是原始等值线间隔的二分之一,这样才便于在等值线间检查结果。原始等值线和新建等值线叠在一起绘制将有助于识别插值误差。  另一种从视觉上进行比较的方法是将可选输出地形分布情况与已知河流和山脊进行比较。地形要素类中包含河流和山脊,它们将在地形强化过程中由程序生成。这些河流和山脊应与区域中已知的河流和山脊重合。如果将某河流要素类作为输入,则输出河流与输入河流应该可以几乎完全重叠,但输出可能经过略微概化。  评估所生成表面质量的一种常见方法是在插值过程中保留一定比例的输入数据。生成表面后,可以从生成的表面中减去这些已知点的高度,从而检查新表面与真实表面的接近程度。这些差异可用来计算表面的测量误差,例如均方根 (RMS) 误差。  地形转栅格提供了一套完整的步骤,用于评估拟合后的 DEM 的质量、优化 DEM 分辨率以及检测输入数据中的错误。  可选输出诊断文件可用来评估容差设置清除输入数据中的汇的有效程度。减小容差的值可能会造成程序在清除汇点时表现得更谨慎。  输出其余汇点要素类包含所有其余伪汇的位置。应对此要素类以及输出河流折线要素一同进行检查以查出所有输入地形数据中的错误。  输出残差点要素类包含所有大高程数据残差的位置,正如局部离散误差缩放所得一样。大比例缩放残差表示输入高程数据和河流线数据之间存在冲突。这可能也与不良的自动地形强化有关。这些冲突可以通过在首次检查和纠正现有输入数据中的错误后提供附加的流线和/或点高程数据来进行修复。未大比例缩放的残差通常表示存在输入高程误差。  输出等值线错误点要素类包含输出等值线上的点的位置,该等值线具有来自拟合后的 DEM 中的具有明显偏差的残差。误差值为 1 通常表示具有不同高程的等值线彼此相连处的点的位置,是等值线标注错误的明确指示。  输出河流和悬崖错误点要素类是一个表示河流线和悬崖线数据质量的重要指标,尤其是河流方向错误和悬崖方向错误,应始终对其进行检查。要素类具有下列代码:  数据河流线网络中的真回路。  以外栅格编码的河流网络中的回路。  通过连接湖泊的河流网络中的回路。  支流点。  悬崖上的河流(瀑布)。  表示从湖泊流出多条河流的点。  未使用代码。  悬崖旁高度与悬崖方向不一致的点。  未使用代码。  已移除圆形支流。  无流入河流的支流。  不同于出现数据河流线支流位置的输出像元中的栅格化支流。  处理边条件时出错 - 非常复杂的河流线数据的指示符。  输出河流折线要素类包含由地形转栅格施加的所有地形约束,正如基于输入河流线数据、河流线和山脊线所确定的一样,这些数据和线是基于通过自动地形强化获得的等值线数据和河流线推断而来的。可对这些内容进行检查以查出输入河流线中的位置错误,并对与输入河流线和自动化地形强化相关联的约束进行适当的一致性验证。每个衍生河流线的类型均被赋予了一个不同的代码。跨越悬崖线的河流线由短河流线表示,每个像元具有一个单独的代码。要素类也包括用于通过连接超过第二高程容差的河流线和湖泊来标记较大的源高程数据间隙的线。这些都是用于表示源高程数据错误的有用指标。拆线要素按如下方式编码:  不在悬崖上的输入河流线。  在悬崖上的输入河流线(瀑布)。  清除伪汇的地形强化。  从等值线拐角确定的河流线。  从等值线拐角确定的山脊线。  未使用代码。  数据河流线边条件。  未使用代码。  表示大型高程数据间隙的线。  等值线偏差  该插值算法中存在一个小偏差,该偏差将使输入等值线对等值线的输出表面产生较严重的影响。该偏差将使输出表面在穿过等值线时略微变扁。这可能会在计算输出表面的剖面曲率时产生令人误解的结果,但并不明显。

6

使用“地形转栅格”产生问题的原因  如果在运行地形转栅格时运到任何问题,都可以对以下几点内容进行检查以获得有关大多数常见问题的说明及解决方案。  没有足够的可用系统资源。处理期间,地形转栅格中使用的算法将尽可能多地在内存中保存信息。这样,点、等值线、汇、河流和湖泊数据便可同时访问。为了便于处理大型数据集,建议在运行该工具之前关闭不需要的应用程序以释放物理 RAM。磁盘上最好也具备足够的系统交换区空间。  等值线或点输入对于指定的输出像元大小可能过密。如果一个输出像元覆盖了多个输入等值线或点,则算法将无法为该像元确定一个值。要解决此问题,请尝试执行以下任一操作:  1、减小像元大小,然后在执行地形转栅格后重采样至较大的像元大小。  2、使用输出范围和像元间距对输入数据中各较小的组成部分进行栅格化。使用镶嵌工具将生成的各栅格组成部分进行组合。  3、将输入数据裁剪为多个重叠的部分,然后分别对每部分运行地形转栅格。使用镶嵌工具将生成的各栅格组成部分进行组合。  表面插值器的应用可能与输入数据集不一致。例如,如果有一个汇输入,其中所包含点的数量多于输出栅格中将生成像元的数量,则使用该工具将失败。经过密集采样的数据源(如激光雷达数据)可能存在类似的问题。在这种情况下,使用 NO_ENFORCE 选项可能有一定的帮助,但最好先正确了解插值器的工作原理,这样才能防止误用。

推荐信息