GEE时序——利用sentinel-2(哨兵-2)数据进行地表物候学分析(时间序列平滑法估算和非平滑算法代码)

简介: GEE时序——利用sentinel-2(哨兵-2)数据进行地表物候学分析(时间序列平滑法估算和非平滑算法代码)

简介

哨兵-2A/B 串联卫星的空间分辨率高、重访时间长,有可能改进对陆地表面物候的检索。不过,生物群落和区域特征在很大程度上限制了陆表物候学算法的设计。在北极地区,这种生物群落特有的特征包括长期积雪、持续云层覆盖和生长季节短暂。在此,我们评估了哨兵-2 获取北极高分辨率 LSP 地图的可行性。我们通过在谷歌地球引擎(GEE)中简单实施阈值法,提取了 2019 年和 2020 年的季节开始和结束时间(分别为 SoS 和 EoS)。我们发现哨兵-2 和 PhenoCam 的指标之间具有高度的相似性;哨兵-2 增强植被指数(EVI)的结果最佳(SoS 的均方根误差(RMSE)和平均误差(ME)分别为 3.0 d 和 -0.3 d,EoS 的均方根误差(RMSE)和平均误差(ME)分别为 6.5 d 和 -3.8 d),尽管其他植被指数的表现类似。在同质地貌中,哨兵-2 EVI 的物候图与中分辨率成像分光仪(MODIS)提取的相同物候图相比效果良好(SoS 的 RMSE 和 ME 分别为 9.2 d 和 2.9 d,EoS 为 6.4 d 和 -0.9d)。当哨兵-2 时间序列出现长时间(>40 d)的数据缺失时,将过滤不可靠的 LSP 估计值,并激活质量标志指示器;春季和初夏的不连续性(9.2%)低于夏末和秋季(39.4%)。哨兵-2 高分辨率 LSP 地图和 GEE 物候提取方法将为植被监测提供支持,并有助于改进陆地表面模型对北极植被物候的表示。

Normalized Difference Phenology Index,NDPI

归一化差异物候指数(Normalized Difference Phenology Index,NDPI)是一种用于测量植被物候变化的指数。物候是指植物生命周期的不同阶段,如萌芽、开花和结果等。

NDPI通过计算某一时刻的归一化差异植被指数(Normalized Difference Vegetation Index,NDVI)与该地点历史上相同时期的平均NDVI之间的差异来表示物候变化。NDVI是通过测量植被红外辐射与可见光辐射之间的比值来计算的。

NDPI的值范围从-1到1,值趋近于1表示该时期植被比历史上相同时期更为繁茂,值趋近于-1则表示植被比历史上相同时期较少。

NDPI可以用于监测植被的生长状态和季节性变化,对于农业、生态学和气象学等领域的研究具有重要意义。

NDPI是一种植被指数,用于监测植被物候随时间的变化。它是利用遥感数据计算的,用于量化植被的物候变化。NDPI是从近红外波段和红光波段的反射率差异中导出的,它提供了有关植物生长、凋落和其他物候事件的时间信息。该指数经过归一化处理,以考虑反射率的变化,并且对研究环境因素对植被物候的影响非常有用。研究人员利用NDPI改进了对使用Sentinel-2时间序列数据估算北极地表物候的方法。

文章引用

Descals, A.; Verger, A.; Yin, G.; Peñuelas, J. Improved Estimates of Arctic Land Surface Phenology Using Sentinel-2 Time Series. Remote Sens. 2020, 12, 3738. https://doi.org/10.3390/rs12223738

数据

我们利用哨兵-2 level-2A 数据生成了 2019 年和 2020 年的 LSP 指标,这些数据提供了 10 米、20 米和 60 米空间分辨率的每日冠顶反射率;从这些数据中,我们使用了 10 米分辨率波段 2、3、4 和 8,以及 20 米波段 12。哨兵-2A 和-2B 多光谱卫星分别于 2015 年和 2017 年发射,在赤道的重访时间为 5 d,随着纬度的增加而缩短。2019 年 5 月 1 日至 9 月 30 日期间,纬度在 70 至 75° 之间的最大重访时间为 1.7 d(平均:0.9 d)(图 1a)。将哨兵-2 估计的 LSP 指标与 500 米 MOD09GAv6 产品估计的相同指标进行了比较

 

利用哨兵-2 进行地表物候学分析

