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

发布时间:2024年01月10日

起因

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


数据准备

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


模型一览

Part 1:
这一步主要就是先把一个缓冲区面要素,拆分成n个独立的要素存储到要素数据集里备用。
在这里插入图片描述

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


细节分析

①为什么要把整个功能分为两个部分?
主要是因为每个模型内,只能加一个迭代;
还有两个重要原因见②和③。
②为什么不直接使用【迭代要素选择】来直接实现整个流程?
由于未知的原因,直接使用【迭代要素选择】来迭代对每个缓冲区进行【查找最高点和最低点】操作,未能得到预想的效果。个人猜测是该工具不支持选中个别要素部件来进行处理,而Part 1中却可以使用【迭代要素选择】来对缓冲区一 一地导出单个缓冲区。
③为什么要先使用【迭代要素选择】来对缓冲区一 一地导出单个缓冲区再进行【查找最高点和最低点】?
正如②所描述的那样,无法直接使用【迭代要素选择】实现整个流程。因此我这边多一步,即让多部件的缓冲区要素使用【迭代要素选择】一 一迭代地使用【要素到面】工具,将存储在原本一个要素类的缓冲区拆分成几百个要素类到一个要素数据集内,以便后续使用【迭代要素类】工具进行【查找最高点和最低点】操作。
④【迭代要素类】和【迭代要素选择】的区别是什么?
【迭代要素类】的功能是迭代一个要素,例如一个缓冲区要素内所有的缓冲区;
【迭代要素选择】的功能是迭代一个要数数据集或工作空间(数据库)。
这也就是为什么我在③中提到“让多部件的缓冲区要素使用【迭代要素选择】一 一迭代地使用【要素到面】工具”
④如何实现迭代输出每个要素的名字自动变化?
我们可以看到使用【迭代要素类】或【迭代要素选择】每次迭代都会输出一个“名称”或“值”。
因此你可以在使用迭代作为输入的工具,输出的名字为“<你想的名字>%值%” 或 “<你想的名字>%名称%”。
其中,“_“下划线符号没有特别的意思,只是为了美观隔开了前面和后面;
而”%值%“以及”%名称%”,两个百分号中间究竟写那个具体要看迭代输出的是什么。
⑤【查找最高点和最低点】工具能实现什么?

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

文章来源:https://blog.csdn.net/Futurscope/article/details/135475817
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。