Matlab:为高程图上的点计算 horizon 的表观角度

Matlab: Calculate apparent angle of horizon for points on elevation map

我有一张山区的高程图(带有 z 值的大型二维数组)

我想知道我的高度图上某些点的所有罗盘方位的表观 horizon 角的高度。

为了说明,这个 website 有一些我想要的例子。

编辑: 我已经停止尝试寻找执行此操作的函数,现在正在编写自己的函数。

我的方法是从我的点径向绘制线,沿这些线插值高度,然后沿每条线取 max(z/r)

如果您知道某个函数已经执行此操作,请告诉我,如果不知道,希望我能尽快上传一个。

假设您有 3 个矩阵,X YZ 以及您的位置 (x,y,z),您可以计算

R = sqrt((X-x)**2 + (Y-y)**2)(发送丹尼尔...)

R = sqrt((X-x).^2 + (Y-y).^2)
Z = (Z-z)

即位置的距离和相对高度,所以

T = Z/R

是一个切线矩阵,它是从该位置到周围地形的视角的单调函数。

对于给定的方向,您可以找到网格上最近的点列表,其中有 Bresenham algorithm 的变化,最后在您的点列表中找到最高的 T 值。

最终,从不同方向的最大 T(切线)值列表中,您可以计算出您所在位置的视角。