【GEE】基于GEE可视化和下载Sentinel2 L2A数据(去云、镶嵌、裁剪、筛选波段)

        今天连续发了4篇关于Landsat8数据的下载代码,本来都不想再发GEE这个专栏的文章了,但是又想了想都快过年了,赶紧把手里的代码余货都分享出去吧,省的心里有压力。本篇文章主要分享了GEE可视化和下载Sentinel2 L2A数据。

原创作者:RS迷途小书童

博客地址:https://blog.csdn.net/m0_56729804?type=blog

      代码主要包含了时间、云量筛选数据集,对数据进行中值合成、镶嵌、裁剪等操作,最后加入筛选波段的代码,仅导出我们需要的波段,以免数据过大。

      PS:即使镶嵌后,下载时也会分4-5幅,这是因为GEE的限制问题,哨兵数据太大了一个市将近3个G,Landsat数据就没事。

一、代码部分

//作者:RS迷途小书童
//博客:https://blog.csdn.net/m0_56729804?type=blog

Map.centerObject(table,10);
//这里可调整加载时影像的显示大小
var style_set = {color:"red",fillColor:"00000000"};
Map.addLayer(table.style(style_set),{}, 'ROI')

function maskS2clouds(image) {
  var qa = image.select('QA60');
  // Bits 10 and 11 are clouds and cirrus, respectively.
  var cloudBitMask = 1 << 10;
  var cirrusBitMask = 1 << 11;
  // Both flags should be set to zero, indicating clear conditions.
  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')//S2==L1C
                  .filterBounds(table)
                  .filterDate('2020-04-01', '2020-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');                 
// //镶嵌裁剪函数,减少之后的工作量
// var mosaic = exportdataset.mosaic().clip(table);
  
  Export.image.toDrive({
      image:mergedImage,
      description:'2023',//Tasks名称
      folder: 'Sentinel2-L2A',//云盘文件夹
      scale:10,
      maxPixels: 1e13,
      region:table,
      fileFormat: 'GeoTIFF',
      crs: "EPSG:4326",//投影坐标系
      formatOptions: {
        cloudOptimized: true
      }
    });

二、结果展示

        我平时用GEE比较少,大量时间都是使用Python去处理数据,但是用的少也还是会一点的。令人失望的是网上有很多教程都是VIP文章或者时间周期太长,导致代码不能使用,对于没接触过代码的新手来说很不友好。我希望能在力所能及的范围内尽可能多地去分享一些GEE的基本操作,如果大家感兴趣也可以一起留言交流。

posted @ 2024-02-01 12:15  RS迷途小书童  阅读(813)  评论(0编辑  收藏  举报