相比较ArcMap的模型构建器,Pro里最主要的变化就是增加了一组逻辑工具:

逻辑工具用于控制模型中的流程流,它们返回的结果是true或false。

这个结果一般用于 if-else 分支逻辑,例如:如果某字段存在的时候,执行流程1,否则,执行流程2。

是不是有点写代码的感觉了?其实这也算是低代码模型。

逻辑工具可以让工作流程变得更复杂,实现的功能也就更多。

这也算是Pro的一大进步之处。

一、逻辑工具介绍

1、如果数据已存在

检查模型参数中的输入数据是否存在。几乎任何数据都能检索。

2、如果字段已存在

检查数据集中是否已存在给定名称的字段。字段测试有多种模式。

3、如果选择已存在

检查输入是否具有任何所选要素。也可以检查所选要素的数量。

4、如果坐标系为

检查数据集是否具有特定坐标系。这一般用于在流程中作前置判断,避免不同坐标系要素的空间处理。

5、如果数据类型为

检查输入数据集的数据类型。加强流程的稳定性。

6、如果表达式为

通过具体表达式来获取判定结果。表达式采用python,有了表达式,可做到的事情就非常多了。

7、如果要素类型为

检查特定数据集是否为某种要素类。和【如果数据类型为】类似,不过只针对要素类进行判断。

8、如果字段值为

检查输入数据在属性字段中是否有特定值。另外还有多种选择条件,内容非常丰富。

9、如果行计数为

检查输入数据集中的记录数。借此也可以判断数据集中是否有内容。

10、如果空间关系为

检查图层是否具有与其他图层要素有空间关系的要素。比如判断两个要素是否相交。

11、如果值为

检查输入数据是否存在特定值。这个值的类型也很广,基本包括所有数据类型。

二、应用示例

有了这些逻辑工具,模型构建器也可以玩很多花活。

1、清理GDB数据库里的所有空要素

有时候GDB数据库因为来自于标准空库,可能会存在一些没经过处理的空要素,需要手动删除掉。一个个检查就有点麻烦,用模型构建器来吧。

这其中最主要的就是用到【如果行计数为】工具,找出计数为0,也是空要素,删除即可。

2、删除GDB数据库里不在规划范围内的所有要素

另一种情况,GDB数据库存在不在规划范围内的要素,也可以批量清理掉。

主要用到【如果空间关系为】工具,将关系设为相交,结果为false的就是不相交,删除即可

3、批量字段计算GDB数据库里的所有要素

例如要给GDB数据库里的所有要素的【BSM】字段赋值,迭代要素后加一个【如果字段已存在】的判断,只有存在该字段,才进行计算字段的操作,避免可能存在的错误:

一时想不出其它方便的实际应用场景,有待慢慢开发,后面如果有遇到,再补充吧。

好文阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。