实验过程照片及详细教程请关注微信公众号:夫也的笔记
​ModelBuilder模型构建器是一个用来创建、编辑和管理模型的应用程序。模型是将一系列地理处理工具串联在一起的工作流,它将其中一个工具的输出作为另一个工具的输入。也可以将模型构建器看成是用于构建工作流的可视化编程语言。模型构建器除了有助于构造和执行简单工作流外,还能通过创建模型并将其共享为工具来提供扩展 ArcGIS 功能的高级方法。

01
打开数据查看模型
启动ArcMap

不同输入来运行该模型,而无需每次都打开“模型构建器”。

打开ArcToolbox工具箱,在工具箱空白处右击Add Toolbox,我这里选择的是我实验的工具“CompletedModels.tbx”,将已经建好的工具箱添加进来,在模型“Extract Vegetation for Proposed Roads”上双击,出现在如下图所示的界面。

创建模型参数后,可通过模型的工具对话框执行模型,从而为 Input Roads、Buffer Distance、Input Vegetation、Output Clipped Feature Class 和 XY Tolerance 参数提供不同的值。无需在每次运行模型时都打开“模型构建器”,也可以改用工具对话框。通过模型的工具对话框来运行模型还有一个额外的优势,那就是会在结果 窗口中创建结果,而在“模型构建器”内运行模型并不会在结果 窗口中创建结果。其余步骤会将模型变量显示为参数,以使其在模型工具对话框中所示。

02
创建模型
单击 ArcMap 标准工具 工具条上的模型构建器按钮 ,打开“模型构建器”窗口用于编辑操作。也可以通过右键单击现有工具箱并选择新建 > 模型来创建一个新模型。这样便可在该工具箱中创建一个具有默认名称的模型,并打开该模型以执行编辑。以下为利用Buffer和Clip进行组合的一个实例,请按照步骤操作。

1、在工具搜索 窗口中,输入Buffer,然后单击搜索按钮 。

“缓冲区”工具将与其他搜索项一并列出。

2、将搜索项缓冲分析,表示“分析”工具箱中的缓冲区工具,拖动到“模型构建器”画布的空白区域中。

3、这样便可将工具和输出数据变量添加到模型中。输出变量将通过连接符连接到工具。工具和输出数据均为空(即没有颜色),这是由于尚未指定任何工具参数。

4、以同样的方式搜索并添加“分析”工具箱中的“裁剪”工具。如果两个工具互相压盖,可单击“模型构建器”工具条上的自动布局按钮 来排列工具。

还存在两种在模型中添加工具的其他方法,但本教程中并没有采用,下面将列出这些方法以供参考:

在ArcToolbox窗口中,导航到ArcToolbox > Analysis Tools > Proximity。可以选择“Buffer”并将该工具拖动到“模型构建器”画布的空白区域中。

在“模型构建器”窗口的工具条上单击添加数据或工具按钮 ,然后导航到ArcToolbox > Analysis Tools > Proximity。选择“Buffer”工具,然后单击添加。

通过以上步骤已将各工具添加到模型中,接下来便可以填入工具参数。

步骤:

1、在“模型构建器”中,双击“Buffer”工具打开其工具对话框。

2、对于输入要素参数,可以单击“浏览”按钮然后导航到输入地理数据库。

3、选择 PlanA_Roads 要素类,然后单击添加。

4、填入输入要素后,将自动生成输出要素类参数,并且已填入值。单击“浏览”按钮替换输出要素类参数中自动生成的输出名称。导航到 ModelBuilder 文件夹中的输出地理数据库,键入输出名称 BufferedFC,然后单击保存。

5、对于距离Distance参数,可以选择字段选项,然后从下拉列表中选择“距离”字段。

6、单击确定。

7、输入数据将作为变量(上图中的蓝色椭圆)添加到模型中并自动连接到 Buffer。输入变量(蓝色椭圆)、工具(黄色椭圆)和输出变量(绿色椭圆)的颜色发生了变化,这表明所有参数值均已指定并且工具已准备好运行。请注意,在工具对话框中单击确定并不会在“模型构建器”中执行工具。

