代码概述
该代码基于Google Earth Engine (GEE) 平台,实现了从Sentinel-2数据集中筛选、去云处理、裁剪和展示指定区域和时间范围内的影像,并使用真彩色合成进行显示。
使用的数据集
Sentinel-2 (COPERNICUS/S2_HARMONIZED):提供全球范围内的多光谱影像,空间分辨率为10米。该数据集适用于各种地表监测和分析。
代码流程
- 定义研究区:通过筛选属性为“wuhan”的区域定义感兴趣区域(武汉市),并将其显示在地图中央。
- 去云处理:定义一个函数
maskS2clouds
用于掩码云和卷云,确保数据清晰。 - 筛选数据:从Sentinel-2数据集中筛选2019年9月18日至2022年9月26日期间,云量少于30%的影像,并应用云掩码处理。
- 可视化参数:设置真彩色合成显示参数,包括波段组合(B4、B3、B2)、最小值和最大值范围。
- 检查数据集是否为空:计算数据集的大小并打印。如果数据集非空,则计算平均影像并在地图上显示;如果数据集为空,则输出提示消息。
运行结果
代码运行后,将在GEE地图上展示武汉市区域在2019年9月18日至2022年9月26日期间的Sentinel-2影像,并应用真彩色合成显示。该过程包括云掩码处理,以确保影像的质量。输出结果将显示数据集的大小,如果数据集为空,将打印“没有影像数据”的提示信息。
完整代码:
// 定义研究区,并将定义的研究区显示在下方中间
var geometry = table2.filter(ee.Filter.eq('city', 'wuhan'));
Map.centerObject(geometry, 8);
// 去云处理
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_HARMONIZED")
.filterDate('2019-09-18', '2022-09-26')
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 30))
.filterBounds(geometry)
.map(maskS2clouds);
// 可视化参数
var visualization = {
min: 0.0,
max: 0.3,
bands: ['B4', 'B3', 'B2'],
};
// 加载影像并居中显示
Map.addLayer(geometry);
// 检查数据集是否为空
var datasetSize = dataset.size();
print("数据集大小:", datasetSize);
if(datasetSize.getInfo() > 0) {
// 如果数据集非空,则添加影像图层
var meanImage = dataset.mean().clip(geometry);
Map.addLayer(meanImage, visualization, 'RGB');
} else {
// 如果数据集为空,则输出消息
print("没有影像数据");
}
运行示例:
工作台输出:
图像输出: