http://www.3sbase.com/chxnews.asp?id=1433
在研究model近半年的日子里,个人觉得Model Buider中最难的部分当属Model的迭代反复即Iteration,而Iteration中最容易混淆的当属List和Series的概念。今天有幸得到一篇好文章(来自ESRI Geoprocessing Resource Center),结合自己的学习体会,结合例子,总结一下学习体验,望对学习Model Buider的各位有用。
上面两个Model分别使用了List和Series选项。使用Series的变量标识为“Series of Hurricane”,而使用List的对象标识为“List of Hurricane”。土地利用覆盖的栅格图层(美国东海岸100KM缓冲区范围)必须被每一个飓风所提取。输出的栅格序列必须和飓风轨迹做相关。
下面的列表帮助我们认识List和Series的不同。
(1)List如何工作
A:List是作为一个批处理进程,所有的工具或者进程在同一时刻可以运行List变量中的所有值。
B:List最佳利用场景是当你要让同一个进程,例如使用使用同一个输入以及一个列表的mask来使用Extract by mask来提取,或者将同一个字段添加给一个数据集列表又或者用同样的的一个表达式来计算变量列表中所有变量的值。
(2)在Model Buidler中如何来设置一个变量列表
A:创建一个变量,“List of Hurricane”
B:右击它的属性,然后在Geneal Tab上选择List of Values
D:在变量中添加变量列表
(3)Series如何工作
A:Series和List的区别在于Series中的值是一个接着一个在Tool或者Process中运行(即有多个Process),而List是List中的值在一个进程或Process中同时运行,即只有一个Process。
B:List主要是用于批处理,而Series主要用于模型的迭代和feedback循环。
(4)在ModelBuidler中如何来设置Series变量
A:创建一个变量,命名为“Series of Hurricane”
B:右击它的属性,然后在General Tab上选择Series of Values
C:为这个变量输入添加值或者数据集
D:从Model的主菜单中选择Model Properties,然后在Iteration Tab中,将“Get Iteration count from this variable” 的值设置为“Series of Hurricane”
List和Series的区别
从Model Buider的页面上看List和Series的区别在于它们的输出。如果这个变量是一个List的话,那么它的输出符号跟输入一样,是Multiple输出;而如果这个变量是Series的话,那么它的输入是一个Multiple Input而输出却是一个Single Output。如图所示:
在上面这张图中,同样的模型使用不同的List和Series选项。在第一个模型中,变量被申明为List,包含一个feature Class的序列,此时在Model Buidler中,Input和Output都展示为Multiple。而同样的模型,你可以将变量申明成Series。此时,Input显示为Multiple的样式,而Output却是Single的样式。两个模型的差别在于模型执行的方式。List方式是所有的Feature class在同一个工具中同时执行,而Series方式却是工具一个接着一个执行。