GEE| 基于Landsat 8 计算NDVI

基于Landsat 8 计算NDVI,并将栅格数据导出。(使用时将 roi 更改为自己的矢量范围并在 .filterDate 进行时间筛选即可)

var roi = ee.FeatureCollection('users/yongweicao11/fujian');
print('ROI:', roi);

var myImage = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")
  .filterBounds(roi)
  .filterDate('2023-01-01', '2023-05-10')
  .filter(ee.Filter.lt('CLOUD_COVER', 20));
// Landsat8 去云函数
//先设置一个除云并且给波段重新赋值的函数
function maskL8sr(image) {
    // 第3位和第5位分别是云影和云。
    var cloudShadowBitMask = 1 << 3;
    var cloudsBitMask = 1 << 5;
   
    // 获取pixel QA band.
    var qa = image.select('QA_PIXEL');
   
    // 明确条件,设置两个值都为0
    var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
        .and(qa.bitwiseAnd(cloudsBitMask).eq(0));
    // 更新掩膜云的波段,最后按照反射率缩放,在选择波段属性,最后赋值给影像
    return image.updateMask(mask).divide(10000)
        .select("SR_B[0-9]*")
        .copyProperties(image, ["system:time_start"]);
  }
   
myImage = myImage.map(maskL8sr)
myImage = myImage.median().clip(roi)

var NDVI = myImage.expression({ 
    expression: '(NIR - RED) / (NIR +  RED )', 
    map: {  
    'NIR': myImage.select('SR_B5'), 
    'RED': myImage.select('SR_B4'),
    
    } 
}); 
var burnPalette = ['red', 'white', 'green']; 
var visParams = {min: -1, max: 1, palette: burnPalette}; 
Map.addLayer(NDVI, visParams, 'NDVI'); 


Export.image.toDrive({
  image: NDVI,
  description: "NDVI",
  fileNamePrefix: "NDVI",
  scale: 30,
  region: roi,
  maxPixels: 1e13,
  fileFormat: 'GeoTIFF'
  });

在这里插入图片描述

<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 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值