8、数据或工具添加到模型中后便称为模型元素。共有三种基本元素:变量、工具和连接符。

9、现在可以双击裁剪打开相关工具对话框。

10、对于输入要素参数,可以单击“浏览”按钮然后导航到输入地理数据库。

11、选择 vegtype 要素类,然后单击添加。

12、对于裁剪要素参数,可单击箭头并从下拉列表中选择 BufferedFC。蓝色再循环符号表示 BufferedFC 在模型中是一个变量。添加“缓冲区”工具时,便会在模型中创建此变量。

13、对于输出要素类参数,可以单击“浏览”按钮,导航到输出地理数据库,输入数据集名称 ClippedFC,然后单击保存。

14、在裁剪工具对话框中单击确定。

Buffer 工具的输出变量将作为输入自动连接(使用连接符)到 Clip 工具,如下图所示。

最后将模型保存在工具箱中,命名为Model_new.

各工具的所有参数均填入之后,模型便准备好运行。步骤:

1、运行模型之前,请选择 ClippedFC 变量,右键单击,然后单击添加至显示选项。设置此选项可确保在“模型构建器”中运行模型时,输出 ClippedFC 可添加到 ArcMap 中的显示画面,这样便可以快速查看运行结果。

2、在“模型构建器”菜单中单击模型 > 运行整个模型。

模型开始运行,输出会添加到显示中。模型完成运行后,工具(黄色矩形)和输出变量(绿色椭圆)的周围会显示下拉阴影,表示这些工具已经运行过。

03
显示模型/工具参数
要定义“缓冲距离”和“XY 容差”参数,需要为它们创建模型变量。将工具添加到模型后,会自动为输入和输出数据集创建模型变量,但不会为任何其他工具参数创建模型变量。主要是为了美观,如果自动为每个工具参数都创建变量,则模型图很快就会变得难以辨认。例如,将缓冲区工具添加到模型后,会自动为输出要素类参数创建变量。右键单击 Buffer 并填充输入要素参数后,便会为输入要素创建模型变量。所有其他参数(如距离、侧类型和末端类型)并不会作为变量自动添加到模型中。

以下步骤将为距离 [值或字段] 和 XY 容差创建模型变量。步骤:

1、在ArcToolBox中,在Completed Models\Model_new上右键,点击Edit,进入ModelBuilder界面。

2、右键单击 Buffer。

3、单击Make Variable > From Parameter > Distance [Value or Field]。 此操作会将“距离”参数作为变量添加到模型中。

4、右键单击 Clip。

5、单击Make Variable > From Parameter > XY Tolerance.。

04
创建模型参数
我们已为“距离”和“XY 容差”创建了变量,接下来便可创建模型参数。步骤:

1、右键单击 Distance [value or field],然后选中模型参数选项,如下图所示。

2、变量旁边将显示字母 P,表示此变量为模型参数。此模型参数随后也将在模型工具对话框上显示。

3、为以下变量创建模型参数(不为 BufferedFC 创建模型参数):

05
对模型元素重命名
“模型构建器”为变量指定默认名称。这些变量名用作模型工具对话框上的参数名称。对变量重命名是一种很好的做法,尤其是在变量为模型参数时。步骤:

1、右键单击 PlanA_Roads,然后单击重命名。

2、输入 Input Roads,然后单击确定。 变量名称将更改为 Input Roads。

3、按以下方法对其余变量进行重命名:

o 将 Distance [value or field] 重命名为 Buffer Distance。

o 将 vegetype 重命名为 Input Vegetation。

o 将 ClippedFC 重命名为 Output Clipped Feature Class。

4、保存模型。无需退出“模型构建器”。

5、在目录窗口中双击模型可打开模型工具对话框。可能需要移动或最小化“模型构建器”窗口才能访问目录 窗口。模型工具对话框应与下图类似。对话框上的参数顺序可能会有所不同,但这不是问题,因为接下来将更改此顺序。

