计算栅格数据像元的趋势值及检验值P

本文章主要展示如何计算出栅格数据上每个像素的变化率及检验值P。与上篇的栅格数据之间相关性的计算是类似的代码,以下代码供大家参考学习:
本代码是在matlab中运行的
其输入和输出的数据为tif格式的栅格数据

[a,R]=geotiffread('F:\SMC_V3.0\std_anlisyt\annual\x\FP_FVC_2013.8_class.tif_clp.tif');%先导入某个图像的投影信息,为后续图像输出做准确
info=geotiffinfo('F:\SMC_V3.0\std_anlisyt\annual\x\FP_FVC_2013.8_class.tif_clp.tif');
[m,n]=size(a);
years=8; %表示有多少年份需要做回归
data=zeros(m*n,years);
k=1;
for year=2013:2020 %起始年份
    %file=['D:\日降水插值\年prec',int2str(year),'.tif'];%注意自己的名字形式,这里使用的名字是年prec2000.tif,根据这个可修改
     file=strcat('F:\yz\FVC-time\2013-2020-FVC-time\Re-FVC-time\FVC_farm_perfect-clip\','FP_FVC_',int2str(year),'.8_class.tif_clp.tif');
    bz=importdata(file);
    bz=reshape(bz,m*n,1);
    data(:,k)=bz;
    k=k+1;
end
    xielv=zeros(m,n);p=zeros(m,n);
for i=1:length(data)
    bz=data(i,:);
    if max(bz)>0 %注意这是进行判断有效值范围,如果有效范围是-11,则改成max(bz)>-1即可
        bz=bz';
        X=[ones(size(bz)) bz];
        X(:,2)=[1:years]';
        [b,bint,r,rint,stats] = regress(bz,X);
        pz=stats(3);
        p(i)=pz;
        xielv(i)=b(2);
    end
end
name1='F:\yz\YZ-Date\process\Perfect_FVC\sensonal\slope\summer_slope.tif';
name2='F:\yz\YZ-Date\process\Perfect_FVC\sensonal\slope\summer_P.tif';
geotiffwrite(name1,xielv,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);
geotiffwrite(name2,p,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);
%一般来说,只有通过显著性检验的趋势值才是可靠的

一般来说,当P大于0.05,其结果是的趋势值是可靠显著的。通过结合检验值和趋势值可以建立一些趋势分级。显著(轻度)增加(减少)。

长路漫漫…
唯有坚持…

如果有问题的小伙伴,可以加入知识星球或者QQ群,我们一起探究世界~
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低调的大耳朵图图

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值