【代码】GEE下载sentinel2数据遇到的bug及解决

Google earth engine(GEE)是一个非常好用的数据下载的工具。

近日在GEE下载sentinel2影像,遇到问题,现记录并解决改问题。

数据下载脚本

2024年3月1日之前,下载sentinel2的脚本如下:

Map.centerObject(table,12);

function maskS2clouds(image) {
  var qa = image.select('QA60');

  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')
                  .filterBounds(table)
                  .filterDate('2022-03-01', '2022-10-31')
                  // Pre-filter to get less cloudy granules.
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',10))
                  .map(maskS2clouds)
                  .median()
                  .clip(table);
                  //.select(['B4', 'B3', 'B2']);
print(dataset);

var mergedImage = dataset.select('B1','B2','B3','B4','B5','B6','B7','B8','B8A','B9','B11','B12');
print(mergedImage);

var rgbVis = {
  min: 0.0,
  max: 0.3,
  bands: ['B4', 'B3', 'B2'],
};
 
Map.addLayer(mergedImage, rgbVis, 'RGB');                 

  
  Export.image.toDrive({
      image:mergedImage,
      description:'2023',//任务名字
      folder: 'Sentinel2',//文件夹
      scale:10,
      maxPixels: 1e13, // 精度
      region:table,
      fileFormat: 'GeoTIFF',
      crs: "EPSG:4326",
      formatOptions: {
        cloudOptimized: true
      }
    });

无报错

image-20240402093720342

若把影像日期修改为2024年3月1号后,则显示报错。

image-20240402093951744

疑似在gee平台上的2024年的sentinel2影像不存在QA60的波段或该波段名字改名字了,导致原先的脚步报错。

解决办法:

把相关QA60的代码改写或注释。

下载2024年3月1日之后的sentinel2的脚本如下:

Map.centerObject(table,7);

function maskS2clouds(image) {

  return image.divide(10000);
}

var dataset = ee.ImageCollection('COPERNICUS/S2_SR')
                  .filterBounds(table)
                  .filterDate('2022-03-01', '2022-10-31')
                  // Pre-filter to get less cloudy granules.
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',10))
                  .map(maskS2clouds)
                  .median()
                  .clip(table);
                  //.select(['B4', 'B3', 'B2']);
print(dataset);

var mergedImage = dataset.select('B1','B2','B3','B4','B5','B6','B7','B8','B8A','B9','B11','B12');
print(mergedImage);

var rgbVis = {
  min: 0.0,
  max: 0.3,
  bands: ['B4', 'B3', 'B2'],
};
 
Map.addLayer(mergedImage, rgbVis, 'RGB');                 

  
  Export.image.toDrive({
      image:mergedImage,
      description:'2024',//任务名字
      folder: 'Sentinel2',//文件夹
      scale:10,
      maxPixels: 1e13, // 精度
      region:table,
      fileFormat: 'GeoTIFF',
      crs: "EPSG:4326",
      formatOptions: {
        cloudOptimized: true
      }
    });

image-20240402095134015