GEE代码实例教程详解:NDVI时间序列趋势分析

简介

在本篇博客中,我们将使用Google Earth Engine (GEE) 对MODIS NDVI数据进行时间序列趋势分析。通过分析2001年至2021年的NDVI数据,我们可以了解植被覆盖度随时间的变化趋势。

背景知识

MODIS数据集

MODIS(Moderate Resolution Imaging Spectroradiometer,中分辨率成像光谱辐射计)数据集是NASA提供的高分辨率遥感数据集,广泛应用于植被、水文和气候研究。

时间序列趋势分析

时间序列趋势分析是一种统计方法,用于检测数据集中的趋势变化,对于理解长期环境变化非常重要。

完整代码

// 定义研究区域的坐标点
var cor = [
  [44.12939360774617, 24.119400388422655],
  [64.87158110774617, 24.119400388422655],
  [64.87158110774617, 39.70103164846671],
  [44.12939360774617, 39.70103164846671],
  [44.12939360774617, 24.119400388422655]
];

// 创建多边形区域
var roi = ee.Geometry.Polygon(cor);

// 将地图中心设置为研究区域
Map.centerObject(roi);

// 加载MODIS NDVI数据集
var modis = ee.ImageCollection("MODIS/061/MOD13A2")
  .select('NDVI')
  .filterDate('2001', '2021');

// 定义函数以添加时间带作为单独的波段
function ndvi_time(img) {
  var time = img.metadata('system:time_start').divide(1e9);
  return img.addBands(time)
    .copyProperties(img, img.propertyNames());
}

// 应用函数以创建时间波段
var modis_time = modis.map(ndvi_time);

// 使用线性回归分析计算斜率
var linear_reg = modis_time.select('system:time_start', 'NDVI')
  .reduce(ee.Reducer.linearRegression())
  .select('coefficients');

// 添加线性回归图层
Map.addLayer(linear_reg.clip(roi), {palette: ['red', 'black', 'green']}, 'linear_regression', false);

// 使用敏感性斜率分析计算趋势
var sen_slope = modis_time.select('system:time_start', 'NDVI')
  .reduce(ee.Reducer.sensSlope())
  .select('slope');

// 添加敏感性斜率图层
Map.addLayer(sen_slope.clip(roi), {palette: ['red', 'black', 'green']}, 'sensitivity_slope', false);

// 导出敏感性斜率图像到Google Drive
Export.image.toDrive({
  image: sen_slope.clip(roi),
  description: 'sensitivity_slope',
  scale: 1000,
  region: roi,
  maxPixels: 1e13,
  crs: 'EPSG:4326'
});

// 使用曼-肯德尔趋势检验
var mannkendall = modis_time.select('NDVI')
  .reduce(ee.Reducer.kendallsCorrelation());

// 添加曼-肯德尔图层
Map.addLayer(mannkendall.select('NDVI_tau').clip(roi), {palette: ['red', 'black', 'green']}, 'mann_kendall', false);

// 使用FORMA趋势分析
var forma = modis_time.select('NDVI')
  .formaTrend();

// 添加FORMA趋势图层
Map.addLayer(forma.clip(roi), [], 'forma_trend', false);

代码详解

1. 定义研究区域

创建一个多边形区域roi,用于限定分析的地理范围,并设置地图中心。

2. 加载MODIS NDVI数据集

加载MODIS NDVI数据集,并根据时间范围筛选数据。

3. 添加时间波段

定义ndvi_time函数,为每张图像添加一个表示时间的波段。

4. 线性回归分析

使用linearRegression方法计算NDVI随时间变化的线性趋势。

5. 敏感性斜率分析

使用sensSlope方法计算NDVI变化的敏感性斜率。

6. 曼-肯德尔趋势检验

使用kendallsCorrelation方法进行非参数的趋势检验。

7. FORMA趋势分析

使用FORMA算法计算NDVI的趋势。

8. 导出数据

将敏感性斜率结果导出到Google Drive。

结论

本教程展示了如何使用GEE对MODIS NDVI数据进行时间序列趋势分析。通过不同的统计方法,我们可以评估植被覆盖度的长期变化趋势。

进一步探索

GEE提供了多种工具和方法来进行时间序列分析和环境监测。在后续的教程中,我们将继续探索GEE在不同领域的应用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1-3分钟爆款视频素材在哪找啊?这9个热门爆款素材网站分享给你

在如今快节奏的时代,短视频已成为吸引观众注意力的黄金手段。然而,要制作出1-3分钟的爆款视频,除了创意和剪辑技巧外,选择合适的素材至关重要。那么,哪里可以找到那些能让你的视频脱颖而出的爆款素材呢?不用…

顶会FAST24最佳论文|阿里云块存储架构演进的得与失-1.引言

今年早些时候,2月份举办的全球计算机存储顶会USENIX FAST 2024,最佳论文来自阿里云,论文名称《What’s the Story in EBS Glory: Evolutions and Lessons in Building Cloud Block Store》 ,论文详尽地探讨了阿里云在过去十年中开…

ASAN排查程序中内存问题使用总结

简介 谷歌有一系列Sanitizer工具,可用于排查程序中内存相关的问题。常用的Sanitizer工具包括: Address Sanitizer(ASan):用于检测内存使用错误。Leak Sanitizer(LSan):用于检测内存…

YOLOv9:一个关注信息丢失问题的目标检测

本文来自公众号“AI大道理” 当前的深度学习方法关注的是如何设计最合适的目标函数,使模型的预测结果最接近地面的真实情况。同时,必须设计一个适当的体系结构,以方便获取足够的预测信息。 现有方法忽略了一个事实,即输入数据在逐…