6、可通过单击确定来执行工具,但建议在执行工具前先选择其他输出要素类。该工具执行后,输出要素类将被添加到 ArcMap 的内容列表中。与在“模型构建器”内运行模型不同,通过模型对话框运行模型并不会改变模型图。

06
设置模型参数顺序
如上图所示,参数的顺序并不理想。标准做法是按以下顺序排列参数:

• 必需的输入数据集

• 影响工具执行的其他必需参数

• 必需的输出数据集

• 可选参数

步骤:

1、在“模型构建器”中,单击模型 > 模型属性。

2、单击参数选项卡。

3、选择 Input Roads 参数,然后使用右侧的上箭头和下箭头按钮将其移动到顶部。

4、如下所示更改其他参数的位置:

07
设置模型参数类型
按正确顺序设置模型参数后,需要更改参数类型。如果参数是模型中某个工具的必需参数,将无法通过以下设置将类型更改为可选。

步骤:

1、在“模型构建器”中,单击模型 > 模型属性。

2、单击参数选项卡。

3、单击 XY Tolerance 的类型类别下方的单元格。将出现一个包含两个选项的列表。在此示例中,保留 XY Tolerance 为可选参数,而将其余参数设置为必需参数,如下图所示。

08
对模型参数设置过滤器
可通过对参数应用过滤器来限制任何参数的输入类型。此示例中的模型要求 Input Roads 参数为线要素。在以下步骤中,将通过应用过滤器来修改该参数,以使其仅接受线要素。

步骤:

1、单击模型 > 模型属性。

2、单击参数选项卡。

3、选择 Input Roads,然后单击过滤器类别下方的单元格。

4、选择要素类过滤器。 将打开要素类 对话框。

5、取消选中除“折线(Polyline)”外的所有类型,然后单击确定。

6、在模型属性 对话框上,单击确定应用过滤器。

09
为输出数据设置符号系统
可将模型的输出设置为包含特定的符号系统,以用来显示输出。对于此示例,符号系统基于缓冲区内的植被类型。要为输出数据设置符号系统,第一步是创建图层文件,第二步是在输出数据属性中定义图层文件。此教程中已创建了图层符号系统文件。

步骤:

1、在“模型构建器”窗口中,右键单击 Output Clipped Feature Class,然后单击属性。

2、单击图层符号系统选项卡。

3、浏览查找 ToolData 文件夹中所复制的图层文件。

4、选择 OutputSymbology.lyr,然后单击添加。

5、单击确定。

10
管理中间数据
运行模型时,模型中执行的每个过程都会创建输出数据。创建的某些数据在模型运行后毫无用处,因为创建这些数据只是为了与创建新输出的另一个过程相连。此类数据称为中间数据。除最终输出之外的所有输出或者已变为模型参数的输出都将自动成为模型的中间数据。此示例中,Buffer 工具的输出仅在作为 Clip 工具的输入时才有用,而在这之后不再使用,因此“中间”选项为选中状态。可通过取消选中“中间”选项来保存中间数据。

11
更改模型的常规属性
可对模型的名称、标注和描述进行设置。

步骤:

1、在“模型构建器”界面上,单击模型 > 模型属性。

2、输入 ExtractVegetationforProposedRoads 作为模型名称。模型名称中不允许包含空格。

3、在标注文本框中,输入 Extract Vegetation for Proposed Roads。模型标注中允许包含空格。此标注用于在目录 窗口中显示模型名称。

4、在描述文本框中,输入所需文本。

选中存储相对路径名(不是绝对路径名) 选项,以便共享模型工具或将模型数据和模型移动到其他位置。此教程中未使用此选项,但此处将其作为一种很好的做法进行介绍,便于在以后共享模型和模型工具时使用。

5、单击确定。

6、保存 完成的模型,并退出“模型构建器”。

