代码概述
该代码基于Google Earth Engine (GEE) 平台,实现了从多个遥感数据集中筛选、裁剪和展示中国威海市指定区域和时间范围内的数据,并输出各数据集影像的时间信息。主要涉及的遥感数据集包括MODIS、Landsat 8和Sentinel-2。
使用的数据集
- MODIS (MOD09GA):提供全球范围内的每日地表反射率数据,空间分辨率为500米。
- Landsat 8 (LC08/C02/T1_L2):提供全球覆盖的高分辨率卫星影像,空间分辨率为30米。
- Sentinel-2 (COPERNICUS/S2_HARMONIZED):提供全球范围内的多光谱影像,空间分辨率为10米。
代码流程
- 定义区域和时间范围:指定感兴趣的地理区域(威海市)和时间范围(2019年9月15日至2020年12月28日)。
- 筛选数据集:
- 从MODIS、Landsat 8和Sentinel-2数据集中分别筛选指定时间范围内的影像。
- 对Landsat 8和Sentinel-2数据集应用云量阈值筛选,确保选取的影像云量较低。
- 区域裁剪:将筛选出的影像数据集按指定区域进行裁剪,以仅保留感兴趣区域内的影像。
- 显示影像和区域:在GEE地图界面上显示感兴趣区域及裁剪后的影像数据集。
- 输出影像时间:输出每个数据集中所有影像的时间信息,以便分析这些影像的时间分布。
- 真彩色合成显示:使用真彩色合成显示各个数据集的影像。
运行结果
代码运行后,将在GEE地图上展示ROI区域的裁剪影像,并在控制台输出各个数据集的影像时间信息,并使用真彩色合成显示各个数据集的影像,提供更直观的可视化效果。可以方便地获取指定区域和时间范围内的遥感数据,并进行后续分析和处理。
完整代码:
// 定义区域
//var geometry = table;
var geometry = table2.filter(ee.Filter.eq('city','weihai'))
// 定义时间范围
var startDate = '2019-09-15';
var endDate = '2020-12-28';
// 定义不同数据集
//modis数据集
var modis = ee.ImageCollection('MODIS/061/MOD09GA')
.filterBounds(geometry)
.filterDate(startDate, endDate)
.map(function(image) {
return image.set('source', 'MODIS');
});
// 定义云阈值
var cloudThreshold = 30;
//landsat数据集
var landsat = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")
.filterBounds(geometry)
.filterDate(startDate, endDate)
.filter(ee.Filter.lt("CLOUD_COVER", cloudThreshold))
.map(function(image) {
return image.set('source', 'Landsat');
});
//sentinel-2数据集
var sentinel2 = ee.ImageCollection('COPERNICUS/S2_HARMONIZED')
.filterBounds(geometry)
.filterDate(startDate, endDate)
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', cloudThreshold))
.map(function(image) {
return image.set('source', 'Sentinel-2');
});
// 在地图上显示区域
Map.addLayer(geometry, {}, 'Region of Interest');
// 进行区域裁剪
var modisClipped = modis.map(function(image) {
return image.clip(geometry);
});
var landsatClipped = landsat.map(function(image) {
return image.clip(geometry);
});
var sentinel2Clipped = sentinel2.map(function(image) {
return image.clip(geometry);
});
// 定义真彩色合成显示参数
var modisVis = {
bands: ['sur_refl_b01', 'sur_refl_b04', 'sur_refl_b03'],
min: 0,
max: 3000,
gamma: 1.4
};
var landsatVis = {
bands: ['SR_B4', 'SR_B3', 'SR_B2'],
min: 0,
max: 3000,
gamma: 1.4
};
var sentinel2Vis = {
bands: ['B4', 'B3', 'B2'],
min: 0,
max: 3000,
gamma: 1.4
};
// 在地图上显示真彩色合成影像
Map.addLayer(modisClipped.median(), modisVis, 'MODIS True Color');
Map.addLayer(landsatClipped.median(), landsatVis, 'Landsat True Color');
Map.addLayer(sentinel2Clipped.median(), sentinel2Vis, 'Sentinel-2 True Color');
// 居中显示指定区域
Map.centerObject(geometry, 8);
// 输出各个遥感影像的时间
modisClipped.aggregate_array('system:time_start').evaluate(function(dates) {
var formattedDates = dates.map(function(date) {
return new Date(date).toISOString(); // 输出年-月-日-时-分-秒
});
print('MODIS 影像时间:', formattedDates);
});
landsatClipped.aggregate_array('system:time_start').evaluate(function(dates) {
var formattedDates = dates.map(function(date) {
return new Date(date).toISOString(); // 输出年-月-日-时-分-秒
});
print('Landsat 影像时间:', formattedDates);
});
sentinel2Clipped.aggregate_array('system:time_start').evaluate(function(dates) {
var formattedDates = dates.map(function(date) {
return new Date(date).toISOString(); // 输出年-月-日-时-分-秒
});
print('Sentinel-2 影像时间:', formattedDates);
});
输出结果:
工作台输出:
ROI区域:
Landsat-8影像:
Modis影像:
Sentinel-2影像: