【GEE学习笔记|遥感地学应用】GEE代码示例,利用Sentinel-2影像计算遥感指数: 归一化雪指数、 归一化水指数、 冰川反照率指数,提取或去除冰川区域?

【GEE学习笔记|遥感地学应用】GEE代码示例,利用Sentinel-2影像计算遥感指数: 归一化雪指数、 归一化水指数、 冰川反照率指数,提取或去除冰川区域?

【GEE学习笔记|遥感地学应用】GEE代码示例,利用Sentinel-2影像计算遥感指数: 归一化雪指数、 归一化水指数、 冰川反照率指数,提取或去除冰川区域?



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

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


前言

以下是代码展示,包括 NDSI、NDWI 和 NBR 的计算与导出:

  • 计算 归一化雪指数(NDSI):使用 B3(绿光) 和 B11(短波红外)
  • 计算 归一化水指数(NDWI):使用 B3(绿光) 和 B8(近红外)
  • 计算 冰川反照率指数(NBR):使用 B8(近红外) 和 B12(短波红外)
  • 全部指数导出 并保存到 Google Drive

GEE 数据下载代码

var roi = table;  // table 为用户上传的矢量边界

// 去云函数
function maskS2clouds(image) {
  var cloudProb = image.select('MSK_CLDPRB');  // 云概率
  var mask = cloudProb.lt(10);  // 只保留云概率 < 10 的区域
  return image.updateMask(mask).divide(10000);
}

// 选择 Sentinel-2 数据集并处理
var dataset = ee.ImageCollection('COPERNICUS/S2_SR')
                  .filterBounds(roi)
                  .filterDate('2023-05-01', '2023-10-31')
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10))
                  .map(maskS2clouds)
                  .select(["B2", "B3", "B4", "B5", "B6", "B7", "B8", "B8A", "B9", "B11", "B12"])  // 选取所需波段
                  .median()
                  .clip(roi);

// 计算 归一化雪指数(NDSI)
var ndsi = dataset.expression(
  '(B3 - B11) / (B3 + B11)', {
    'B3': dataset.select('B3'),
    'B11': dataset.select('B11')
}).rename('NDSI');

// 计算 归一化水指数(NDWI)
var ndwi = dataset.expression(
  '(B3 - B8) / (B3 + B8)', {
    'B3': dataset.select('B3'),
    'B8': dataset.select('B8')
}).rename('NDWI');

// 计算 冰川反照率指数(NBR)
var nbr = dataset.expression(
  '(B8 - B12) / (B8 + B12)', {
    'B8': dataset.select('B8'),
    'B12': dataset.select('B12')
}).rename('NBR');

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

// 显示 NDSI
var ndsiVis = {min: -1, max: 1, palette: ['blue', 'white']};
Map.addLayer(ndsi, ndsiVis, 'NDSI');

// 显示 NDWI
var ndwiVis = {min: -1, max: 1, palette: ['cyan', 'blue']};
Map.addLayer(ndwi, ndwiVis, 'NDWI');

// 显示 NBR
var nbrVis = {min: -1, max: 1, palette: ['green', 'yellow']};
Map.addLayer(nbr, nbrVis, 'NBR');

// 显示 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(ndsi, "Sentinel-2_NDSI", "Sentinel-2_NDSI");
exportImage(ndwi, "Sentinel-2_NDWI", "Sentinel-2_NDWI");
exportImage(nbr, "Sentinel-2_NBR", "Sentinel-2_NBR");

代码优化与修改点

  • 添加 NDSI、NDWI 和 NBR 计算。
  • 使用 expression 方法 计算指数,使代码更直观。
  • 优化导出部分,只导出必要的指数数据(NDSI、NDWI、NBR)。
  • 更清晰的可视化调色板,更方便查看冰川和水体区域。

🚀 运行后,你可以在 Google Drive (sentinel-2 文件夹) 下载所有指数数据!


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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

985小水博一枚呀

祝各位老板前程似锦!财源滚滚!

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

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

打赏作者

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

抵扣说明:

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

余额充值