该资源库包含谷歌地球引擎代码,该代码是为利用哨兵-2 在高纬度地区估算陆地表面物候(LSP)指标(季节开始和结束(SoS 和 EoS))而开发的。

LSP 提取方法是阈值法。

代码:

使用时间序列平滑法估算 SoS 和 EoS(20 天组成和三次插值法)

此代码分为9各部分

SECTION 1 - Define parameters and setup

SECTION 2 - Define function for cubic interpolation

SECTION 3 - Prepare Sentinel-2 data

SECTION 4 - Generate composites

SECTION 5 - Increase window size for empty composites

SECTION 6 - Interpolate time series

SECTION 7 - Estimate phenology metrics

SECTION 8 - Plot results

SECTION 9 - Display legends  

第 1 节 - 定义参数和设置

第 2 节 - 定义三次插值函数

第3节 - 准备哨兵-2数据

第4节 - 生成合成数据

第 5 节 - 增加空合成的窗口大小

第6节 - 插值时间序列

第 7 节 - 估算物候指标

第 8 节 - 绘制结果

第 9 节 - 显示图例  

平滑后的阈值法。在提取 LSP 指标之前,对时间序列数据进行了平滑处理,这是 LSP 估计中的常见做法,以减少时间序列数据的噪声和不连续性[21]。选择处理步骤的标准是在不影响物候曲线再现的情况下,在 GEE 中实施这些步骤的可行性。过度平滑时间序列可能会导致不切实际的生长季节再现。首先,我们每 20 天应用一个平均半径为 10 d 的移动平均窗口;如果 20 d 合成窗口中的某一像素因缺乏有效观测而为空,则窗口大小增加到 40 d。阈值是根据插值时间序列的振幅而不是每日观测数据估算的,然后分别根据插值时间序列中超过动态阈值的第一天和最后一天来估算SoS和EoS。

///
// Land Surface Estimation (LSP) with Sentinel-2 in the Arctic
//
// This is a demo code for the estimation of the start and end of season (SoS and EoS) with the threshold method with
// time series smoothing (20-day composition and cubic interpolation).
//
// The LSP method is the threhsold method
//
// Adrià Descals - a.descals@creaf.uab.cat
// CREAF - Centre de Recerca Ecològica i Aplicacions Forestals
var textSections = '' +
  "\n SECTION 1 - Define parameters and setup " +
  "\n SECTION 2 - Define function for cubic interpolation " +
  "\n SECTION 3 - Prepare Sentinel-2 data " +
  "\n SECTION 4 - Generate composites  " +
  "\n SECTION 5 - Increase window size for empty composites  " +
  "\n SECTION 6 - Interpolate time series " +
  "\n SECTION 7 - Estimate phenology metrics " +
  "\n SECTION 8 - Plot results " +
  "\n SECTION 9 - Display legends " 
print(textSections)
 
 
//_______________________________________________________________________________________________________________________
// SECTION 1 - Define parameters and setup
Map.setOptions('satellite')
var geom = /* color: #ff0000 */ee.Geometry.Point([17.07398, 67.7578]);
var point = geom // inspect results for this location
var roi = point.buffer(100000).bounds() // display results around the point of interest
var vegIndex = 'evi' // Specify the vegetation index (VI): 'ndvi', 'evi', 'gcc', or 'ndpi'.
var th = 0.5 // Define the percentage of amplitude for the estimation of the threshold 
var threshMin = 0.2 // minimum NDVI value for the reclassification of snow values
var scale = 50 // scale of the analysis
var year1 = 2019 // year of processing
var lag = 20 // temporal resolution of the composites
var startDate = year1+'-04-15'
var endDate = year1+'-12-20'
Map.centerObject(roi,7)
//_______________________________________________________________________________________________________________________
// SECTION 2 - Define function for cubic interpolation
var cubicInterpolation = function(collection,step){ 
var listDekads = ee.List.sequence(1, collection.size().subtract(3), 1);
var colInterp = listDekads.map(function(ii){
  var ii = ee.Number(ii);
  
    var p0 = ee.Image(collection.toList(10000).get(ee.Number(ii).subtract(1)));
    var p1 = ee.Image(collection.toList(10000).get(ii));
    var p2 = ee.Image(collection.toList(10000).get(ee.Number(ii).add(1)));
    var p3 = ee.Image(collection.toList(10000).get(ee.Number(ii).add(2)));
  
    var diff01 = ee.Date(p1.get('system:time_start')).difference(ee.Date(p0.get('system:time_start')), 'day');
    var diff12 = ee.Date(p2.get('system:time_start')).difference(ee.Date(p1.get('system:time_start')), 'day');
    var diff23 = ee.Date(p3.get('system:time_start')).difference(ee.Date(p2.get('system:time_start')), 'day'
相关文章
|
22天前
|
机器学习/深度学习 算法 搜索推荐
联邦学习的未来:深入剖析FedAvg算法与数据不均衡的解决之道
随着数据隐私和数据安全法规的不断加强,传统的集中式机器学习方法受到越来越多的限制。为了在分布式数据场景中高效训练模型,同时保护用户数据隐私,联邦学习(Federated Learning, FL)应运而生。它允许多个参与方在本地数据上训练模型,并通过共享模型参数而非原始数据,实现协同建模。
|
1天前
|
资源调度 算法 数据可视化
基于IEKF迭代扩展卡尔曼滤波算法的数据跟踪matlab仿真,对比EKF和UKF
本项目基于MATLAB2022A实现IEKF迭代扩展卡尔曼滤波算法的数据跟踪仿真,对比EKF和UKF的性能。通过仿真输出误差收敛曲线和误差协方差收敛曲线,展示三种滤波器的精度差异。核心程序包括数据处理、误差计算及可视化展示。IEKF通过多次迭代线性化过程,增强非线性处理能力;UKF避免线性化,使用sigma点直接处理非线性问题;EKF则通过一次线性化简化处理。
|
27天前
|
机器学习/深度学习 存储 算法
近端策略优化(PPO)算法的理论基础与PyTorch代码详解
近端策略优化(PPO)是深度强化学习中高效的策略优化方法,广泛应用于大语言模型的RLHF训练。PPO通过引入策略更新约束机制,平衡了更新幅度,提升了训练稳定性。其核心思想是在优势演员-评论家方法的基础上,采用裁剪和非裁剪项组成的替代目标函数,限制策略比率在[1-ϵ, 1+ϵ]区间内,防止过大的策略更新。本文详细探讨了PPO的基本原理、损失函数设计及PyTorch实现流程,提供了完整的代码示例。
230 10
近端策略优化(PPO)算法的理论基础与PyTorch代码详解
|
14天前
|
算法 图形学 数据安全/隐私保护
基于NURBS曲线的数据拟合算法matlab仿真
本程序基于NURBS曲线实现数据拟合,适用于计算机图形学、CAD/CAM等领域。通过控制顶点和权重,精确表示复杂形状,特别适合真实对象建模和数据点光滑拟合。程序在MATLAB2022A上运行,展示了T1至T7的测试结果,无水印输出。核心算法采用梯度下降等优化技术调整参数,最小化误差函数E,确保迭代收敛,提供高质量的拟合效果。
|
22天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
47 12
|
13天前
|
存储 监控 算法
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
在数字化办公时代,公司监控上网软件成为企业管理网络资源和保障信息安全的关键工具。本文深入剖析C++中的链表数据结构及其在该软件中的应用。链表通过节点存储网络访问记录,具备高效插入、删除操作及节省内存的优势,助力企业实时追踪员工上网行为,提升运营效率并降低安全风险。示例代码展示了如何用C++实现链表记录上网行为,并模拟发送至服务器。链表为公司监控上网软件提供了灵活高效的数据管理方式,但实际开发还需考虑安全性、隐私保护等多方面因素。
20 0
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
|
19天前
|
存储 移动开发 算法
【狂热算法篇】解锁数据潜能:探秘前沿 LIS 算法
【狂热算法篇】解锁数据潜能:探秘前沿 LIS 算法
|
3月前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
4月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
106 1
|
7月前
|
Java UED Sentinel
微服务守护神:Spring Cloud Sentinel,让你的系统在流量洪峰中稳如磐石!
【8月更文挑战第29天】Spring Cloud Sentinel结合了阿里巴巴Sentinel的流控、降级、熔断和热点规则等特性,为微服务架构下的应用提供了一套完整的流量控制解决方案。它能够有效应对突发流量,保护服务稳定性,避免雪崩效应,确保系统在高并发下健康运行。通过简单的配置和注解即可实现高效流量控制,适用于高并发场景、依赖服务不稳定及资源保护等多种情况,显著提升系统健壮性和用户体验。
134 1