7、在目录 窗口中双击模型可打开模型工具对话框。由于模型是与预定义的值一起保存的,因此对话框中的所有参数都已填入。可通过在此处输入新值来更改任何参数的值。单击确定运行模型。默认情况下,模型的最终输出 (Output Clipped Feature Class) 会添加到显示中,而模型消息将在结果 窗口中显示。要查看结果,可在地图文档的内容列表中取消选中 Vegetation Type 图层。

12
记录模型
最好在分享模型前先对其进行记录。要进行记录:

步骤:

1、右键单击目录窗口中的模型,然后单击项目描述。 将打开项目描述窗口,其中显示了 描述 页面。

2、在项目描述窗口中,单击编辑按钮。 将打开文档编辑器以供输入项目描述。

3、为模型中的每一项输入相应的描述,然后单击保存按钮。

13

其他分析

如果需要使用该模型执行某些分析,可以添加“汇总统计数据”工具以便获得一个在拟建道路周围缓冲区面中受到植被类型影响的区域的汇总表。以下步骤还将介绍如何将模型用作其他模型内部的工具。

步骤:

1、在 ArcMap 的标准 工具条上,单击模型构建器按钮以打开新模型。

2、由于已创建了模型工具,因此可以像任何其他工具一样使用模型工具。可通过将模型工具从目录 窗口拖动到新模型中来将其添加到新模型中,如下图所示。

3、由于模型工具已预定义了输入和输出参数的值,因而模型工具的输入和输出变量(蓝色和绿色椭圆)将会添加到新模型中。请注意,将模型工具添加到其他模型中时,并不会显示该模型工具的所有参数。另外,还将使用输入数据集的原始名称。可以按此教程中前面介绍的那样,创建变量并对其进行重命名。

4、通过单击地理处理 > 搜索工具打开搜索 窗口(如果尚未在 ArcMap 中打开)。

这将打开搜索 窗口。

5、在搜索 窗口中,输入 Summary Statistics(汇总统计),然后单击搜索按钮 。

6、将此工具拖到模型中。

注:4—6步可以在模型构建器中添加,如图:

7、双击“汇总统计数据”元素打开此工具的对话框。

8、对于输入表参数,单击箭头,然后选择旁边具有蓝色再循环图标的 Output Clipped Feature Class。这个再循环图标意味着此要素类是模型中的变量。

9、对于输出表参数,可以浏览到输出地理数据库 (…\Data\Ex25\Scratch\Output.gdb),输入名称 AffectedVegetation,然后单击保存。

10、对于统计字段参数,在列表中选择 Shape_Area。

11、单击统计类型下 Shape_Area 旁的单元格,然后从下拉列表中选择总和。

12、对于案例分组字段参数,在列表中选择 VEG_TYPE。

13、单击确定。

14、右键单击 Output Clipped Feature Class(绿色椭圆),然后选中添加至显示。这样便会在模型运行后将输出添加至显示。

15、右键单击 AffectedVegetation 变量,然后选中添加至显示选项。这样便会在模型运行后将输出添加至显示。

16、运行模型。

输出 Output Clipped Feature Class 和 AffectedVegetation 表将被添加到 ArcMap 内容列表的显示中。

17、右键单击表,然后单击打开可打开对应的表。

14

笔者写过的具体案例

【ArcGIS】总shp文件批量转单shp文件

END

夫也的笔记
地承千古人文
理蕴万世精神
长按二维码扫码关注>>>

