【ArcGIS Pro | 思路分享】批量寻找多个区域的内部唯一最高高程点

起因

实习期间,被要求手绘某要素所有点60m范围的最高高程点,并将两点连接为线要素。
由于手绘实在繁琐,且有五百多对点,一个一个做太蠢且后续还可以用这个方法摸鱼。
因此,借此机会摸索一下如何实现批量寻找多个区域的内部唯一最高高程点。


数据准备

1、某要素缓冲区面要素;
2、DEM栅格;
3、创建一个要素数据集;
注:若区域过大,建议先用“某要素缓冲区面要素”用【按掩膜提取】工具裁剪一下数据,以提高后续的处理速度。


模型一览

Part 1:
这一步主要就是先把一个缓冲区面要素,拆分成n个独立的要素存储到要素数据集里备用。
注意:这里最后的【要素转面】请将结果输出在提前创建好的要素数据集
在这里插入图片描述

Part 2:
这一步就通过【迭代要数类】来迭代刚刚要素数据集内n个独立的缓冲区要素,进行独立迭代地查找区域内地最高点。
在这里插入图片描述


细节分析

①为什么要把整个功能分为两个部分?
在使用ArcGIS Pro时,会面临一个限制,即每个模型内只能添加一个迭代器。这是将功能分为两部分的主要原因。
此外,还有两个重要的因素,分别在下文的②和③部分详细说明。
②为什么不直接使用【迭代要素选择】来直接实现整个流程?
当尝试直接使用【迭代要素选择】迭代一个缓冲区面要素并对其内部的每个缓冲区执行【查找最高点和最低点】操作时,会出现错误,无法达到预期效果。
个人认为可能是【查找最高点和最低点】工具不支持对选中的部分要素进行处理。这一猜测得到了Part 1中的实践支持,即在Part 1中可以使用【迭代要素选择】逐个导出缓冲区,而在【查找最高点和最低点】时则无法实现。
③为什么要先使用【迭代要素选择】来对缓冲区一 一地导出单个缓冲区再进行【查找最高点和最低点】?
正如上文(②)所述,无法直接结合【迭代要素选择】和【查找最高点和最低点】来完成整个流程。因此,采取了一个额外的步骤:使用【迭代要素选择】对多部件的缓冲区要素进行逐一迭代,借助【要素到面】工具,将原本在一个要素类中存储的缓冲区拆分成数百个单独的要素类,存储在一个要素数据集中。这样做为后续使用【迭代要素类】工具执行【查找最高点和最低点】操作奠定了基础。
④【迭代要素类】和【迭代要素选择】的区别是什么?
【迭代要素类】专门用于迭代一个要素内的所有内容,比如一个缓冲区要素内的所有缓冲区。
而【迭代要素选择】则用于迭代一个数据集或数据库内的所有独立要素。
这也解释了为什么在③中需要使用【迭代要素选择】逐一迭代地应用【要素到面】工具。
④如何实现迭代输出每个要素的名字自动变化?
在使用【迭代要素类】或【迭代要素选择】时,每次迭代会自动生成一个独特的“名称”或“值”变量。
这个特性可以用于自动更新每个迭代输出要素的名称,从而使得输出更加有序且易于识别。

在这里插入图片描述
例如,当你使用迭代作为输入的工具时,可以设置输出名称格式为“<你设定的输出名>%值%”或“<你设定的输出名>%名称%”。
这里的"_"下划线符号仅用作美观分隔,无其他特殊含义。至于使用“%值%”或“%名称%”取决于迭代输出的具体内容。
通过这种方法,您可以确保每次迭代产生的输出都有一个独特且有意义的名称,便于后续的处理和引用。
⑤【查找最高点和最低点】工具能实现什么?

如上图,在“输入表面”中选择DEM数字高程模型栅格,同时在“输入区域”中选择你所规定的矢量要素区域,那么最终输出的要素类是在这个矢量要素区域内最高或最低的高程点。

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Uyoin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值