GEE|下载Sentinel2数据

2022/6/12 23:20:21

本文主要是介绍GEE|下载Sentinel2数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

引言

本文使用的数据集为Sentinel-2 L2A产品,该产品已经由欧空局预先进行了辐射定标、大气校正等预处理,因此数据反映的是地表的反射率信息,下载后无须进行后续处理即可使用,该数据在遥感图像分类领域应用十分广泛。另外在Sentinel-2系列的多光谱产品中,还有一种未进行预处理的数据,即Sentinel-2 L1C数据。该数据主要反映了大气顶端反射率,主要在辐射传输模型、植被几何光学模型的定量遥感应用较多。特别注意的是,执行此代码之前仍需要上传自己的ROI。

Sentinel-2 L2A产品参数

1.可获取日期

目前GEE平台下,Sentinel-2 L2A产品的最早可获取时间为,2017年3月28日。由此日期至今的数据均可获取。

2.数据波段信息

可获取的波段主要有13个,波谱范围由可见光至短波红外不等。另外数据的空间分辨率主要有10、20、60m三种类型。

3.质量控制波段(QA band)信息

在不考虑机器学习等影像去云算法的情况下,Sentinel-2影像的快速去云操作可以基于官方给出的QA波段,虽为一个波段但影像中包含了大量的地物代码信息,包括云、云的阴影、植被、水体等。若需要提前对影像进行掩膜,可对照不同地物的值(Value),更改本文中的算法,实现相应的操作。需要注意的是,表中的Value并非影像的反射率或灰度值,而是对于二进制1的位移操作位数

GEE代码实现

代码的主要操作流程如下:1.加载感兴趣区(ROI);2.读取QA波段云与卷积云信息,并设定影像中的掩膜数值;3.影像数据集获取与显示;4.影像数据集导出。

var district = table;
var dsize = district.size();
var district_geometry = district.geometry();
print(dsize);
Map.centerObject(district_geometry,7);

//去云的范围内的范围内,
function maskS2clouds(image) {
  var qa = image.select('QA60');
  
  // Bits 10 and 11 分别是云和卷云
  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")
                  .filterBounds(district_geometry)
                  .filterDate('2020-10-28', '2020-10-30')
                  // 选择云量真彩色真彩色,0到到100的范围内
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
                  .map(maskS2clouds)
                  .select(['B2', 'B3', 'B4','B5','B6','B7','B8A','B11','B12']);
                  
//可视化参数,按2,3,4波段合成真彩色              
var rgbVis = {
  min: 0.0,
  max: 0.3,
  bands: ['B2', 'B3', 'B4'],
};

//按中值合成指定指定时间段的影像
Map.addLayer(dataset.median(), rgbVis, 'RGB');

//设置显示样式:color代表边界颜色;fillcolor代表填充颜色
var styling={color:'red',fillColor:'00000000'}

//FH就是矢量边界,这里可以不用管
Map.addLayer(district.style(styling),{},"FH");

var IMAGE = dataset.mosaic();

//下载数据
Export.image.toDrive({
      image:IMAGE,
      description:'Sentinel2',
      scale:30,
      maxPixels: 1e13,
      region:district_geometry,
      crs: "EPSG:32649",
      fileFormat: 'GeoTIFF',
      formatOptions: {
        cloudOptimized: true
      }
  });

导出数据与下载至本地

代码运行后点击RUN按钮,即可开始保存,图片会被保存至Drive中,进入谷歌云盘将其下载至本地即可

 



这篇关于GEE|下载Sentinel2数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程