R语言——AVOCADO“(异常植被变化检测)算法(1990-2015数据分析)监测森林干扰和再生(含GEE影像下载代码)

本文主要是介绍R语言——AVOCADO“(异常植被变化检测)算法(1990-2015数据分析)监测森林干扰和再生(含GEE影像下载代码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 "AVOCADO"(异常植被变化检测)算法

AVOCADO"(异常植被变化检测)算法是一种连续的植被变化检测方法,也能捕捉植被再生。该算法基于 R 软件包 "npphen"(Chavez 等人,2017 年),开发用于监测物候变化,并经过调整,以半自动和连续的方式监测森林干扰和再生。该算法使用所有可用数据,不需要某些预处理步骤,如去除异常值。参考植被(本例中为未受干扰的森林)取自附近已知在整个时间序列中未受干扰的像素,因此无需留出部分时间序列作为历史基线。通过在 AVOCADO 中使用完整的时间序列,可以对植被变化做出更可靠的预测,同时提高我们处理数据缺口的能力。该算法考虑了年度物候的自然变异性(利用核拟合的灵活性),因此适用于监测季节性强的地区(如干旱生态系统)和渐变/微小变化的地区(如退化)。

"AVOCADO"(异常植被变化检测)算法是一种用于检测植被变化的算法。这个算法主要用于遥感图像的处理,通过比较不同时间点的图像来识别和定位植被变化的区域。

该算法的核心思想是将植被的变化视为异常值,并使用统计学方法来检测和分类这些异常值。具体而言,AVOCADO算法使用了聚类分析和假设检验的技术,对图像中的像素进行分类和比较。

首先,AVOCADO算法将两个不同时间点的图像分别转换为灰度图像。然后,使用聚类分析将像素分为不同的类别,类别之间的差异被认为是植被变化的指标。

接下来,AVOCADO算法使用假设检验来确定哪些类别的差异是统计显著的。通过比较类别之间的均值和方差,算法能够确定哪些区域的植被发生了显著变化。

最后,AVOCADO算法将检测到的变化区域标记出来,并生成一个变化图像,以便进一步分析和应用。

总的来说,AVOCADO算法是一种有效的植被变化检测方法,可以在遥感图像中准确地识别和定位植被变化的区域。它可以在农业、环境监测和城市规划等领域中得到广泛应用。

步骤

步骤 1:安装所需软件包


软件包可通过 github 获取,并可通过 "远程 "安装:

library(remotes) 
install_github('MDecuy/AVOCADO')  
#load library
library(AVOCADO) 

 

请注意,关于 AVOCADO 算法所有参数的解释可在 github 文档中找到。

其他需要的软件包:rgdal、raster、npphen、bfastSpatial、RColorBrewer、rts、lubridate

GitHub - MDecuy/AVOCADO: Monitoring vegetation change in a continuous way 

步骤 2:下载卫星数据


目前有多种卫星来源和数据下载方式,如地球探索者或谷歌地球引擎平台。有关如何在谷歌地球引擎指南平台上下载各种卫星数据的信息很多,但在此我们提供了一个 Landsat Collection 2 Level 2 数据的小型示例脚本。

第一步是上传您感兴趣区域(AOI)的形状文件。这可以在 "资产 "选项卡下完成,一旦上传,您就可以将目录(见 "表 ID")添加到下面的脚本中(在 "var input_polygon "下)。

 GEE代码:

//Downloading Landsat data via the Google Earth Engine (GEE) platform.// Paste this code into your GEE script page// Specify the location of the before uploaded shapefile in your assets
var input_polygon = 'users/yourusername/ AOI';
// Export folder in your google drive
var input_export_folder = 'FolderName_You_Created_in_Your_GoogleDrive_Account';
// Start and end dates
var input_StartStr = ee.String('1990-01-01');
var input_FinishStr = ee.String('2015-01-01');
/* available indices: NDVI (ndvi_ind), NBR (nbr_ind), EVI (evi_ind), SAVI (savi_ind), tasseled cap 
brightness (Tcap_bri_ind), tasseled cap greenness (Tcap_gre_ind), tasseled cap wetness (Tcap_wet_ind)
Specify the vegetation indices you are interested in by marking it as TRUE, or if not as FALSE. 
In this example we use NDMI.*/
var ndvi_ind = ['FALSE'];
var ndmi_ind = ['TRUE'];
var nbr_ind = ['FALSE'];
var evi_ind = ['FALSE'];
var savi_ind = ['FALSE'];
var Tcap_bri_ind = ['FALSE'];
var Tcap_gre_ind = ['FALSE'];
var Tcap_wet_ind = ['FALSE'];
///
// END of input variables./* The following lines can be left default, unless you want 
to change e.g. the cloud cover percentage.*/
///
// Buffer to download around the above area, use 0 for no buffer
var input_buffer = 0;
// Convert text string dates to date tpe
var Start = ee.Date(input_StartStr);
var Finish = ee.Date(input_FinishStr);
// Create a feature collection out of the fustion table id
var Polygon = ee.FeatureCollection(ee.String(input_polygon));
// Buffer the area of interest
var PolygonBuffer = input_buffer === 0 ? Polygon.first().geometry() : Polygon.first().geometry().buffer(input_buffer);
Map.addLayer(PolygonBuffer,null,'Buffer');
Map.centerObject(PolygonBuffer);
// Standard names to rename the bands regardless of collection
var selected_bands = ['blue','green','red','nir','swir','swir2','QA_PIXEL'];// Applies scaling factors.
var applyScaleFactors = function (image) {var opticalBands = image.select('SR_.*').multiply(0.0000275).add(-0.2);return image.addBands(opticalBands, null, true);
};// Merge the 3 collections, select, and rename the bands to standard names
var Collection = ee.ImageCollection('LANDSAT/LT05/C02/T1_L2').map(applyScaleFactors).select(['SR_B1','SR_B2','SR_B3','SR_B4','SR_B5','S

这篇关于R语言——AVOCADO“(异常植被变化检测)算法(1990-2015数据分析)监测森林干扰和再生(含GEE影像下载代码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/631910

相关文章

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java