【GEE学习笔记】使用GEE云平台下载哨兵数据指定波段,并计算NDVI植被指数

【GEE学习笔记】使用GEE云平台下载哨兵数据指定波段,并计算NDVI植被指数



欢迎宝子们点赞、关注、收藏!欢迎宝子们批评指正!
祝所有的硕博生都能遇到好的导师!好的审稿人!好的同门!顺利毕业!

大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可关注VX “学术会议小灵通”或参考学术信息专栏:https://blog.csdn.net/gaoxiaoxiao1209/article/details/146181282


数据下载

  • ✅ 下载 Sentinel-2 的 B2、B3、B4、B8 波段
  • ✅ 计算 NDVI(归一化植被指数)
  • ✅ 分别导出 B2、B3、B4、B8 和 NDVI 影像
// 去云函数
function maskS2clouds(image) {
  var qa = image.select('QA60');
  var cloudBitMask = 1 << 10;  // 云
  var cirrusBitMask = 1 << 11; // 卷云
  var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
      .and(qa.bitwiseAnd(cirrusBitMask).eq(0));
  return image.updateMask(mask).divide(10000);
}

// 选择 Sentinel-2 影像并进行去云处理
var dataset = ee.ImageCollection('COPERNICUS/S2')
                  .filterBounds(roi)
                  .filterDate('2023-05-01', '2023-10-31')
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10))
                  .map(maskS2clouds)
                  .median()
                  .clip(roi);

// 选择 B2(蓝)、B3(绿)、B4(红)、B8(近红外)波段
var bands = dataset.select(['B2', 'B3', 'B4', 'B8']);

// 计算 NDVI
var ndvi = dataset.expression(
  '(B8 - B4) / (B8 + B4)', {
    'B8': dataset.select('B8'),
    'B4': dataset.select('B4')
}).rename('NDVI');

// 显示 RGB 影像
var rgbVis = {
  min: 0.0,
  max: 0.3,
  bands: ['B4', 'B3', 'B2'],
};
Map.addLayer(dataset, rgbVis, 'RGB Image');
Map.centerObject(roi, 7);

// 显示 NDVI
var ndviVis = {
  min: -1,
  max: 1,
  palette: ['blue', 'white', 'green']
};
Map.addLayer(ndvi, ndviVis, 'NDVI');

// 显示 ROI 边界
var styling = {color: "red", fillColor: "00000000"};
Map.addLayer(roi.style(styling), {}, "Boundary");

// 定义导出函数
function exportImage(image, description, fileNamePrefix) {
  Export.image.toDrive({
    image: image,
    description: description,
    fileNamePrefix: fileNamePrefix,
    crs: "EPSG:4326",
    scale: 10,
    region: roi,
    maxPixels: 1e13,
    folder: 'sentinel-2'
  });
}

// 导出波段数据
exportImage(bands.select('B2'), "Sentinel-2_B2", "Sentinel-2_B2");
exportImage(bands.select('B3'), "Sentinel-2_B3", "Sentinel-2_B3");
exportImage(bands.select('B4'), "Sentinel-2_B4", "Sentinel-2_B4");
exportImage(bands.select('B8'), "Sentinel-2_B8", "Sentinel-2_B8");

// 导出 NDVI
exportImage(ndvi, "Sentinel-2_NDVI", "Sentinel-2_NDVI");

代码实现

  • ✅ 下载 B2(蓝)、B3(绿)、B4(红)、B8(近红外)波段
  • ✅ 计算 NDVI 并可视化
  • ✅ 将所有影像分别保存到 Google Drive
  • ✅ 优化 exportImage 函数,避免重复代码

导出文件

导出后的 Google Drive 目录 sentinel-2/ 内包含:

  • Sentinel-2_B2.tif(蓝波段)
  • Sentinel-2_B3.tif(绿波段)
  • Sentinel-2_B4.tif(红波段)
  • Sentinel-2_B8.tif(近红外波段)
  • Sentinel-2_NDVI.tif(NDVI)

这样,后续可以使用 GIS 软件(如 QGIS、ArcGIS)或 Python 进行分析。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