【GEE】基于GEE批量下载Landsat8 L1C数据(整幅)

        之前发过一篇使用GEE下载Landsat8的文章,然后有很多小伙伴私信我各种问题,如L1C、L2数据代码怎么修改,如何镶嵌,如何去云、 如何裁剪等一系列问题。正好快过年了,手头的事也没有多少了,所以这两天整理了一下GEE的相关代码,后续会陆续发出来。

        今天给大家带来的是Landsat8 L1C数据的批量下载,裁剪已经做过了。导出的结果为分幅的研究区影像(即原始影像裁剪后,无镶嵌)。

一、代码部分

//作者:RS迷途小书童
//博客:https://blog.youkuaiyun.com/m0_56729804?type=blog
var shape = table;
var style_set = {color:"red",fillColor:"00000000"};
Map.addLayer(shape.style(style_set),{},"shape")
//加载矢量

function rmCloud (image){
  var qa = image.select('pixel_qa')
  var cloudMask = qa.bitwiseAnd(1 << 3).eq(0)
  var cloudShadowMask = qa.bitwiseAnd(1 << 5).eq(0)
  var mask_all = cloudMask.and(cloudShadowMask)
  return image.updateMask(mask_all)
}
//去云算法
 
var FindData = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
                  .filterBounds(shape)
                  .filterDate('2021-01-01', '2021-12-31')
                  .filter(ee.Filter.lte('CLOUD_COVER',5))
                  .map(rmCloud)//执行去云函数
                  .map(function(image){
                      return image.clip(shape)//裁剪
                  })
print("FindData",FindData)
var Count =FindData.size();
print('Count:',Count); 
//查找数据,裁剪影像

var RGB_show = {
  min: 0.0,
  max: 3000,
  bands: ['B4', 'B3', 'B2'],
};
Map.addLayer(FindData, RGB_show, 'FindData');
Map.centerObject(shape,10)//缩放级别
//彩色合成显示

var mergedImage = FindData.select("B1","B2","B3","B4","B5","B6","B7","B10","B11");
// 将所选波段合并为一个多波段图像
print(mergedImage)
function exportImageCollection(imgCol) {
  var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"])
                        .get("list");
  indexList.evaluate(function(indexs) {
    for (var i=0; i<indexs.length; i++) {
      var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();
      image = image.toInt16();
      Export.image.toDrive({
        image: image,
        description: indexs[i],
        fileNamePrefix: indexs[i],
        folder: 'Landsat8',
        region: shape,
        scale: 30,//分辨率
        crs: "EPSG:4326",//投影坐标系
        maxPixels: 1e13
      });
    }
  });
}
exportImageCollection(mergedImage);
//导出数据

二、效果显示

<think>嗯,用户想在Google Earth Engine里加载30米分辨率的Landsat影像。首先,我需要确认Landsat各个系列的数据分辨率。比如,Landsat 8和9的OLI/TIRS传感器,它们的多光谱波段通常是30米,而热红外波段是100米,但有些数据集可能已经重新采样到30米。然后,用户可能需要知道如何在GEE中找到正确的数据集,比如Landsat Surface Reflectance或者TOA的数据集。 接下来,我需要回忆GEE数据集的名称。例如,Landsat 8的地表反射率数据可能是'LANDSAT/LC08/C02/T1_L2',而TOA数据是'LANDSAT/LC08/C01/T1_TOA'。这里要注意不同数据集的处理级别和分辨率差异。用户需要加载30米的分辨率,所以应该选择那些已经提供30米波段的影像,或者可能需要进行重采样。 然后,代码部分需要展示如何加载这些数据集。比如,使用ee.Image()或者ee.ImageCollection()来加载。可能还需要筛选日期、区域或者进行云处理。例如,使用预制的去云函数或者QA波段来过滤云层。 另外,用户可能不知道如何确认影像的分辨率,这时候可以指导他们使用scale属性或者打印图像信息。同时,如果原始数据某些波段分辨率较低,可能需要用resample()方法进行重采样,比如使用双线性或双三次插值,将热红外波段从100米重采样到30米,以保持一致性。 还有,导出数据的时候需要注意设置正确的分辨率参数,确保导出的是30米的数据。引用中的例子提到导出时设置scale:30,这很重要。可能还需要提醒用户,在处理过程中确保所有操作都保持30米的分辨率,避免意外的重采样导致分辨率变化。 最后,用户可能遇到的问题包括如何验证分辨率是否正确,如何处理不同波段的不同分辨率,以及去云处理的具体步骤。需要提供相应的代码示例和解释,确保用户能够逐步操作。同时,引用提供的参考资料中的代码片段可以作为示例,帮助用户理解具体实现方法。</think>在 Google Earth Engine (GEE) 中加载 30 米分辨率的 Landsat 影像,需根据具体 Landsat 系列(如 Landsat 8/9)选择对应数据集,并注意波段分辨率差异。以下是详细步骤: --- ### **1. 选择正确的数据集** Landsat 8/9 的 **多光谱波段**(如 B2-B7)原始分辨率为 30 米,而热红外波段(如 B10/B11)原始分辨率为 100 米[^1]。建议选择以下预处理数据集: - **地表反射率数据**:`LANDSAT/LC08/C02/T1_L2`(Landsat 8)或 `LANDSAT/LC09/C02/T1_L2`(Landsat 9) - **大气顶部反射率(TOA)数据**:`LANDSAT/LC08/C01/T1_TOA`(Landsat 8) ```javascript // 加载 Landsat 8 地表反射率数据集(30 米分辨率波段) var landsat8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2"); ``` --- ### **2. 分辨率验证与重采样** 若需统一所有波段为 30 米,可使用 `resample()` 方法对低分辨率波段进行重采样[^2]: ```javascript // 对热红外波段(B10)进行双线性重采样至 30 米 var resampled = landsat8.select('ST_B10').resample('bilinear'); ``` --- ### **3. 空间过滤与时间筛选** 通过 `filterBounds()` 和 `filterDate()` 限定区域和日期: ```javascript var roi = ee.Geometry.Point([100.6, 36.5]); // 以青海省为例 var filtered = landsat8 .filterBounds(roi) .filterDate('2022-01-01', '2022-12-31'); ``` --- ### **4. 去云处理** 使用 QA 波段或预定义算法(如 `simpleCloudScore`)去除云层: ```javascript // 使用 QA_PIXEL 波段掩模云层 var maskClouds = function(image) { var qa = image.select('QA_PIXEL'); var cloudMask = qa.bitwiseAnd(1 << 3).or(qa.bitwiseAnd(1 << 4)); return image.updateMask(cloudMask.not()); }; var cloudFree = filtered.map(maskClouds); ``` --- ### **5. 影像显示与导出** 导出时需指定 `scale:30` 确保分辨率: ```javascript // 导出 30 米分辨率影像到 Google Drive[^3] Export.image.toDrive({ image: cloudFree.first(), description: "Landsat8_30m", scale: 30, region: roi.bounds() }); ``` --- ### **分辨率验证方法** 通过 `projection()` 或打印元数据确认: ```javascript print(landsat8.first().select('SR_B2').projection().nominalScale()); // 应返回 30 ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RS迷途小书童

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值