你会用ArcGIS的Modelbuilder吗?如果不会那现在来学吧。Modelbuilder是如此的强大,以至于不懂
Modelbuilder相当于你的
ArcGIS基本上是处于初级阶段。那什么是
Modelbuilder呢?
Modelbuilder也叫
模型构建器,是一个用来创建、编辑和管理模型的应用程序。模型是将一系列地理处理工具串联在一起的工作流,它将其中一个工具的输出作为另一个工具的输入。也可以将模型构建器看成是用于构建工作流的可视化编程语言。也就是说,如果你不会arcpy,那么也可以运用
Modelbuilder来实现其大部分功能。并且,
Modelbuilder是个可视化工具,可以清晰的列出其运行逻辑,使用比较方便。
现在,让我以一个案例来讲解Modelbuilder吧!
1、案例分析方法
在进行某项研究时,要对用地的破碎度进行分析。如表1所示,破碎度计算涉及四项指标:斑块数量(N)、平均斑块面积(P)、斑块面积标准差(I)和斑块聚集度(G)。相关解释见图1,即斑块数量越多、平均面积越小、板块面积标准差越大、斑块聚集度越低说明该类型土地呈现的空间景观格局越细碎、分散,反之越集聚。
表1:用地破碎度计算指标
图1 用地破碎度内涵解释
2、数据计算难点
(1)计算量大
:该研究对象有277个村,每个村有若干个斑块,数据分析量较大。
(2)
过程
复杂:特别是斑块聚集度(公式4),其计算较为繁琐。
3、解决策略
公式1-3的计算都较为简单,可直接进行数学计算,但公式4较为复杂。
经分析后,公式4可以用图2的步骤来实现。这样一来,四个步骤就可以用arcgis来一步一步实现。这是一个机械性的、重复性的工作。我们以前讲过,该类型工作可以交由计算机来自动实现。正好,ArcGIS提供的强大的Modelbuilder,正是用来解决这一问题的。
图2 对公式4的解析
4、
Modelbuilder建模
对于公式4,
首先
计算每个斑块的空间重心,可以用要素转点工具。
然后
,以这个点为圆心绘制与斑块同等面积大小的圆,其半径为R=(S/π)^(1/2),这里运用到添加字段及计算字段工具。
随后
,计算最近点的距离L,这里用到的工具是近邻分析。由于我们需要对277个村进行计算,因此这里需要增加一个迭代步骤(图3),以便一个村一个村的计算。另外,建议每个村的数据保存在文件地理数据库中(.gdb),这样我们就可以设置以村名为文件名自动保存要素文件
(图4)。
至此
,运行整个模型后(图5),我们得到了公式4中要求的斑块面积A,半径R,最近点距离L。
最后一步
,我们要
计算每个村的G值。但有个问题,每个要素类中只有单个斑块的A、R、L,有多少个斑块就有多少条记录。我们需要对这些记录进行求和计算,即
汇总每个村中所有斑块的面积与半径R的乘积后,除以每个村斑块的面积,并将最终值(G值)录入对应的村(图6)。如果人工去计算,显然不可行,并且也没合适的工具可用,我们只有用python编程来解决。
图3 迭代要素类
图4 保存要素类文件名为变量name
图5 G值计算模型
图6 计算G值