Modelbuilder快速入门
Modelbuilder快速入门
by 李远祥
什么是modelbuilder
模型构建器是一个用来创建、编辑和管理模型的应用程序。模型是将一系列地理处理工具串联在一起的工作流,它将其中一个工具的输出作为另一个工具的输入。也可以将模型构建器看成是用于构建工作流的可视化编程语言。

模型构建器除了有助于构造和执行简单工作流外,还能通过创建模型并将其共享为工具来提供扩展 ArcGIS 功能的高级方法。模型构建器甚至还可用于将 ArcGIS 与其他应用程序进行集成。

Modelbuilder的优势
- 模型构建器是一个简单易用的应用程序,用于创建和运行包含一系列工具的工作流。
- 可以使用模型构建器创建自己的工具。使用模型构建器创建的工具可在 Python 脚本和其他模型中使用。
- 结合使用模型构建器和脚本可将 ArcGIS 与其他应用程序进行集成。
Modelbuilder的主要界面如下,非常的简洁。

模型构建器的几个重要词汇
- 模型元素
模型元素主要有三种类型:工具、变量和连接符。
- 工具:地理处理工具是模型工作流的基本组成部分。工具用于对地理数据或表格数据执行多种操作。工具被添加到模型中后,即成为模型元素。
- 变量: 变量是模型中用于保存值或对磁盘数据进行引用的元素。有以下两种类型的变量:
- 数据:数据变量是包含磁盘数据的描述性信息的模型元素。数据变量中所描述的数据属性包括字段信息、空间参考和路径。
- 值:值变量是诸如字符串、数值、布尔(true/false值)、空间参考、线性单位或范围等的值。值变量包含了除对磁盘数据引用之外的所有信息。
- 连接符: 连接符用于将数据和值连接到工具。连接符箭头显示了地理处理的执行方向。有以下四种类型的连接符:
- 数据: 数据连接符用于将数据变量和值变量连接到工具。
- 环境: 环境连接符用于将包含环境设置的变量(数据或值)连接到工具。工具在执行时将使用该环境设置。
- 前提条件: 前提条件连接符用于将变量连接到工具。只有在创建了前提条件变量的内容之后,工具才会执行。
- 反馈: 反馈连接符用于将某一工具的输出返回给同一工具作为输入。
- 流程模型
模型流程由一个工具和连接到此工具的所有变量组成。连接线用于表示处理的顺序。可将多个流程连接到一起以创建一个更复杂的流程。

- 中间数据
运行模型时,模型中的各个流程都会创建输出数据。其中的某些输出数据只是作为中间步骤创建,而后连接到其他流程,以协助完成最终输出的创建。由这些中间步骤生成的数据称为中间数据,通常(但并不总是)在模型运行结束后就没有任何用处了。您可以将中间数据看作是一种应在模型运行结束后即删除的临时数据。但是,当您运行一个通过模型构建器窗口构建的模型时,中间数据并不会自动删除 - 是否将其删除是由您决定的。

- 模型参数
模型参数是模型工具对话框中显示的参数。模型中的任何变量都可以转换为模型参数。

- 工作空间环境
可在模型构建器中使用以下四种工作空间环境以简化模型数据管理:
当前工作空间:
支持"当前工作空间"环境设置的工具将指定的工作空间用作地理处理工具输入和输出的默认位置。
临时工作空间:
支持"临时工作空间"环境设置的工具可将指定的位置用作输出数据集的默认工作空间。"临时工作空间"专门用于存放不愿保留的输出数据。
临时文件夹
临时文件夹是一个文件夹位置,可用来写入基于文件的数据(如 shapefile、文本文件和图层文件)。它是一个由 ArcGIS 管理的只读环境。
临时 GDB
临时 GDB 是可以用来写入临时数据的文件地理数据库的位置。
此外,存在内存工作空间,可以将地理数据库要素类和表写入系统内存,而非磁盘。
- 细说模型元素
蓝色椭圆表示输入数据,绿色椭圆表示输出数据,黄色矩形代表处理工具

可以根据自身喜好更改图形布局


流程状态
尚未准备好运行:最初将工具拖动到模型构建器窗口中时,流程将处于"尚未准备好运行"状态(工具显示为白色),因为尚未指定所需的参数值。
准备运行:为工具指定了全部所需参数值后,流程将处于"准备运行"状态。
正在运行:如果模型工具显示为红色并且在结果 窗口中创建包含消息的结果,则流程处于"正在运行"状态。
已运行:如果在模型构建器中运行模型,所显示的工具和派生数据元素将带有下移阴影,表示已运行此流程并且已生成派生数据。

