当你在Google Earth Engine(GEE)中处理遥感数据时,是否还在习惯性地使用Landsat?虽然Landsat系列数据历史悠久、应用广泛,但Sentinel-2带来的13个多光谱波段和高重访频率正在改变游戏规则。本文将带你深入探索如何充分利用Sentinel-2的独特优势,特别是针对植被分析这一核心应用场景。
Sentinel-2作为欧洲航天局哥白尼计划的重要组成部分,专为土地监测设计。两颗Sentinel-2卫星(2A和2B)协同工作,提供5天的全球重访周期,远优于Landsat 8/9的16天。这意味着你能够捕捉到更密集的时间序列数据,对监测作物生长周期或植被物候变化至关重要。
Sentinel-2的13个波段覆盖了从可见光到短波红外的广泛光谱范围,特别是包含了三个对植被研究极为关键的红边波段(B5、B6、B7)。这些波段能够探测到植被生理状态的细微变化,是传统NDVI(仅使用红和近红外波段)无法提供的额外维度信息。
Sentinel-2与Landsat 8/9的关键对比:
| 特性 | Sentinel-2 | Landsat 8/9 |
|---|---|---|
| 重访周期 | 5天 | 16天 |
| 空间分辨率 | 10m/20m/60m | 30m/100m |
| 波段数量 | 13 | 11 |
| 红边波段 | 3个 | 无 |
| 数据免费性 | 是 | 是 |
理解每个波段的特性是有效利用Sentinel-2数据的基础。以下是13个波段的主要应用场景:
红边波段的特殊价值:
红边(700-780nm)是植被反射率急剧变化的区域,对叶绿素含量、叶片结构和水分状况极为敏感。Sentinel-2的三个红边波段(B5、B6、B7)让我们能够计算更精细的植被指数:
javascript复制// 在GEE中计算红边位置指数(REIP)
var reip = image.expression(
'700 + 40 * (((B4+B7)/2) - B5)/(B6 - B5)',
{
'B4': image.select('B4'), // 红
'B5': image.select('B5'), // 红边1
'B6': image.select('B6'), // 红边2
'B7': image.select('B7') // 红边3
}
);
在GEE中获取Sentinel-2数据非常简单,但需要注意选择正确的数据集。对于地表反射率产品,推荐使用'COPERNICUS/S2_SR':
javascript复制// 定义研究区域和时间范围
var roi = ee.Geometry.Point([116.4, 39.9]); // 示例坐标
var startDate = '2023-04-01';
var endDate = '2023-10-31';
// 获取Sentinel-2地表反射率数据
var s2Collection = ee.ImageCollection('COPERNICUS/S2_SR')
.filterBounds(roi)
.filterDate(startDate, endDate)
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)); // 云量过滤
云掩膜处理:
Sentinel-2提供了多种云检测波段,最常用的是QA60和MSK_CLDPRB(云概率):
javascript复制// 使用QA60进行云掩膜
function maskCloudsQA60(image) {
var qa60 = image.select('QA60');
var cloudBitMask = 1 << 10; // 不透明云
var cirrusBitMask = 1 << 11; // 卷云
var mask = qa60.bitwiseAnd(cloudBitMask).eq(0)
.and(qa60.bitwiseAnd(cirrusBitMask).eq(0));
return image.updateMask(mask);
}
// 应用云掩膜
var s2CollectionMasked = s2Collection.map(maskCloudsQA60);
除了传统的NDVI,Sentinel-2支持计算多种高级植被指数:
javascript复制// 计算各种植被指数
function addIndices(image) {
// NDVI
var ndvi = image.normalizedDifference(['B8', 'B4']).rename('NDVI');
// EVI (增强型植被指数)
var evi = image.expression(
'2.5 * (NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1)',
{
'NIR': image.select('B8'),
'RED': image.select('B4'),
'BLUE': image.select('B2')
}).rename('EVI');
// NDRE (红边归一化差异指数)
var ndre = image.normalizedDifference(['B8', 'B5']).rename('NDRE');
// MCARI (改进型叶绿素吸收反射指数)
var mcari = image.expression(
'((B5 - B4) - 0.2 * (B5 - B3)) * (B5 / B4)',
{
'B5': image.select('B5'),
'B4': image.select('B4'),
'B3': image.select('B3')
}).rename('MCARI');
return image.addBands([ndvi, evi, ndre, mcari]);
}
var s2WithIndices = s2CollectionMasked.map(addIndices);
不同植被指数的适用场景:
Sentinel-2的高重访频率使其成为时间序列分析的理想选择。以下是如何创建并可视化NDVI时间序列:
javascript复制// 创建NDVI时间序列图表
var ndviChart = ui.Chart.image.series({
imageCollection: s2WithIndices.select('NDVI'),
region: roi,
reducer: ee.Reducer.mean(),
scale: 10,
xProperty: 'system:time_start'
}).setOptions({
title: 'Sentinel-2 NDVI 时间序列',
vAxis: {title: 'NDVI'},
hAxis: {title: '日期'},
lineWidth: 2,
pointSize: 4
});
print(ndviChart);
// 可视化NDVI空间分布
var ndviVis = {min: -0.2, max: 0.9, palette: [
'FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163',
'99B718', '74A901', '66A000', '529400', '3E8601',
'207401', '056201', '004C00', '023B01', '012E01',
'011D01', '011301'
]};
Map.addLayer(
s2WithIndices.median().select('NDVI'),
ndviVis,
'NDVI中值'
);
Sentinel-2的多时相数据可以捕捉不同作物的独特物候特征,实现高精度分类:
javascript复制// 创建多时相特征集
function createFeatureStack(imageCollection, bands, startDate, endDate) {
var filterDate = function(m) {
var start = ee.Date(startDate).advance(m, 'month');
var end = ee.Date(endDate).advance(m, 'month');
return imageCollection
.filterDate(start, end)
.median()
.rename(bands.map(function(b) { return b + '_m' + m; }));
};
var monthlyImages = ee.List.sequence(0, 5).map(function(m) {
return filterDate(m);
});
return ee.ImageCollection(monthlyImages).toBands();
}
var featureStack = createFeatureStack(
s2WithIndices,
['B2', 'B3', 'B4', 'B8', 'NDVI', 'NDRE'],
'2023-04-01',
'2023-09-30'
);
// 假设我们有训练样本(实际应用中需要准备自己的样本)
var training = ee.FeatureCollection([
// 小麦样本
ee.Feature(ee.Geometry.Point([116.41, 39.91]), {'class': 0}),
ee.Feature(ee.Geometry.Point([116.42, 39.92]), {'class': 0}),
// 玉米样本
ee.Feature(ee.Geometry.Point([116.43, 39.93]), {'class': 1}),
ee.Feature(ee.Geometry.Point([116.44, 39.94]), {'class': 1}),
// 大豆样本
ee.Feature(ee.Geometry.Point([116.45, 39.95]), {'class': 2}),
ee.Feature(ee.Geometry.Point([116.46, 39.96]), {'class': 2})
]);
// 训练随机森林分类器
var classifier = ee.Classifier.smileRandomForest(10)
.train({
features: training,
classProperty: 'class',
inputProperties: featureStack.bandNames()
});
// 应用分类
var classified = featureStack.classify(classifier);
通过建立历史基准,可以检测当前植被状态与正常情况的偏差:
javascript复制// 计算历史同期(如过去5年)NDVI的均值和标准差
var historical = ee.ImageCollection('COPERNICUS/S2_SR')
.filterBounds(roi)
.filter(ee.Filter.calendarRange(4, 9, 'month'))
.filterDate('2018-01-01', '2022-12-31')
.map(maskCloudsQA60)
.map(addIndices);
var historicalMean = historical.select('NDVI').mean();
var historicalStd = historical.select('NDVI').reduce(ee.Reducer.stdDev());
// 计算当前NDVI与历史均值的偏差(以标准差为单位)
var current = s2WithIndices.select('NDVI').median();
var anomaly = current.subtract(historicalMean).divide(historicalStd).rename('NDVI_anomaly');
// 可视化异常
var anomalyVis = {min: -3, max: 3, palette: ['red', 'white', 'green']};
Map.addLayer(anomaly, anomalyVis, 'NDVI异常');
Sentinel-2的不同波段具有不同分辨率(10m、20m、60m),在实际应用中需要注意:
分辨率统一方法:
javascript复制// 将20m波段降采样到10m
function resample20mTo10m(image) {
var bands10m = ['B2', 'B3', 'B4', 'B8'];
var bands20m = ['B5', 'B6', 'B7', 'B8A', 'B11', 'B12'];
// 保持10m波段不变
var image10m = image.select(bands10m);
// 将20m波段降采样到10m
var image20m = image.select(bands20m)
.reduceResolution({
reducer: ee.Reducer.mean(),
maxPixels: 1024
})
.reproject({
crs: 'EPSG:4326',
scale: 10
});
return image10m.addBands(image20m);
}
var s2Resampled = s2CollectionMasked.map(resample20mTo10m);
最佳波段组合推荐:
javascript复制// 自定义波段组合可视化
var customVisualization = function(image) {
return image.visualize({
bands: ['B11', 'B8', 'B4'],
min: 0,
max: 3000,
gamma: 1.4
});
};
Map.addLayer(
s2Resampled.median().clip(roi),
customVisualization,
'自定义波段组合'
);
在实际项目中,我发现Sentinel-2的红边波段在作物生长中期监测中特别有价值,能够比传统NDVI更早发现胁迫迹象。例如,在一次小麦病害监测中,NDRE指数比NDVI提前约7-10天检测到病害区域,为及时采取防治措施赢得了宝贵时间。