gee-sentinel2数据你真的使用对了吗?

举报
此星光明 发表于 2022/08/19 12:18:35 2022/08/19
【摘要】 ​我正在使用 GEE 计算不同年份的 NDVI 时间序列并陷入“问题”。当我绘制并检查 Sentinel-2 数据时,我发现 2022 年的 NDVI 值始终低于其他年份。将 Sentinel-2 时间序列数据与 Landsat-8 数据进行了比较,在 L8 数据中没有可见的 NDVI 值下降,植被响应符合预期。不知道大家再使用这个数据的时候是否遇到了同样的问题:研究区:​编辑 代码:var...

我正在使用 GEE 计算不同年份的 NDVI 时间序列并陷入“问题”。当我绘制并检查 Sentinel-2 数据时,我发现 2022 年的 NDVI 值始终低于其他年份。将 Sentinel-2 时间序列数据与 Landsat-8 数据进行了比较,在 L8 数据中没有可见的 NDVI 值下降,植被响应符合预期。不知道大家再使用这个数据的时候是否遇到了同样的问题:

研究区:

编辑

 

代码:

var geometry = 
    /* color: #d63000 */
    /* displayProperties: [
      {
        "type": "rectangle"
      }
    ] */
    ee.Geometry.Polygon(
        [[[116.38265027260346, 39.93268858656276],
          [116.38265027260346, 39.89476871152101],
          [116.42110242104096, 39.89476871152101],
          [116.42110242104096, 39.93268858656276]]], null, false);



// 导入S2和LS8集合,并对日期和几何形状进行过滤
var collection_filtered_S2 = ee.ImageCollection('COPERNICUS/S2')
          .filterBounds(geometry)
          .filterDate("2016-06-01","2022-08-15")
          // .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',30));
          

// 从S2采集中获取NDVI的函数
var getNDVI_S2 = function(image){
  var ndvi_S2 = image.normalizedDifference(['B8', 'B4']);
  var original_S2 = image.addBands(ndvi_S2)
  return original_S2;
};
var collection_filtered_S2_NDVI = collection_filtered_S2.map(getNDVI_S2).select('nd');


// 显示S2-NDVI时间序列 
var sfTimeSeriesNDVI_S2 =
  Chart.image.seriesByRegion(collection_filtered_S2_NDVI, geometry, ee.Reducer.max(),'nd', 10, 'system:time_start', 'label')
  .setChartType('LineChart')
  .setOptions({
  title: 'S2 NDVI',
        vAxis: {title: 'NDVI',
        viewWindowMode:'explicit',
        viewWindow:{
          min:  0, 
          max:  1
        },
        },
        lineWidth: 1,
        pointSize: 3,

  });
print(sfTimeSeriesNDVI_S2)

          
var collection_LS8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
          .filterBounds(geometry)
          .filterDate("2016-06-01","2022-08-15");
          
          
// var collection_filtered_L8 = collection_LS8  


var getNDVI = function(image){
  var ndvi = image.normalizedDifference(['B5', 'B4']);
  var original = image.addBands(ndvi)
  return original;
};
var collection_filtered_LS8_NDVI = collection_LS8 .map(getNDVI).select('nd');


//显示l8-NDVI时间序列 
var sfTimeSeriesNDVI =
  Chart.image.seriesByRegion(collection_filtered_LS8_NDVI, geometry, ee.Reducer.max(),'nd', 30, 'system:time_start', 'label')
  .setChartType('LineChart')
  .setOptions({
  title: 'LS8 NDVI',
        vAxis: {title: 'NDVI',
        viewWindowMode:'explicit',
        viewWindow:{
          min:  0, 
          max:  1
        },
        },
        lineWidth: 1,
        pointSize: 3,
});
print(sfTimeSeriesNDVI)

编辑

 换了数据后的效果

编辑 

 

编辑

其实很简单:

S2影像哥白尼改变了他们的处理方式,使得 1 月 25 日之后产生的图像需要不同的增益和偏移量才能正确地将它们转换为辐射。我们一首使用数据直接使用:

Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C

在 2022-01-25 之后,PROCESSING_BASELINE '04.00' 或更高版本的 Sentinel-2 场景的 DN(值)范围移动了 1000。HARMONIZED 集合将新场景中的数据移动到与旧场景中相同的范围内。

Sentinel-2 是一个大范围、高分辨率、多光谱成像任务,支持哥白尼土地监测研究,包括监测植被、土壤和水覆盖,以及观察内陆水道和沿海地区。

Sentinel-2 数据包含 13 个 UINT16 光谱带,表示按 10000 缩放的 TOA 反射率。有关详细信息,请参阅Sentinel-2 用户手册 。此外,存在三个 QA 频段,其中一个 (QA60) 是具有云掩码信息的位掩码频段。有关更多详细信息,请参阅如何计算云遮罩的完整说明。

每个 Sentinel-2 产品(zip 存档)可能包含多个颗粒。每个颗粒都成为一个单独的地球引擎资产。Sentinel-2 资产的 EE 资产 ID 具有以下格式:COPERNICUS/S2/20151128T002653_20151128T102149_T56MNN。这里第一个数字部分表示感应日期和时间,第二个数字部分表示产品生成日期和时间,最后的 6 个字符的字符串是唯一的颗粒标识符,指示其 UTM 网格参考(参见MGRS)。

ESA 生成的 Level-2 数据可以在 COPERNICUS/S2_SR集合中找到。

大部分云可以通过使用 COPERNICUS/S2_CLOUD_PROBABILITY来移除。请参阅 本教程 ,了解如何应用云蒙版。

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。