概述
本代码在Google Earth Engine (GEE)平台上实现了对ROI区域2020年9月期间的哨兵-2卫星影像进行提取、处理和站点反射率数据的导出。主要功能包括加载指定区域,去除云层干扰,提取站点反射率数据并导出为CSV文件。
数据集介绍
使用的数据集是哨兵-2卫星影像数据集(COPERNICUS/S2_SR),该数据集提供了高分辨率的多光谱影像,适用于土地覆盖分类、农业监测和环境监测等应用。
流程与功能
- 定义研究区:通过矢量文件(geometry)获取指定城市的研究区域,并在地图上显示。
- 去云处理:通过选择影像中的质量评估带(QA60),去除云层和卷云。
- 筛选影像数据:根据研究区域、时间范围和云量百分比过滤影像数据,并应用去云函数。
- 可视化影像:设置可视化参数,并将影像加载到地图中进行显示。
- 提取点数据:选择一个影像,用于提取站点(table3)的反射率数据。
- 导出数据:将提取的反射率数据导出为CSV文件,便于进一步分析和应用。
运行结果
运行结果是生成了一幅覆盖ROI区域的哨兵-2卫星影像图,该图去除了云层干扰,并在地图上进行了展示。同时,从影像中提取的站点反射率数据被导出为CSV文件,便于后续的分析和研究工作。
完整代码:
//Map.addLayer(table3) //站点shp
//Map.addLayer(table4) //水体shp
//定义研究区,并将定义的研究区显示在下方中间
var geometry = geometry;
Map.centerObject(geometry,10);
//去云处理
function maskS2clouds(image) {
var qa = image.select('QA60');
// 第10和11位分别是云和卷云。位移运算去云
var cloudBitMask = 1 << 10;
var cirrusBitMask = 1 << 11;
// 这两个标志都应设为零,表示条件明确。
var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
.and(qa.bitwiseAnd(cirrusBitMask).eq(0));
return image.updateMask(mask).divide(10000);
}
//筛选数据
var dataset = ee.ImageCollection('COPERNICUS/S2_SR')
.filterDate('2020-09-01', '2020-09-30')
// 预先过滤以获得较少的云量。
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',20))
.filterBounds(geometry)
.map(maskS2clouds);
//可视化
var visualization = {
min: 0.0,
max: 0.3,
bands: ['B4', 'B3', 'B2'],
};
//加载影像并居中显示
Map.addLayer(geometry);
Map.addLayer(dataset.mean().clip(geometry), visualization, 'RGB');
Map.addLayer(table3);
//选择一个影像用于提取点的数据
var image = dataset.first();
// //从图像中提取点的数据
// var points = table3;
// var pointsWithValues = image.sampleRegions({
// collection: points,
// scale: 10,
// });
// //将提取的数据导出为CSV文件
// Export.table.toDrive({
// collection: pointsWithValues,
// description: 'Sentinel2_Reflectance_Values',
// fileFormat: 'CSV'
// });