ArcGISModelBuilder创建与应用相关推荐

  1. git的详细用法和基础教程

    Git 是当前最流行的版本控制程序之一,文本包含了 Git 的一些基本用法 创建 git 仓库 初始化 git 仓库 mkdir project  # 创建项目目录  cd project  # 进入 ...

  2. 创建数据库,指定数据库的字符集和编码顺序

    创建数据库,指定它的字符集和编码顺序 create database {数据库名称} CHARACTER SET {字符集} COLLATE {排序规则} 举例: create database co ...

  3. Linux下创建硬链接,文件访问为空,提示:xxxx: 符号连接的层数过多

    Linux下创建软链接|硬链接,文件访问为空,提示:x x x: 符号连接的层数过多. 原因:创建符号链接的时候未使用绝对路径,无论是源文件路径还是目标路径,都需要使用绝对路径. 如: ln -s / ...

  4. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  5. Linux下docker安装配置oracle,oracle创建用户并远程连接,实测可用!

    最近在给同学弄毕业设计的数据库,因为oracle在个人电脑上极不稳定,所以他的电脑数据库崩溃了,这时候我就在docker上为他拉了一个oracle,解决了问题. docker的安装共有以下几步,实测没 ...

  6. etcd 笔记(03)— etcd 客户端使用(键值的增、删、改、查)、watch监测键、lease使用(创建租约、撤销租约、刷新租期、查询租期)

    1. etcd 客户端 etcdctl 是一个命令行客户端,便于我们进行服务测试或手动修改数据库内容,etcdctl 在两个不同的 etcd 版本(v2 和 v3)下的功能和使用方式也完全不同. 一般 ...

  7. Go 学习笔记(78)— Go 标准库 net/http 创建服务端(接收 GET、POST 请求)

    使用 net/http 标准库创建一个 http 的 restful api 的服务端,用来处理 GET.POST 等请求. 源代码如下: package mainimport ("enco ...

  8. GCC 连接器、链接标准库 gcc -l、链接手动创建库(指定目录的库 gcc -L)

    1. 链接器 链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件. 在链接过程中,它必须把符号(变量名.函数名等一些列标识符)用对应的数据的内存地址(变量地址.函数地址等 ...

  9. Go 学习笔记(64)— Go error.New 创建接口错误对象、fmt.Errorf 创建接口错误对象、errors.Is 和 errors.As

    1. error 接口定义 除用 panic 引发中断性错误外,还可返回 error 类型错误对象来表示函数调用状态.error 接口是 Go 原生内置的类型,它的定义如下: // $GOROOT/s ...

最新文章

  1. The listener supports no services
  2. 底部固定菜单_捡起一只妲己团团,附送一个同校固定队友!还有这种好事?
  3. oracle更改字段名顺序的方法
  4. TEXT和_T,_TEXT
  5. 反射就是获取该类的.class文件里面的方法,属性
  6. MySQL主从复制,读写分离配置
  7. Android 常见错误
  8. JS获取当前对象大小以及屏幕分辨率等
  9. [SDOI2017]遗忘的集合
  10. java 构造函数嵌套_java – spring – 构造函数注入和覆盖嵌套bean的父定义
  11. c语言不合法字符串常量,不合法的字符常量是什么
  12. android版usb转网线驱动,usb网线转换器驱动下载
  13. 如何开启BBR算法优化ss
  14. css图片悬停特效,使用CSS3实现图片悬停放大的特效
  15. 根据程序流程图化程序流图_程序流程图有什么用?简单实用的流程图模板大全...
  16. 肖邦 《第一钢琴协奏曲》E小调,OP.11 个人赏析
  17. 【7047】北京游:知乎、百度、豆瓣、新浪微博
  18. Python游戏开发,Python实现贪吃蛇小游戏与吃豆豆 附带源码
  19. 在c51语言的循环语句中 用作循环结束,在C51语言的循环语句中,用作循环结束条件判断的表达式为()...
  20. VS编译运行时出现exe文件无法打开的原因

热门文章

  1. 直击JDD大会农业论坛:京东数科进军智能养牛和智能水产养殖
  2. FPGA(VHDL)语音识别
  3. vue keep-live使用
  4. Sympy代数符号运算库
  5. WampServer安装和配置及ECShop环境搭建步骤
  6. 日本已开始提供10Gbps万兆光纤接入服务
  7. 【python turtle画图】太极图绘制实例
  8. 云里计算机,单词云里轰电脑版
  9. 又拍云 Redis 的改进之路
  10. 从AFN错误码中获取错误code和信息