高级模型构建器技术(ArcGIS)

继续学习ArcGIS帮助中关于模型构建器的“高级”技术: 一.行内变量替换: 在模型构建器中,可通过以百分号 (%) 将替换变量括起来的方式,用一个变量的内容替换另一变量。这种变量替换方式称为行内变量替换
1.行内变量的使用规则:
(1)变量名要用%括起来,例如:%value%
(2)变量名称中允许出现空格
(3)替换不区分大小写
2.行内变量分类:
(1)模型变量:模型中的任何变量
(2)系统变量:表示变量列表编号的 %i% 和表示模型迭代次数的 %n%
二.使用列表: 【高级模型构建器技术(ArcGIS)】可以将模型中的一个或多个变量声明为列表变量,省去重复的操作步骤
1.使用方法:
(1)右击变量,单击属性,单击值列表,如下图:
高级模型构建器技术(ArcGIS)
文章图片

(2)列表变量会以下图的样式呈现:
高级模型构建器技术(ArcGIS)
文章图片

2.对列表使用行内变量替换和填充选项:
在模型中创建输出列表变量后,可使用 %i% 在输出名称中进行行内变量替换。%i% 将在输出名称的末尾追加列表编号
高级模型构建器技术(ArcGIS)
文章图片

三.使用循环迭代器: 迭代器说白了就是循环,在处理需要大量重复操作的问题时可以极大地节省我们的时间和精力
1.迭代器位置与功能介绍如下图:
高级模型构建器技术(ArcGIS)
文章图片

高级模型构建器技术(ArcGIS)
文章图片

2.常用迭代器使用方法:
(1)For循环:
语法:For_mb (from, to, increment)
参数表:
高级模型构建器技术(ArcGIS)
文章图片

(2)更多迭代器使用方法:http://desktop.arcgis.com/zh-cn/arcmap/10.3/analyze/modelbuilder/a-quick-tour-of-using-iterators-for-iteration-looping-.htm
3.注意:
(1)每个模型仅可使用一个迭代器。如果模型中已经存在一个迭代器,那么用于添加迭代器的选项将不可用
(2)如果将含有迭代器的模型导出为 Python 脚本,则导出的脚本中将不会包括迭代逻辑
(3)连接到迭代器的任何工具的输出对于每次迭代均可具有(如有必要)一个唯一的名称,以免被后续迭代所覆盖(行内变量替换)
四.反馈: 在模型构建器中,一个流程的输出可以用作先前流程的输入,这种现象称为反馈,因为输出将反馈给先前流程作为输入
1.通过变量属性反馈如下图:
高级模型构建器技术(ArcGIS)
文章图片

2.通过连接工具反馈
五.使用前提条件: 前提条件可用于显式控制模型中的运算顺序,例如,使第一个过程的输出成为第二个过程的前提条件可以让一个过程在另一个过程后运行,任何变量都可用作工具执行的前提条件,并且任何工具都可以有多个前提条件
1.将数据变量设置为前提条件:在下面的模型中输出等值线做为坡度运算的前提条件,用虚线箭头表示
高级模型构建器技术(ArcGIS)
文章图片

2.将布尔变量设置为前提条件:对于布尔变量,“模型构建器”将读取其 TRUE 或 FALSE 值,而不是确定数据是否已被创建,如果值为 TRUE,则满足前提条件,相关工具会执行;如果值为 FALSE,则不满足前提条件,相关工具不会执行
高级模型构建器技术(ArcGIS)
文章图片

3.将长整型变量设置为前提条件:如果长整型变量的值是一个正整数,则将其认定为真并且相关过程会执行;如果值为 0 或负值,则将其认定为假并且相关过程不会执行
高级模型构建器技术(ArcGIS)
文章图片

4.设置前提条件的两种方法:
(1)从工具属性设置前提条件:
右键单击工具元素,选择属性,单击前提条件,然后选中要为工具设置前提条件的变量,如下图:
高级模型构建器技术(ArcGIS)
文章图片

(2)使用连接工具设置前提条件:
从可用参数的列表中选择前提条件,如果在模型构建器或模型工具对话框中运行模型,则仅当变量具有有效值时,具有前提条件的工具元素才会执行
六.使用交互式要素集: 要素集允许交互式输入要素并随即用作模型或脚本的输入,该交互数据输入操作的实现过程与在 ArcMap 中编辑要素类似(现编辑现用)
1.创建要素集:
(1)创建新要素集:
右键单击模型中的任意位置,然后选择创建变量,向下滚动列表并选择要素集作为变量数据类型,单击确定:
高级模型构建器技术(ArcGIS)
文章图片

(2)修改现有要素为要素集:
右键单击现有数据变量,单击属性,单击数据类型选项卡,在选择数据类型下拉列表中,选择要素集:
高级模型构建器技术(ArcGIS)
文章图片

2.使用要素集:
(1)在模型构建器中打开要素集变量时,要素的交互式数字化被禁用,由于使用要素集交互式地数字化要素的唯一方式是通过打开模型工具对话框,因此要素集变量必须显示为模型参数,要将要素集变量设置为模型参数,可在模型构建器中右键单击要素集变量并选择模型参数
高级模型构建器技术(ArcGIS)
文章图片

(2)设置后运行模型,选项卡如下图,编辑器会自动开启,可以直接绘制polygon:
高级模型构建器技术(ArcGIS)
文章图片

    推荐阅读