两个坐标之间的DEM上的表面距离


11

给定数字高程模型(DEM)上的两个坐标,假设直线路线,如何计算两个位置之间的实际距离?更改DEM的分辨率将如何影响结果?

Answers:


10

如果您的GIS没有内置此功能,但是可以执行一些基本的网格操作(“地图代数”),则仍然有解决方案。

计算归结为找到路线在每个点的坡度。如果您确切地知道这一点,并且没有离散误差,则可以对斜率的割线进行积分。在网格上,通过获取路径所截取的单元的割线的平均值并将该平均值乘以路径的长度来估算积分。(在讲地图代数的情况下,这是“区域平均值”乘以路径长度。)

路线的坡度与DEM的坡度不同!这完全取决于路径在表面上的切割方式。因此,您需要有关曲面“方向”的完整信息,这些信息可以用触角,倾斜,坡度和长宽比表示,也可以通过单位法向矢量(垂直于曲面的3D 矢量场)来描述。最可靠的方法是将问题简化为知道法向矢量场的问题。这意味着您在每个像元上都有三倍的数字-当然代表了三个单独的网格-我将其称为(Nx,Ny,Nz)。路线的方向(在平面中)可以表示为单位矢量(x,y,t),其中(x,y)在地图上给出其方向。t的值是垂直方向的“上升”:路线必须上升才能停留在表面的速率。因此,由于路线的2D速度(即“奔跑”)等于Sqrt(x ^ 2 + y ^ 2),因此斜率由下式给出:

(1)tan(斜率)=上升/运行= t / Sqrt(x ^ 2 + y ^ 2)

在计算中,t将是一个网格,但是分母Sqrt(x ^ 2 + y ^ 2)只是一个数字。如果使用下面的公式(4)计算它,则它等于1,因此您可以忽略它:t是路线坡度网格的切线,而sec(slope)= sqrt(1 + t ^ 2)将是您计算其区域平均值的网格。

很容易找到t。根据定义,方向向量(x,y,t)垂直于法线向量。这表示

0 = x * Nx + y * Ny + t * Nz

(2)t =-(x * Nx + y * Ny)/ Nz

在计算中,Nx,Ny和Nz是网格,而x和y是数字。因此,t是预期的网格。(除法不会有任何麻烦,因为Nz = 0不可能:那将是一个完美的垂直悬崖,无法在DEM上表示出来。)

那么:如何找到法线向量(Nx,Ny,Nz)和方向向量(x,y)?通常,GIS将根据DEM计算坡度和坡向网格。将每个角度表示为一个角度。这些基本上是单位法向矢量的球坐标。对于北部以北的地区,单位法线是通过通常的球坐标到笛卡尔坐标转换而获得的,

(3)(Nx,Ny,Nz)=(sin(s)* sin(a),sin(s)* cos(a),cos(s))

在此计算中,s和a是网格,因此它描述了三个单独的地图代数表达式,以创建三个网格Nx,Ny和Nz。

作为检查,请注意,当斜率为零(s = 0)时,法线向量为(0,0,1),并应指向正上方。当长宽比为零时,法向矢量为(0,sin(s),cos(s)),显然指向北(y方向)并从垂直方向倾斜s角度,这意味着表面从水平线的角度为s:那的确是它的斜率。

最后,使路线的方位角为b(北向以恒定角度)。它的方向向量是

(4)方位角=(x,y)=(sin(b),cos(b))。

请注意,方位角是一对数字,而不是一对网格,因为它描述了路线的方向。


随着DEM分辨率的增加,您可以观察到斜率更多的局部变化,从而导致估计的斜率增加,如@johanvdw所述。我已经通过依次粗化高分辨率DEM和比较从不同来源获得的一个区域的DEM来研究这种现象。 我发现在高坡度地区,坡度估算值的差异可能很大。这些将转化为陆上路线长度估算值的实质性差异。否则,在统一的低坡度区域中,差异可能不会产生任何影响。

评估分辨率对DEM效果的一种方法是进行类似的研究。花费很少的精力。例如,使用DEM估算路线的陆上长度,然后在将该DEM汇总为2 x 2块(粗化2倍)后重新估算该长度。如果两个估计之间的差异不大,则应该没问题;如果差异很重要,那么可能值得为您的工作获得更高分辨率的DEM。(有很多更复杂的方法可以通过利用您拥有的DEM来改善斜率和长度估计,但是在这里描述它们将花费我太多的时间。)


7

SAGA GIS为此提供了一个模块:交互式配置文件

http://www.saga-gis.org/saga_modules_doc/ta_profiles/index.html

结果点将包含距离和陆上距离。如果DEM的分辨率较粗,您的陆地距离将始终较低(除非您有奇怪的边界条件),但实际上,这种差异很可能并不重要。如果该区域比较平坦,那么陆上距离和法线距离也几乎相同:如果沿您的直线的两点之间的坡度为20%,则陆上距离将仅比法线距离高2%(sqrt( 1 ^ 2 + 0.2 ^ 2)= 1.019)。


上面的链接似乎已损坏,但此处提供了有关如何在SAGA中创建交互式地形剖面的说明。
cengel
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.