ArcGIS——模型构建器

模型构建器:是用来创建、编辑和管理模型的应用程序。模型是将一系列地理处理工具串联在一起的工作流,它将其中一个工具的输出作为另一个工具的输入。也可以将模型构建器看成是用于构建工作流的可视化编程语言。如下图所示就是一个简单的工作流:

ArcGIS——模型构建器_第1张图片

下面介绍一下如何在ArcMap中创建一个新模型:

1.ArcMap右键选择标准工具,选择工具条上的模型构建器按钮

2.右键现有工具箱,选择新建→模型来创建一个具有默认名称的模型,并打开该模型以执行编辑。

ArcGIS——模型构建器_第2张图片

打开模型构建界面之后,可以在ArcMap的工具箱中拖入相应的工具来使用。因此,我们可以将需要进行大量重复性的操作进行一个打包和集成。创建一个统一的工作流,这样我们只需要加入自己的数据便可以让系统一步一步按我们设置的流程步骤来执行,可以省去很多麻烦。

ArcGIS——模型构建器_第3张图片

添加需要的工具之后,我们还需要添加变量(就是我们需要处理的数据)。通过插入→创建变量,我们可以添加各种类型的变量,这里我们主要是对图层数据进行处理,所以可以添加shapefile格式的变量,添加变量之后,通过连接工具,将变量连接到相应的工作流中。

ArcGIS——模型构建器_第4张图片ArcGIS——模型构建器_第5张图片

 通过双击变量可以添加需要处理的图层文件。添加进来之后,整个模型就会变成如图所示,系统会对不同的部分用不同的颜色进行显示。之后我们可以对模型进行验证和运行,再对输出的结果进行检查,看是否达到预期的效果。然后对输出结果进行下一步的处理,直到整个模型创建毕。 

ArcGIS——模型构建器_第6张图片

上一步我们是对实验数据进行的测试,等模型构建完成之后,我们还需要将实验数据和中间数据进行删除,然后对变量进行模型参数的设置。如图所示,通过右键变量,选择模型参数。选择之后变量右上角就会出现一个字母P。之后我们就可以对不同的数据进行该模型的处理了。

ArcGIS——模型构建器_第7张图片

ArcGIS——模型构建器_第8张图片

如下图所示:左边这个是没有设置模型参数的情况,我们无法从外部选择要处理的数据,右边是设置了模型参数之后的运行界面,我们可以添加需要处理的数据,传入到模型内部进行处理。

ArcGIS——模型构建器_第9张图片ArcGIS——模型构建器_第10张图片

接下来介绍一下生态红线标注的一个案例。

要求:生态红线范围数据与国家下发疑似图斑层相交面积大于10%的标注S。

设计思路:

1.先计算疑似图斑的面积TBMJ01。!Shape.area!

2.然后与生态红线范围数据进行相交处理,得到相交部分,之后用第一步的结果将相交部分进行擦除,计算擦除后的图斑面积TBMJ02,然后将字段TBMJ02连接到第一步的结果中。(逻辑关系)

3.添加字段STHX_1字段:(TBMJ01-TBMJ02)/TBMJ01>10%标S。

4.判断STHX_HSLX字段与STHX_1是否相等:相同标Y,不同标N。

ArcGIS——模型构建器_第11张图片 逻辑关系图

       S1为国家下发疑似图斑的面积,S2为擦除相交部分之后的面积。这里主要讨论一下几种情况。最左边这一列是一般情况,可以通过条件判断是否标S。中间这一列是生态红线范围与国家下发图斑无相交的情况,这一种情况下算出的结果是0,小于10%,不标S,同样与实际相符。最后一列是相交部分与国家下发图斑完全重合的情况,计算结果为1,大于10%,标S,符合实际情况(在这里需要注意一下,因为我们使用了擦除工具,擦除处理之后这种情况下,整个图斑就会丢失,所以要通过字段连接工具,将字段追加到原图层上再进行计算)。因此,在创建模型时一定要确保逻辑关系上准确无误,还要考虑多种情况,进行多次测试之后才能拿去使用。

模型构建结构图如下:

ArcGIS——模型构建器_第12张图片

运行结果:

 ArcGIS——模型构建器_第13张图片

ArcGIS——模型构建器_第14张图片ArcGIS——模型构建器_第15张图片

        在进行模型构建的过程中,最关键的环节还是字段计算器。因为我们所做的工作无非是现有工具的一个调用和集成,这些操作内部如何实现的我们不需要关注。其重点在于如何对处理后的数据进行整理。字段计算器可以实现字段的计算、赋值,还可以通过代码编写相应的函数,来实现所需要的功能。

ArcGIS——模型构建器_第16张图片

ArcGIS——模型构建器_第17张图片

 VB函数,通过判断语句实现核查结果字段的标注。

dim a
If([STHX_1]="S" and [STHX_HSLX]="S") Then
a="Y"
elseif([STHX_1]="S" and [STHX_HSLX]<>"S") Then
a="N"
elseif([STHX_1]<>"S" and [STHX_HSLX]="S") Then
a="N"
else
a=""
end if

 后续会给出该模型,供大家参考学习!

(2条消息) ArcGIS模型构建器.zip-其它文档类资源-CSDN下载

你可能感兴趣的:(ArcGIS模型构建器,arcgis)