保留中间数据
可通过以下三种方式保留中间数据:
- 在模型构建器中运行模型,因为通过"模型构建器"窗口运行模型不会自动删除中间数据。如果通过模型对话框或 Python 窗口执行模型,则会自动删除中间数据,在"模型构建器"窗口中运行则不会。
- 将中间数据变量设置为模型参数。由于模型参数显示在模型工具对话框中,因此此类数据应予保留。模型参数不可以被标记为中间数据,也不会被自动删除。
- 右键单击数据变量并确保取消选中中间控件来移除中间标记。
显示模型数据
可使用添加至显示选项在执行模型后将模型输入和输出自动添加到 ArcMap 内容列表中
右键单击任一数据变量,然后单击添加至显示,如下所示

使用不完整的派生数据
模型构建器中使用工具,一般会对工具调用的数据进行预读,例如字段列表、坐标信息等,但有些工具调用的数据和参数是无法预读的,例如添加字段、计算字段等,允许预先定义数据的结构、数据更改过程等,而这些工具产生的数据就是不完整的派生数据。

- 使用模型构建器构建工具的步骤
- 新建模型。在【地理处理】菜单栏中点击【模型构建器】新建模型


- 加入工具。在工具箱中找到需要使用的工具,直接拖拽到模型构建器中。

- 设置工具的参数。双击工具,将参数进行设置。在模型构建器双击工具和在ArcToolbox打开,是完全一样的设置。如果当前的模型是在某个已知地图上打开(即已经有现成的MXD),工具可以自动下拉选择数据,如果是空白的地图文档,则可以浏览数据源。

- 串联多个工具。使用模型构建器的连接工具,可以直接将多个工具串联成流程。

- 区别上一步传入的参数和工具选择的数据参数。传入的参数是一个蓝色的圆角三角图形,选择的已存在的数据为黄色图层符号。

- 调整工具的位置,以方便查看。用黑色箭头【选择】工具,选中模型中的工具(圆角矩形),可以直接拖动位置,可以设置各个流程的显示位置。

- 使用自动布局可以很好的显示流程


- 保存模型,模型的保存必须是保存在工具箱内,因此,保存前先要创建工具箱。


- 运行模型。双击工具可以运行模型


- 使用参数。选中输入参数,右键—模型参数。参数设置后,会在图标上出现P字样。工具的其他参数,可以从 点击工具的右键,获取变量,例如缓冲区的距离。






- 一般情况下不保存中间数据,除非设置为中间数据;
添加到显示,则可以在运行过程中加入到ArcMap面板



- 重命名。所有的工具和参数都可以重命名,重命名后参数的名称将改变



Modelbuilder快速入门的更多相关文章
- Web Api 入门实战 (快速入门+工具使用+不依赖IIS)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...
- SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)
SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...
- 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)
今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...
- 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Mybatis框架 的快速入门
MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...
- grunt快速入门
快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
随机推荐
- java中关于编码的问题(字符转换流及字符缓冲流 )
上次我们使用的是字节流,还有一种方式就是字符流,上次说过如何分辨使用哪种流,如果记事本可以读懂则使用字符流,否则使用字节流.使用字符流就需要牵扯到编码的问题,下面给出一种转化流的格式. OutputS ...
- thinkphp中的ajax分页
thinkphp中用ajax分页和普通的ajax分页的区别在于处理位置的不同,thinkphp是在控制器的方法中处理ajax传的值,然后返回数据.下面是一个点击事件触发后,显示的内容用ajax分页. ...
- AWK----awk与shell交互
1互相调用命令 ls | awk '{if(system("ls " $0)==0) print "file "$0" exsits"}' ...
- truetype技术和矢量字库的技术原理及实现(转)
源:truetype技术和矢量字库的技术原理及实现 广泛汉字矢量字库(HZKSLxxJ)格式 在矢量字库中,每个汉字都是以128 X 128点阵制成矢量数据.每个汉字 ...
- 使用STM8SF103 ADC采样电压(转)
源:使用STM8SF103 ADC采样电压 硬件环境: STM8SF103 TSSOP20封装 因为项目需要用到AD采样电池电压,于是便开始了使用STM8S ADC进行采样,也就有了下文. 手册上对S ...
- iOS开发——Localizable.strings
这篇写的不多,但是绝对诚意满满.不会像别人一样,要不不详细,要不罗里吧嗦一堆. 1.创建Localizable.strings文件 Command+N—>iOS—>Resource—> ...
- java实现——007用两个栈实现队列
import java.util.Stack; public class T007 { public static void main(String[] args) { Queue q = new Q ...
- Splay初步【bzoj1503】
做了一道水题,把bzoj1503用Splay重新写了一下. #include <bits/stdc++.h> #define rep(i, a, b) for (int i = a; i ...
- 温故知新 javascript 正则表达式
很长时间没看 正则表达式了,碰巧今天用到,温故知新了一把 看书学习吧 50% 的举一反三练习中的原创. 一 javascript正则表达式的基本知识 1 javascript 正则对象创建 ...
- MVC 视图-模型,动态更新
<!DOCTYPE html> <html> <head> <title>Binding</title> <script src=&q ...