如何在Google Earth Engine按日期分别下载2023年Sentinel-2卫星数据?
解决GEE中按日期分别下载Sentinel-2影像的问题
你的代码里用了.median()方法,这会把2023年所有符合条件的Sentinel-2影像做中位数合成,直接合并成了单张影像,所以没法按日期分开下载。要实现按日期逐个导出,需要保留原始的影像集合,遍历集合里的每一张影像单独导出。
修改后的代码如下:
// 保留原始影像集合,不要用median()合成 var imageCollection = ee.ImageCollection('COPERNICUS/S2_SR') .filterDate('2023-01-01', '2023-12-31') .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)) .filterBounds(roi); // 可视化参数不变 var visParamsTrue = {bands:['B4', 'B3', 'B2'], min:0, max:2500, gamma:1.1}; Map.addLayer(imageCollection, visParamsTrue, 'Sentinel 2 Collection'); Map.addLayer(imageCollection.first().clip(roi), visParamsTrue, 'First Image in Research Area'); Map.centerObject(roi, 10); // 将影像集合转为列表,获取总数量 var imageList = imageCollection.toList(imageCollection.size()); var total = imageCollection.size().getInfo(); // 遍历列表,逐个导出影像,文件名包含影像日期 for (var i = 0; i < total; i++) { var image = ee.Image(imageList.get(i)); var date = image.date().format('YYYY-MM-dd').getInfo(); Export.image.toDrive({ image: image.int16(), description: 'Sentinel_2_' + date, scale: 10, region: roi, maxPixels: 1e13, // 增大maxPixels避免超出限制 folder: 'Sentinel2_2023' // 可选指定Drive文件夹,方便整理 }); }
关键修改点说明:
- 移除
.median(),保留ee.ImageCollection对象,这样就能获取所有单张影像 - 把影像集合转为列表后,通过循环遍历每一张影像
- 用
image.date().format()获取影像的拍摄日期,作为导出文件名的一部分,方便区分不同日期的影像 - 增大
maxPixels的值,避免因影像范围大导致导出失败 - 可选添加
folder参数,指定Drive中的文件夹,方便管理导出的文件
内容的提问来源于stack exchange,提问作者Seongjun Lee
相关产品推荐
相关产品推荐

