GEE之计算10m分辨率的NDVI数据

1 介绍

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

哨兵-2的数据包含13个UINT16光谱带,代表TOA反射率,以10000为尺度。详见Sentinel-2用户手册。此外,还有三个QA波段,其中一个(QA60)是一个带有云层遮蔽信息的比特掩码波段。更多的细节,请看关于云层掩码如何计算的完整解释。

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

欧空局制作的Level-2数据可以在COPERNICUS/S2_SR集合中找到。

云层大部分可以通过使用COPERNICUS/S2_CLOUD_PROBABILITY删除。代码有展示。

2 计算


var roi=table.filter(ee.Filter.eq("NAME","天水市"))
// 哨兵2的数据
for(var i=2020;i<=2022;i++){
var s2 = ee.ImageCollection("COPERNICUS/S2");
// 哨兵2去云
var s2_rmcloud = function(image) {
 var quality = image.select("QA60").unmask();
 return image.updateMask(quality.eq(0));
};
// 哨兵2计算ndvi
var s2_ndvi = function(image) {
 return image.addBands(image.normalizedDifference(["B8", "B4"]).rename("NDVI"));
};
//获取感兴趣区域
var study_s2 = s2.filterDate(i+"-01-01", i+"-12-31")
               .filterBounds(roi);
var study_s2_nocloud = study_s2.map(s2_rmcloud);
var ndvi = s2_ndvi(study_s2_nocloud.median()).select("NDVI").clip(roi);
var visParam = {
 min: -0.2,
 max: 0.8,
 palette: 'FFFFFF, CE7E45, DF923D, F1B555, FCD163, 99B718, 74A901, 66A000, 529400,' +
   '3E8601, 207401, 056201, 004C00, 023B01, 012E01, 011D01, 011301'
};
// 绘制NDVI
Map.addLayer(ndvi, visParam, 'Vegetation'+"-"+i);
}
Map.centerObject(roi, 8);
// 这里构建空的Image,然后通过palette设置边界颜色
var empty = ee.Image().toByte();
var outline = empty.paint({
 featureCollection:roi,  // 筛选的colletion
 color:0, //颜色透明
 width:3  //边界宽度
});
//绘制红色边界
Map.addLayer(outline, {palette: "ff0000"}, "outline");

代码第1行:依据2020年中国市级边界筛选”天水市“;

代码第3-24行;for循环计算历年NDVI,其中:

代码6-9行:对哨兵2进行去云;

代码30-35:定义空值影像制作研究区外轮廓;

利用map循环计算NDVI 


var roi=table.filter(ee.Filter.eq("NAME","天水市"))
var visParam = {
 min: -0.2,
 max: 0.8,
 palette: 'FFFFFF, CE7E45, DF923D, F1B555, FCD163, 99B718, 74A901, 66A000, 529400,' +
   '3E8601, 207401, 056201, 004C00, 023B01, 012E01, 011D01, 011301'
};
Map.centerObject(roi, 8);
 // 哨兵2去云
var s2_rmcloud = function(image) {
 var quality = image.select("QA60").unmask();
 return image.updateMask(quality.eq(0));
};
// 哨兵2计算ndvi
var s2_ndvi = function(image) {
 return image.addBands(image.normalizedDifference(["B8", "B4"]).rename("NDVI"));
};
var yearList=ee.List.sequence(2020,2022);
var s2 = ee.ImageCollection("COPERNICUS/S2");
var S2 = yearList.map(function(year){
       var year=ee.Number(year)
    
//获取感兴趣区域
var ndvi = s2.filter(ee.Filter.calendarRange(year,year,"year"))
               .filterBounds(roi)
               .map(s2_rmcloud)
               .map(s2_ndvi)
               .median()
               .select("NDVI")
               .clip(roi);
  var img=ndvi
  var img=img.set("year",year);
  var img=img.set("system:index",ee.String(year.toInt()));
return  img;

})
var NDVIcol=ee.ImageCollection.fromImages(S2)
print("NDVI List is:",NDVIcol)
Map.addLayer(NDVIcol.first(),visParam,"NDVIcol.first")
var empty=ee.Image().toByte()
var outline=empty.paint({
  featureCollection:roi,
  color:0,
  width:3,
});
Map.addLayer(outline,{palette: "red"},"outline")

到此计算完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gis收藏家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值