思路如下:
可以先对2个图层进行Union操作,然后在结果中新建一个字段,分析属性的变化。如果属性没变,就赋值为1,如果属性变化了就赋值为0。
操作步骤如下:
1、将两个图层的属性放到一个图层里。
使用GP工具Union(联合)。注意JoinAttribute,选择All,也就是结果中包含两个图层的所有字段。
Unoin可以将数据的属性合并到一起,同时,图斑不一样的区域也可以拆分开。见下图:
3、使用字段计算器,比较两个字段的内容。如果属性没变,就赋值为1,如果属性变化了就赋值为0。这里我们定义isSame()函数,在函数中比较字段值,相同就赋值1,不相同就赋值0。
Python代码如下:
Pre-Logic Script Code中写:
def isSame(x, y):
fieldA = str(x)
fieldB = str(y)
if fieldA == fieldB:
return 1
else:
return 0
变化中写:(比较的是Class_Name和Class_Name1两个字段)
isSame( !Class_Name! , !Class_Name_1! )
简单方法:
Python语法中比较字段值是否相等,可以用 == 。注意,中间不能有空格。所以表达式可以简化为:
!Class_Name! == !Class_Name_1!
如果想知道变化的图斑是从什么类型转为什么类型,可以新建一个文本型字段,将土地利用类型的两个字段赋值过去。
使用GP工具Summary Statistics(汇总统计数据),统计各类的总面积。
可以使用GP工具Tabulate Intersection(交集制表)进行统计。
有一份行政区划矢量数据,希望知道每个图斑隶属于哪个行政区划。数据可以是行政区域,也可以是坡度及其他数据。
一个图斑可能会跨区域,如果图斑需要切分,一部分属于行政区划A,另一部分属于B,可以使用GP工具Intersect(相交),参数中的JoinAttribute,选择All。结果如下:
如果不希望图斑被切分,在属性表中记录属于A、B、C区,可以使用GP工具Spatial Join(空间连接)。
在区域名字段上右键,合并规则选择连接,其他设置默认就可以了。
结果如下:
对于分类后的土地利用栅格数据,在ENVI里很容易计算土地利用变化矩阵。针对矢量数据,我们可以在ArcGIS中统计数据,然后在Excel中制作矩阵。
思路如下:
1、对两期土地利用数据分别进行融合Dissolve(融合)操作,使每个土地利用类型仅有一条记录;
2、再对融合的结果进行Intersect(相交)操作,分析土地利用变化;
3、转出为Excel表;
4、在Excel中采用透视表进行统计。
模型如下:
针对上面的操作思路,制作了一个Model模型,转出结果为Excel。模型内容如下:
模型下载网址,链接:https://pan.baidu.com/s/1pKNHDeb 密码:n9hy
关于土地利用转移矩阵模型,适用ArcMap 10.2及以上版本。如何打开模型,编辑模型,见下图操作。大家可以参考模型中的工具,自己来制作这个模型。模型构建参考帮助文档:在模型构建器中执行工具。
结果为一个Excel表格,制作透视图方法如下:
再修改下字头内容,添加下边框,土地利用转移矩阵就做好了。
关于制图及出图,可以参考ArcGIS制图及出图小技巧——以土地利用图为例。
更新了土地整理中的小案例,欢迎查看。