从栅格中提取特定距离和高度差内的所有点


11

我有一个包含数以千万计的点的栅格,这些点都定义了X,Y和Z数据。我需要找出一种简单的方法来提取和创建新的栅格或矢量,该栅格或矢量的所有点之间的距离均为720 m(X,Y),彼此之间的高度差为120 m(Z)。

我对SQL和Python具有零知识。我一直在尝试在VBA上执行此操作,并提出了一些算法,但是处理时间不合理且不切实际。我确信必须有一种简单的GIS方法来完成此任务,但似乎找不到它。

我正在使用ArcMap。


我正在使用ArcMap。谢谢你的评论。我还将在原始问题中更改它:)。
user32882 2014年

您说水平720m,垂直120m,但从何而来?听起来好像您拥有某种点云,但是您可以从该云中的任何位置搜索完全满足您的条件的点。当然,您必须具有某种种子位置或您未提及的其他条件,例如最大化完全满足条件的点数?
Hornbydd 2014年

就像我说的那样,我试图“提取彼此相距720 m(X,Y)且彼此相距120 m高程(Z)的所有点”。没有“种子位置”,我正在扫描所有点。
user32882 2014年

我设想的最大挑战之一是如何描绘结果。可以得到这样的栅格结果,即0=没有720m距离和±120m高程的点,1=一个或多个720m距离和±120m高程的点,是否可以接受?或者,您是否需要计算符合标准的分数?
艾瑞卡(Erica)2014年

亲爱的埃里卡,首选是超出接受的。我不需要计算满足此条件的点数,但是与原始栅格相比,我确实需要能够看到它们。根据您的建议,任何被分配为1的点/像素都将在所需的标高和距离之内有另一个或几个其他点,所以这是完美的!我唯一的问题是如何以有效的方式做到这一点?
user32882 2014年

Answers:


13

一种可能太简单的方法是使用Focal Statistics

  • 将感兴趣的邻域定义为环形,其内半径在720m以下,外半径在720m以上。(这在某种程度上取决于像元的大小。例如,5m像元的环空为717.5-722.5;不过,对于1m像元的栅格而言,这可能是一个太大的窗口。)
  • 使用统计信息类型MIN,找到附近的最低海拔值。
  • 重复第二次,使用统计类型MAX,找到附近的最高海拔值。
  • 使用栅格计算器,评估高程差异是否足够大。就像是

    Con((Abs("DEM" - "FSMin") > 120) | (Abs("DEM" - "FSMax") > 120), 1, 0)

    如果原始最小差异或原始最大差异超过120m,则该值为1,否则为0。(注意:我尚未测试语法。

这仅告诉您一个像元是否具有一个或多个满足您的距离/海拔标准的相邻像元,而没有告诉您有多少个像元。


哇...。我认为效果很好。非常感谢。当解决方案在GIS上非常简单时,我花了数周的时间尝试修改VBA。上帝祝福你。
user32882 2014年

这难道不能识别出与高程相差至少 120m 的邻居的点吗?我怀疑这是问题的意图,但措辞是“相距120m”。
Llaves 2014年

@Llaves是的,你是对的。我怀疑要在720m处找到正好120m的差异将需要一个非常有趣的脚本。
艾瑞卡(Erica)2014年

无论如何,由于我们要处理自然地形,因此必须有一个间隔。对于我的特定应用,实际上,超过120米的高低差更为有趣。我在最初的声明中应该更加精确。谢谢你们
user32882 2014年
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.