docker安装以及简单使用

如何安装安装 yum install -y yum-utils yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 列出可用的版本 yum list docker-ce.x86_64 --showduplicates | sort -r yum install -y docker-ce-23.0.6-1.el8 #开机自动启动 …

Yolov10训练,转化onnx,推理

yolov10对于大目标的效果好,小目标不好 一、如果你训练过yolov5,yolov8,的话那么你可以直接用之前的环境就行 目录 一、如果你训练过yolov5,yolov8,的话那么你可以直接用之前的环境就行 二、配置好后就可以配置文件…

DBA 数据库管理

数据库:存储数据的仓库 数据库服务软件: 关系型数据库: 存在硬盘 ,制作表格的 数据库的参数 [rootmysql50 ~]# cat /etc/my.cnf.d/mysql-server.cnf 主配置文件 [mysqld] datadir/var/lib/mysql 存放数据库目录…

黑马点评商户缓存查询作业——Redis中查询商户类型

记录下自己在gpt帮助下完成的第一个需求~~~ 1. ShopTypeController 2. IShopTypeService 3. ShopTypeServiceImpl(模仿ShopServiceImpl来写的) 一共分为“1.redis中查询缓存”→“2.判断缓存是否存在,存在直接返回”→“3.缓存不存在则去查数…

sql盲注

文章目录 布尔盲注时间盲注 布尔盲注 介绍:在网页只给你两种回显的时候是用,类似于布尔类型的数据,1表示正确,0表示错误。 特点:思路简单,步骤繁琐且麻烦。 核心函数: length()函数substr()函…

【MYSQL】如何解决 bin log 与 redo log 的一致性问题

该问题问的其实就是redo log 的两阶段提交 为什么说redo log 具有崩溃恢复的能力 MySQL Server 层拥有的 bin log 只能用于归档,不足以实现崩溃恢复(crash-safe),需要借助 InnoDB 引擎的 redo log 才能拥有崩溃恢复的能力。所谓崩…

【AutoencoderKL】基于stable-diffusion-v1.4的vae对图像重构

模型地址:https://huggingface.co/CompVis/stable-diffusion-v1-4/tree/main/vae 主要参考:Using-Stable-Diffusion-VAE-to-encode-satellite-images sd1.4 vae 下载到本地 from diffusers import AutoencoderKL from PIL import Image import torch import to…

第二证券:资金抱团“高股息”,超三成A股年内创历史新低!

A股商场行情冰火两重天。 “预制菜榜首股”跌破发行价 7月8日,味知香盘中最低跌至19.26元/股,股价跌破发行价,并创前史新低。揭露资料显现,公司是集研发、生产、销售为一体的半成品菜企业,现在具有8大产品系列&#…

九科bit-Worker RPA 内容学习

简介: 什么是RPA? RPA(Robotic Process Automation,机器人流程自动化)本质上是一种“AI数字员工”,针对企业中存在的大批量、重复性、机械化人工操作,通过模拟人的工作流程使之实现自动化。 b…

Java | Leetcode Java题解之第219题存在重复元素II

题目&#xff1a; 题解&#xff1a; class Solution {public boolean containsNearbyDuplicate(int[] nums, int k) {Set<Integer> set new HashSet<Integer>();int length nums.length;for (int i 0; i < length; i) {if (i > k) {set.remove(nums[i - …

【小鸡案例】表单focus和blur事件用法

input中有2个属性&#xff0c;一个是focus获取焦点&#xff0c;一个是blur失去焦点。获取焦点就是我们点击输入框时输入框被选中&#xff1b;失去焦点即点击输入框以外的区域&#xff0c;今天就用这两种属性做一个点击输入框的动画效果。 先写个输入框&#xff0c;代码如下&am…

【leetcode周赛记录——405】

405周赛记录 #1.leetcode100339_找出加密后的字符串2.leetcode100328_生成不含相邻零的二进制字符串3.leetcode100359_统计X和Y频数相等的子矩阵数量4.leetcode100350_最小代价构造字符串 刷了一段时间算法了&#xff0c;打打周赛看看什么水平了 #1.leetcode100339_找出加密后的…

源码层面学习动态代理

前言 在Java中&#xff0c;动态代理主要分为CGLIB动态代理和JDK动态代理&#xff0c;我们从Hutool的源码也可一窥这两者的使用方式和区别&#xff1b; CGLIB动态代理 JDK动态代理 使用场景 CglibInterceptor和JdkInterceptor都是Hutool提供的代理工具&#xff0c;用于在运行时…

Redis存储原理与数据模型

Redis存储结构 存储转换 redis-value编码 string int&#xff1a;字符串长度小于等于20切能转成整数raw&#xff1a;字符串长度大于44embstr&#xff1a;字符串长度小于等于44 list quicklist&#xff08;双向链表&#xff09;ziplist&#xff08;压缩链表&#xff09; hash …

【智能算法改进】多策略改进的蜣螂优化算法

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】蜣螂优化算法&#xff08;DBO&#xff09;原理及实现 2.改进点 混沌反向学习初始化 采用 Pwlcm 分段混沌映射&#xff0c;由于 Pwlcm 在其定义区间上具有均匀的密度函数&#xff0c;在特定的…

1.从入门到环境搭建及程序基础

目录 1.1 C督学营开营 1 老师介绍 2 学习常见问题 3 如何学习课程 1.2 程序员职业发展方向 1 前端 2 后端 3 网络安全 1.3 Windows 的 CLion 开发环境安装 1 C 语言的由来 2 安装 MinGW 编译器 3 安装 CLion 开发环境 4 运行&试用 CLion 5 新建项目​ ​6 激…