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
相关文章
|
10天前
|
数据可视化 前端开发 数据挖掘
R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享(上)
R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享
|
1天前
|
算法 关系型数据库 C语言
卡尔曼滤波简介+ 算法实现代码(转)
卡尔曼滤波简介+ 算法实现代码(转)
|
2天前
|
运维 算法
基于改进遗传算法的配电网故障定位(matlab代码)
基于改进遗传算法的配电网故障定位(matlab代码)
|
2天前
|
算法 调度
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
|
2天前
|
算法
【免费】基于ADMM算法的多微网电能交互分布式运行策略(matlab代码)
【免费】基于ADMM算法的多微网电能交互分布式运行策略(matlab代码)
|
2天前
|
算法
基于蜣螂优化算法DBO的VMD-KELM光伏发电功率预测(matlab代码+可提供讲解)
基于蜣螂优化算法DBO的VMD-KELM光伏发电功率预测(matlab代码+可提供讲解)
|
2天前
|
算法
基于白鲸优化算法BWO的VMD-KELM光伏发电功率预测(matlab代码+可提供讲解)
基于白鲸优化算法BWO的VMD-KELM光伏发电功率预测(matlab代码+可提供讲解)
|
2天前
|
算法 调度 决策智能
基于元模型优化算法的主从博弈多虚拟电厂动态定价和能量管理(matlab代码)
基于元模型优化算法的主从博弈多虚拟电厂动态定价和能量管理(matlab代码)
|
2天前
|
机器学习/深度学习 算法 数据挖掘
基于改进ISODATA算法的负荷场景曲线聚类(matlab代码)
基于改进ISODATA算法的负荷场景曲线聚类(matlab代码)
|
2天前
|
算法 Serverless 调度
基于分布式ADMM算法的考虑碳排放交易的电力系统优化调度研究(matlab代码)
基于分布式ADMM算法的考虑碳排放交易的电力系统优化调度研究(matlab代码)