专栏名称: 锐多宝
遥感技术教程、资讯与前沿论文
目录
相关文章推荐
51好读  ›  专栏  ›  锐多宝

GEE获取无云研究区Landsat影像

锐多宝  · 公众号  ·  · 2024-07-20 23:14

正文

请到「今天看啥」查看全文


由于GEE API更新,rgee现在不能用了,最近要下载一些Landsat的影像,试了试网页版GEE,把代码整理一下,分享给大家。去云代码来自于GEE学习室的推文,见参考文献1。

研究区数据准备

在QGIS当中把研究区矢量范围画出来,保存成SHP格式,然后打开GEE,上传SHP文件。

先在GEE的代码编辑器页面的左上角切到Assets选项卡,点击New,选择Shape files上传SHP文件。

在GEE中上传SHP文件

选择SHP文件并上传,注意,SHP是由多个文件组成的,需要把所有组成部分上传完整。Asset Name会自动生成,如果不合适可以自己修改一下。点击右下角的Upload按钮即可上传。

选择SHP文件并上传

在GEE右上角的Tasks选项卡中,可以查看SHP文件的上传进度,进度走完后即可在Assets中找到上传结果。

上传进度

点击Import into script这个按钮,即可将研究区范围加入到代码中调用。

将研究区范围加入代码

GEE获取无云Landsat影像

  • 代码调用的是USGS Landsat 9 Level 2, Collection 2, Tier 1地表反射率数据,该套数据已经经过了大气校正等操作,可以直接用于遥感解译、指数计算等。
  • 加入了scale、offset的校正applyScaleFactors
  • 使用QA波段进行了去云、去除云影的操作,使用蓝波段进一步去云、雪,在这里我把mask2注释掉了,没有生效
  • 修改了波段名,将波段编号改为了波段名称
  • 影像选择了常用的近红外和可见光红绿蓝四个波段,其他波段未选择
  • 影像输出到Google Drive中

完整代码如下:

// Applies scaling factors.
function applyScaleFactors(image) {
  var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);
  // var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);
  return image.addBands(opticalBands, null, true)
              // .addBands(thermalBands, null, true);
}

// reomove cloud for Landsat-8
function cloudRemoval(image) { 
  // 
  var cloudShadowBitMask = (1 <  var cloudsBitMask = (1 <  var qa = image.select('QA_PIXEL'); 
  var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0) 
                 .and(qa.bitwiseAnd(cloudsBitMask).eq(0)); 
  //var mask2 = image.select("blue").gt(0.2);                 
  return image.updateMask(mask)
              //.updateMask(mask2.not())
              .toDouble()
              .copyProperties(image)
              .copyProperties(image, ["system:time_start"]);



// Assign a common name to the sensor-specific bands.
var LC9_BANDS = ['SR_B2','SR_B3','SR_B4','SR_B5','SR_B6','SR_B7','QA_PIXEL']; //Landsat 9
var LC8_BANDS = ['SR_B2','SR_B3','SR_B4','SR_B5','SR_B6','SR_B7','QA_PIXEL']; //Landsat 8
var LC7_BANDS = ['SR_B1','SR_B2','SR_B3''SR_B4','SR_B5','SR_B7','QA_PIXEL']; //Landsat 7
var LC5_BANDS = ['SR_B1','SR_B2','SR_B3''SR_B4','SR_B5','SR_B7','QA_PIXEL']; //Llandsat 5
var S2_BANDS  = ['B2','B3','B4','B8','B11','B12']; // Sentinel-2
var STD_NAMES = ['blue''green''red''nir''swir1''swir2','QA_PIXEL'];

// 获取研究区范围内LT9无云影像
var L9Col = ee.ImageCollection('LANDSAT/LC09/C02/T1_L2')
                .filterBounds(roi)
                .filterDate('2024-01-01''2024-07-20')
                .map(applyScaleFactors)
                .select(LC9_BANDS,STD_NAMES)
                .map(cloudRemoval);

var LT9roi = L9Col.select(['blue''green''red''nir'])
            .mosaic().clip(roi)

var visParam = {
  // bands:["swir1","nir","red"],
  bands:["nir""red""green"],
  min: 0.0,
  max: 0.3,
};

Map.centerObject(roi)
Map.addLayer(LT9roi, visParam, 'LandsatCol');

Export.image.toDrive({
    image: LT9roi,
    description: "DLNELakeLT9",
    folder: "PlateauWetland",
    fileNamePrefix: "DLNELakeLT9_2024",
    region:roi.geometry(),
    scale: 30,
    maxPixels: 1e13
    });

点击代码编辑器上方的Run按钮,执行代码,即可在下方的地图中预览影像,点击Task中的RUN按钮,执行影像数据生产任务。

执行代码,预览影像,执行影像生产任务

等任务执行完后,会有Open in Drive按钮,点击这个按钮,打开谷歌云盘,下载数据即可。

打开谷歌云盘,下载数据

参考文献

  1. 是时候告别gee中Landsat系列的C01数据集而实用C02数据集了








请到「今天看啥」查看全文