matlab在生态遥感中的应用遥感

基于matlab的多期栅格数据重心转移分析

2020-05-11  本文已影响0人  画长空_yin

在生态分析中,重心转移是常见的一种分析方法,它表明了区域某个要素集中分布的变化,本文提供一套实现多期栅格数据重心转移的分析方法。

经纬度的构建

(1)首先在我们在arcgis中加载我们的图像,并在符号系统中显示出来Nodata值,如下图所示


微信截图_20200511233000.png

(2)进入到目录Catalog中创建一个点图层,并将地理投影设置成WGS1984即可
(3)然后对点图层进行编辑,随意在图上打点,注意点要覆盖到整个图像,同时四周也都要有点,保证图像范围之外的四周都有点的存在,如下


微信截图_20200511233616.png
(4)停止编辑,在点图层中增加经纬度表头,浮点型,计算出经纬度的值
(5)利用自然邻近法插值经度和纬度值,插值时设置投影,范围和栅格分析与图像保持一致。

代码实现

在做好必备的经纬度后,我们可以利用matlab来对多期的栅格数据的重心进行快速而简单的计算。具体代码如下:

@ author yinlichang3064@163.com
lon=importdata('D:\sjy\lon.tif');
lat=importdata('D:\sjy\lat.tif');
vsum=[];
for year=2000:2015
    filename=['D:\sjy\GLASS-LAI_modis_1km_tif_mean_clip\GLASS_LAI',int2str(year),'.tif'];
    data=importdata(filename);
    sy=find(data>0); % 注意下有效值范围
    value=[data(sy),lon(sy),lat(sy)];
    x1=sum(value(:,1).*value(:,2))./sum(value(:,1));% 经度
    x2=sum(value(:,1).*value(:,3))./sum(value(:,1));% 纬度度
    v=[year,x1,x2];
    vsum=[vsum;v];
end
csvwrite('D:\sjy\重心.csv',vsum)
%绘制图
plot(vsum(:,2),vsum(:,3))

如有更多需求可查看个人介绍。

上一篇下一篇

猜你喜欢

热点阅读