主要记录利用Model Builder构建器批量处理数据的过程及遇到的问题。

一、批量实现split line at vertices功能
1.打开Mode Builder
打开Mode Builder(Geoprocessing – Mode Builder),确定所需工具,如我这里用到Split Line At Vertices工具,可以通过搜索工具找到该工具。

2.插入要素类迭代器

(1)选择迭代器

这里我选择要素类

(2)直接从工具箱中将split line at vertices工具拖进去。

arcmap数据批量修改python_迭代器


(3)利用连接工具将迭代中的输出和后面工具连接

arcmap数据批量修改python_迭代器_02


(4)对每个模块进行设置,如输入文件路径、文件名称等

arcmap数据批量修改python_arcmap数据批量修改python_03


(5)点击运行即可。可以将模型保存,下次修改输入文件的路径,还可以使用。二、批量对dbf表添加字段和字段计算

(1)需要的工具:

arcmap数据批量修改python_其他_04


计算几何特征的工具:

我们经常在dbf表中利用calculate geometry 来计算经纬度,周长,面积,在model builder中与之对应的工具为:https://community.esri.com/t5/modelbuilder-questions/how-do-you-calculate-the-length-of-a-line-using-a/td-p/781344

arcmap数据批量修改python_字段_05

(2)添加迭代器,工具;

(3)通过连接工具进行模块连接操作;

(4)根据需要设置每个模块的内容:

如1) add_filed:

arcmap数据批量修改python_字段_06


2) Add Geometry Attributes

arcmap数据批量修改python_迭代器_07


模型设计:

arcmap数据批量修改python_arcmap数据批量修改python_08


利用上面的方法会生成两列字段:

arcmap数据批量修改python_arcmap数据批量修改python_09


所以只需添加几何属性即可,默认会自动添加一列。

调整后的model builder:

arcmap数据批量修改python_迭代器_10


更新:

上面选择的迭代器无法循环,更改为feature classes:

arcmap数据批量修改python_arcmap数据批量修改python_11


这里总结一下迭代器的选择属性:https://desktop.arcgis.com/zh-cn/arcmap/10.3/analyze/modelbuilder/a-quick-tour-of-using-iterators-for-iteration-looping-.htm

arcmap数据批量修改python_其他_12


每种迭代器都有一组不同于其他迭代器的参数,但是所有迭代器工具的整体结构都非常相似。如较常使用的Iterate Feature Classes:

arcmap数据批量修改python_迭代器_13


三、批量按属性选择数据

(1)添加迭代器和所需工具,设置每个模块的内容

arcmap数据批量修改python_数据_14


注意工具命名这里需要正则化处理:%Name% (2)运行模型构建器

arcmap数据批量修改python_其他_15


四、批量合并元素并删除字段

(1)确定数据处理工具和迭代器;

arcmap数据批量修改python_arcmap数据批量修改python_16


(2)设置每个模块的内容;

arcmap数据批量修改python_字段_17


(3)运行模块。

注意先将之前的输入数据做备份。

学习资料:
1.arcmap帮助文档实例:https://pro.arcgis.com/zh-cn/pro-app/2.8/tool-reference/modelbuilder-toolbox/examples-of-using-model-only-tools-in-modelbuilder.htm