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.mzph.cn/diannao/43133.shtml

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

相关文章

Websocket在Java中的实践——整合Rabbitmq和STOMP

大纲 Rabbitmq开启STOMP支持 服务端依赖参数参数映射类配置类逻辑处理类 测试测试页面Controller测试案例 在《Websocket在Java中的实践——STOMP通信的最小Demo》一文中,我们使用enableSimpleBroker启用一个内置的内存级消息代理。本文我们将使用Rabbitmq作为消息代…

【Unity2D 2022:Particle System】添加拾取粒子特效

一、创建粒子特效游戏物体 二、修改粒子系统属性 1. 基础属性 (1)修改发射粒子持续时间(Duration)为3s (2)取消勾选循环(Looping) (2)修改粒子存在时间&…

SQL性能优化策略

发现问题 通过业务监控发现慢SQL或接口响应延迟。利用性能分析工具定位问题。 定位SQL语句 使用监控工具确定影响性能的SQL语句和表。 SQL查询变慢原因 索引失效:查询未使用索引或索引效率低。多表连接:JOIN操作导致性能下降。查询字段过多&#xf…

Monitor结构解读之EntryQ和WaitSet的区别

EntryQ(或_EntryList)和WaitSet(或_WaitSet)在Java的monitor机制中扮演着不同的角色,它们之间的主要区别体现在以下几个方面: 1. 等待原因和机制 EntryQ(或_EntryList)&#xff1a…

面试常考题---128陷阱(详细)

1.问题引入 分别引入了int和Integer变量,并进行比较 int b 128; int b1 128;Integer d 127; Integer d1 127;Integer e 128; Integer e1 128;System.out.println(bb1); System.out.println(dd1); System.out.println(ee1); System.out.println(e.equals(e1)…

刷题(day01)

1、leetcode485.最大连续1的个数 给定一个二进制数组 nums , 计算其中最大连续 1 的个数。 示例 1: 输入:nums [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.…

Nginx 高效加速策略:动静分离与缓存详解

在现代Web开发中,网站性能是衡量用户体验的关键指标之一。Nginx,以其出色的性能和灵活性,成为众多网站架构中不可或缺的一部分。本文将深度解析如何利用Nginx实现动静分离与缓存,从而大幅提升网站加载速度和响应效率。 理解动静分…

昇思第18天打卡|ShuffleNet图像分类

ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端,所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操作:Pointw…

张大哥笔记:你一旦开窍,就会发现遍地都是钱

大家有没有发现,穷人总是追逐眼前的利益,总是在追着钱跑,却总是赚不到钱。而富人有着长远的见识,追着问题跑,最后却赚的盆满钵满。 我们听过这样一句话,钱不是赚来的,而是帮助别人解决问题后给你…

【计算机】同步/异步

同步/异步 在计算机科学和编程中,“同步”(Synchronization)是一种机制,用于协调不同进程或线程之间的操作,以避免竞态条件(race conditions)、死锁(deadlocks)和其他并…

Qt/C++编写地图应用/离线地图下载/路径规划/轨迹回放/海量点/坐标转换

一、前言说明 这个地图组件写了很多年了,最初设计的比较粗糙,最开始只是为了满足项目需要,并没有考虑太多拓展性,比如最初都是按照百度地图写死在代码中,经过这几年大量的现场实际应用,以及大量的用户提出…

Django 新增数据 save()方法

1,添加模型 Test/app11/models.py from django.db import modelsclass Book(models.Model):title models.CharField(max_length100)author models.CharField(max_length100)publication_date models.DateField()price models.DecimalField(max_digits5, decim…

BFC 是什么?

BFC 是块级格式化上下文(Block Formatting Context)的缩写,是 CSS 中一个重要的概念,用于控制块级盒子的布局及浮动元素的交互。BFC 是一个独立的渲染区域,内部的块级盒子会按照特定的规则进行布局,不会影响…

软件工程(上)

目录 软件过程模型(软件开发模型) 瀑布模型 原型模型 V模型 构件组装模型 螺旋模型(原型瀑布) 基于构件的软件工程(CBSE) 快速应用开发模型(RAD) 统一过程(UP&a…

Linux学习看这一篇就够了,超超超牛的Linux基础入门

引言 小伙伴们,不管是学习c还是学习其他语言在我们学的路上都绕不过操作系统,而且,老生常谈的Linux更是每个计算机人的必修,那么我们对Linux的了解可能只是从别人那听到的简单的这个系统很牛,巴拉巴拉的,但…

大模型日报 2024-07-08

大模型日报 2024-07-08 大模型资讯 Anthropic CEO:大模型训练成本暴涨,2027年将达1000亿美元! Anthropic首席执行官表示,当前AI模型训练成本是10亿美元,未来三年,这个数字可能会上升到100亿美元甚至1000亿美…

GitLab管理员常用配置及设置汇总

​ 之前在 虚拟机Ubuntu 22.04上搭建GitLab操作步骤 上介绍了在Ubuntu 22.04上如何搭建社区版的GitLab,这里整理下作为GitLab管理员时在搭建完GitLab CE后,如何对其进行配置或设置 更改仓库存储位置:切换到root用户下操作 默认存放位置&…

SSL 证书

自动获取 Lets Encrypt 免费证书 (适用于 Linux 系统) 安装 Certbot sudo apt-get update sudo apt-get install certbot python3-certbot-nginx # Nginx 服务器 sudo apt-get install certbot python3-certbot-apache # Apache 服务器 获取和安装证…