||
基于Matlab的土地利用转移矩阵计算
土地利用转移矩阵可以通过ARCGis平台计算,需要栅格转面等一系列操作,基于Matlab的方法则更为方便。
如有疑问或者获取软件、案例数据,请加QQ群790411341
1数据准备
需要两期土地利用类型图,tiff格式,分辨率相同,value值分类一致
2.对于value分类不一致,或者分类过多,需要整合的tiff,采用GIS中的重分类中的查找表工具,将value值替换成新的分类过的value,需要添加新的分类字段,以替换原先value。
3.代码
代码来自https://www.jianshu.com/p/ba7ae918ffd1, 该作者写了很多使用代码,建议收藏。
对代码进行了部分修饰性说明,如下:
[a,R]=geotiffread('C:\Users\ASUS\Desktop\土地利用转移\1980.tif');%先导入纬度数据
info=geotiffinfo('C:\Users\ASUS\Desktop\土地利用转移\1980.tif');
data1990=importdata('C:\Users\ASUS\Desktop\土地利用转移\1980.tif');%土地类型分别是123456,假设共有n类
data2000=importdata('C:\Users\ASUS\Desktop\土地利用转移\2018.tif');
zy=zeros(size(data1990,1),size(data1990,2))
counsum_value=[];
for i=1:7%这里的7为总的类型数,需要修改
sy=find(data1990==i);
countsum=[];
for j=1:7%这里的7为总的类型数,需要修改
sy1=find(data2000==j);
sy_inter=intersect(sy,sy1);
countsy=length(sy_inter);
countsum=[countsum,countsy];
zy(sy_inter)=i*10+j;%得到转移前后的量,比如i=1;j=2,则结果是12,表示由1转移到2
end
counsum_value=[counsum_value;countsum];
end
xlswrite('C:\Users\ASUS\Desktop\土地利用转移\土地利用转移矩阵.xlsx',counsum_value)
filename='土地利用空间转移分布图.tif';
geotiffwrite(filename,zy,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-28 02:45
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社