ArcGIS中的土地利用变化分析

12
分享 2017-09-13
  本篇主要是针对矢量数据的分析。  
一、不同时期的土地利用矢量数据,如何分析其图形及属性变化?

土地利用图(左图为1993年,右图为2003年)

思路如下:



可以先对2个图层进行Union操作,然后在结果中新建一个字段,分析属性的变化。如果属性没变,就赋值为1,如果属性变化了就赋值为0。



操作步骤如下:   1、将两个图层的属性放到一个图层里。
使用GP工具Union(联合)。注意JoinAttribute,选择All,也就是结果中包含两个图层的所有字段。



结果属性表如下:



2、新建一个短整型字段。



3、使用字段计算器,比较两个字段的内容。如果属性没变,就赋值为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! )


如果想知道变化的图斑是从什么类型转为什么类型,可以新建一个文本型字段,将土地利用类型的两个字段赋值过去。



结果如下:



二、如何统计不同土地利用类型的面积?
  使用GP工具Summary Statistics(汇总统计数据),统计各类的总面积。



结果是一张统计表,如下:



三、如何统计不同区域各类土地利用类型的面积?
  可以使用GP工具Tabulate Intersection(交集制表)进行统计。




结果如下:



四、如何将行政区划的信息追加到土地利用数据中?

有一份行政区划矢量数据,希望知道每个图斑隶属于哪个行政区划。数据可以是行政区域,也可以是坡度及其他数据。

land.jpg


一个图斑可能会跨区域,如果图斑需要切分,一部分属于行政区划A,另一部分属于B,可以使用GP工具Intersect(相交),参数中的JoinAttribute,选择All。结果如下:

拆分.jpg


如果不希望图斑被切分,在属性表中记录属于A、B、C区,可以使用GP工具Spatial Join(空间连接)。

在区域名字段上右键,合并规则选择连接,其他设置默认就可以了。

SJ.png


结果如下:
 
re2.jpg



五、如何制作土地利用变化转移矩阵?
  对于分类后的土地利用栅格数据,在ENVI里很容易计算土地利用变化矩阵。针对矢量数据,我们可以在ArcGIS中统计数据,然后在Excel中制作矩阵。
思路如下:



1、对两期土地利用数据分别进行融合Dissolve(融合)操作,使每个土地利用类型仅有一条记录; 2、再对融合的结果进行Intersect(相交)操作,分析土地利用变化; 3、转出为Excel表; 4、在Excel中采用透视表进行统计。



模型如下:
针对上面的操作思路,制作了一个Model模型,转出结果为Excel。模型内容如下: 模型下载网址,链接:https://pan.baidu.com/s/1pKNHDeb 密码:n9hy

双击工具箱中此工具,界面如下:



结果为一个Excel表格,制作透视图方法如下:
1、点击数据透视图,然后选中所有区域的数据;




2、先勾选第一期的土地利用类型字段;




3、再将第二期的土地利用类型字段拖拽到透视图的第一行位置;




4、最后将面积字段拖拽到透视图的中间空白位置;




再修改下字头内容,添加下边框,土地利用转移矩阵就做好了。
文章来源:http://blog.csdn.net/ceibake/article/details/77924315

9 个评论

请问为什么我将两个图层执行联合操作之后,其中一年的classname数值变成了0或者-1,而不是您所做的结果
抱歉,我开始理解错了。你其他数据Union后,也是一列数据正常,另一列为0吗?还是就你现在用的这份数据是这样。
不错哦!
大侠,有时间多来逛逛啊~
裁剪102.tbx模型工具箱可以导入,但是双击该工具箱,无法找到工具箱里面的工具,我用的是Arcgis10.2,请问这是需要设置什么吗?
有可能是没有设置输入输出参数。工具上右键,编辑,换下数据,看能否运行。
两期土地利用类型数据矢量化后 图块面数不一致 请问是怎么回事呢
徐珂

徐珂 回复 叶恩

如果是面积大小不一致,可以找个范围,裁剪成一致的。
干活!

要回复文章请先登录注册