基于Matlab计算栅格数据Hurst指数和未来趋势

​各位同学们好,今天分享的基于Matlab计算栅格数据Hurst指数和未来趋势。如果您需要下载或处理遥感数据等方面的帮助,私信或评论。

一、Hurst指数

Hurst指数是一种用于描述未来短时间内变化趋势可持续性的指标,可以在分析年际变化特征方面提供更好的帮助。该指数由英国水文专家Hurst提出,并在地质、遥感和水文等领域得到广泛应用。其中,研究使用了重标极差分析法(R/S)来计算Hurst指数,并应用于分析未来短期变量的变化趋势。这一方法的基本原理包括以下几个部分。

H=0.5时,表示序列是无一致性随机序列,即无法判断未来的趋势。

当0.5<H<1时,表明时间序列存在长期记忆性,即未来的趋势与现在的趋势一致。

当0≤H<0.5时,表示时间序列是不一致的,即未来的趋势与现在的趋势不一致。

二、变化趋势

一般将Slope和Hurst指数叠加得出变量在未来的变化趋势,即

三、Matlab代码

1. Hurst指数计算

clc
clear
[aa,R]=readgeoraster('E:\MOD13A3\qilianshan\2000.tif');
info=geotiffinfo('E:\MOD13A3\qilianshan\2000.tif');
ndvisum=zeros(size(aa,1)*size(aa,2),21);
for year=2000:2020filename=strcat('E:\MOD13A3\qilianshan\',int2str(year),'.tif');ndvi=importdata(filename);ndvi=reshape(ndvi,size(ndvi,1)*size(ndvi,2),1);ndvisum(:,year-1999)=ndvi;
end
hsum=zeros(size(aa,1),size(aa,2))+NaN;
for kk=1:size(ndvisum,1)ndvi=ndvisum(kk,:);if min(ndvi)>0ndvi_cf=[];for i=1:length(ndvi)-1ndvi_cf1=ndvi(i+1)-ndvi(i);ndvi_cf=[ndvi_cf,ndvi_cf1];endM=[];for i=1:size(ndvi_cf,2)M1=mean(ndvi_cf(1:i));M=[M,M1];endS=[];for i=1:size(ndvi_cf,2)S1=std(ndvi_cf(1:i))*sqrt((i-1)/i);S=[S,S1];endfor i=1:size(ndvi_cf,2)for j=1:ider(j)=ndvi_cf(1,j)-M(1,i);cum=cumsum(der);RR(i)=max(cum)-min(cum);endendRS=S(2:size(ndvi_cf,2)).\RR(2:size(ndvi_cf,2));T=[];for i=1:size(ndvi_cf,2)T1=i;T=[T,T1];endlag=T(2:size(ndvi_cf,2));                  g=polyfit(log(lag/2),log(RS),1);                H=g(1);hsum(kk)=H;clear derend
end
geotiffwrite('E:\MOD13A3\qilianshan\Hurst\NDVI_Hurst指数.tif',hsum,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);
disp('ok!')

2. 未来趋势检验

2.1 Sen趋势检验

%sen趋势
clear;
clc;
[a,R]=geotiffread('E:\MOD13A3\qilianshan\2000.tif');%先导入投影信息
info=geotiffinfo('E:\MOD13A3\qilianshan\2000.tif');
[m,n]=size(a);
cd=2020-2000+1;%根据自己的数据时间跨度修改
datasum=zeros(m*n,cd)+NaN; 
k=1;
for year=2000:2020 %起始年份filename=['E:\MOD13A3\qilianshan\',int2str(year),'.tif'];data=importdata(filename);data=reshape(data,m*n,1);datasum(:,k)=data;k=k+1;
end
result=zeros(m,n)+NaN;
for i=1:size(datasum,1)data=datasum(i,:);if min(data)>-1 %根据自己数据有效值修改,我这里的有效值必须大于-1valuesum=[];for k1=2:cdfor k2=1:(k1-1)cz=data(k1)-data(k2);jl=k1-k2;value=cz./jl;valuesum=[valuesum;value];endendvalue=median(valuesum);result(i)=value;end
end
filename=['E:\MOD13A3\qilianshan\Hurst\NDVI_sen.tif'];
geotiffwrite(filename,result,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag)

2.2 未来趋势计算

clc
clear
[a,R]=readgeoraster('E:\MOD13A3\qilianshan\Hurst\去Nodate\NDVI_HURST.TIF');  
info=geotiffinfo('E:\MOD13A3\qilianshan\Hurst\去Nodate\NDVI_HURST.TIF');
trend=importdata('E:\MOD13A3\qilianshan\Hurst\去Nodate\NDVI_SEN.TIF');
h=importdata('E:\MOD13A3\qilianshan\Hurst\去Nodate\NDVI_SEN.TIF');
[m,n]=size(trend);
result=zeros(m,n)+6;  % 6是未通过显著性检验
for i=1:mfor j=1:nif trend(i,j)<1&&trend(i,j)>-1   % 有趋势的像元if trend(i,j)>0&&h(i,j)<1&&h(i,j)>0.5  result(i,j)=1;   % 增-增  elseif trend(i,j)>0&&h(i,j)<0.5&&h(i,j)>0result(i,j)=2;   % 增-减 elseif trend(i,j)<0&&h(i,j)<1&&h(i,j)>0.5 result(i,j)=3;   % 减-减 elseif trend(i,j)<0&&h(i,j)<0.5&&h(i,j)>0 result(i,j)=4;   % 减-增 elseresult(i,j)=5;   % 随机endend   end
end
geotiffwrite('E:\MOD13A3\qilianshan\Hurst\NDVI未来趋势.tif',result,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);
disp('ok!')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/422477.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《文苑》文学艺术文化期刊投稿邮箱投稿方式

《文苑》杂志是国家新闻出版总署批准的正规期刊&#xff0c;本刊致力于中华优秀传统文化、文化旅游、文学艺术、哲学社会科学等方面的理论和实践研究&#xff0c;集理论性、艺术性、指导性于一体&#xff0c;是广大文化、哲学、社会科学工作者交流科研成果、传递学术思想的重要…

Python Tornado 实现SSE服务端主动推送方案

一、SSE 服务端消息推送 SSE 是 Server-Sent Events 的简称&#xff0c; 是一种服务器端到客户端(浏览器)的单项消息推送。对应的浏览器端实现 Event Source 接口被制定为HTML5 的一部分。相比于 WebSocket&#xff0c;服务器端和客户端工作量都要小很多、简单很多&#xff0c…

【网络安全 -> 防御与保护】专栏文章索引

为了方便 快速定位 和 便于文章间的相互引用等 作为一个快速准确的导航工具 网络安全——防御与保护 &#xff08;一&#xff09;.信息安全概述

VSCode插件 —— Cody AI (免费AI助手!)

之前介绍过一款 阿里云免费的AI开发工具——通义灵码 TONGYI Lingma 本文再推荐一个可以极大提高开发前端开发效率的工具 —— Cody AI &#xff08;Sourcegraph&#xff09;&#xff0c;同样是免费的&#xff01; 不过&#xff0c;使用Cody AI需要有github 或 Google 、 git…

xshell配置隧道转移规则

钢铁知识库&#xff0c;一个学习python爬虫、数据分析的知识库。人生苦短&#xff0c;快用python。 xshell是什么 通俗点说就是一款强大ssh远程软件&#xff0c;可以方便运维人员对服务器进行管理操作&#xff0c;功能很多朋友们自行探索&#xff0c;今天只聊其中一个功能点那…

CentOs7 安装Mysql(5.7和8.0版本)密码修改跳过 超详细教程

CSDN 成就一亿技术人&#xff01; 今天出一期Centos下安装Mysql&#xff08;详细教程&#xff09;包括数据库密码跳过修改 CSDN 成就一亿技术人&#xff01; 目录 1.获取安装包 2.安装程序 安装下载的rpm包 查看安装包 修改5.7版本&#xff08;重要&#xff09; 安装M…

Vue3+ElementUI 多选框中复选框和名字点击方法效果分离

现在的需求为 比如我点击了Option A &#xff0c;触发点击Option A的方法&#xff0c;并且复选框不会取消勾选&#xff0c;分离的方法。 <el-checkbox-group v-model"mapWork.model_checkArray.value"> <div class"naipTypeDom" v-for"item …

常用芯片学习——HC245芯片

HC245三态输出八路总线收发器 使用说明 这些八路总线收发器专为数据总线之间的异步双向通信而设计。控制功能实现可更大限度地减少外部时序要求。根据方向控制 (DIR) 输入上的逻辑电平&#xff0c;此类器件将数据从 A 总线发送至 B 总线&#xff0c;或者将数据从 B 总线发送至…

UCIE协议介绍--芯粒间互联标准

UCIE协议介绍--芯粒间互联标准 1 背景2 UCIE协议介绍2.1 协议层2.2 适配层2.3 物理层2.4 D2D接口 3 Transmission3.1 SideBand数据包3.2 SideBand包格式3.2.1 MRd/Mwr/CfgRd/CfgWr3.2.2 Completion3.2.3 Message 3.3 FDI接口信号 4 链路训练4.1 PHY LSM状态介绍 1 背景 为什么…

Spring boot项目java bean和xml互转

Spring boot项目实现java bean和xml互转 项目场景&#xff1a;互转方法使用jackson进行互转使用jaxws进行xml与bean的互转 搞定收工&#xff01; 项目场景&#xff1a; 工作中需要给下游第三方收费系统做数据挡板&#xff0c;由于下游系统使用的是soap webservice,里面涉及各种…

【开源】基于JAVA语言的陕西非物质文化遗产网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 设计目标2.2 研究内容2.3 研究方法与过程2.3.1 系统设计2.3.2 查阅文献2.3.3 网站分析2.3.4 网站设计2.3.5 网站实现2.3.6 系统测试与效果分析 三、系统展示四、核心代码4.1 查询民间文学4.2 查询传统音乐4.3 增改传统舞…

基于springboot+vue的网上点餐系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 背景和意…