Google Earth Engine(GEE)计算干度(NDBSI)

今天分享一下在GEE中如何计算干度分量(NDBSI),NDBSI指数的计算方法为:

IBI=(2 * SWIR1 / (SWIR1 + NIR) - (NIR / (NIR + RED) + GREEN / (GREEN + SWIR1))) / (2 * SWIR1 / (SWIR1 + NIR) + (NIR / (NIR + RED) + GREEN / (GREEN + SWIR1)))
SI=((SWIR1 + RED) - (NIR + BLUE)) / ((SWIR1 + RED) + (NIR + BLUE))
其中BLUE,GREEN ,RED,NIR ,SWIR1分别为影像的蓝波段、绿波段、红波段、近红波段、中红外波段 1
具体实现代码如下:
还是以山西省为研究区


//导入自己的研究区,将其定义为roi
var roi = ee.FeatureCollection("users/lilei655123/shanxi");
var star_date = '2020-06-01'//定义起始时间
var end_date = '2020-09-30'//定义终止时间
function rmL8Cloud(image) { 
  var cloudShadowBitMask = (1 << 3); 
  var cloudsBitMask = (1 << 5); 
  var qa = image.select('pixel_qa'); 
  var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0) 
                 .and(qa.bitwiseAnd(cloudsBitMask).eq(0));
  return image.updateMask(mask)
              .copyProperties(image)
              .copyProperties(image, ["system:time_start",'system:time_end']);
}
 
var L8_ = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR").filterBounds(roi)
              .filterDate(star_date, end_date)           
              .map(rmL8Cloud)
              .mean()//中值合成
              .clip(roi)
print(L8_)  
var img = L8_.clip(roi)
 function sts_minmax (image){
    var minmax = image.reduceRegion({
    reducer: ee.Reducer.minMax(),
    geometry:roi,
    scale: 30,
    maxPixels: 1e13}).values();
    return minmax;}
    //NDBSI
    var ibi = img.expression('(2 * SWIR1 / (SWIR1 + NIR) - (NIR / (NIR + RED) + GREEN / (GREEN + SWIR1))) / (2 * SWIR1 / (SWIR1 + NIR) + (NIR / (NIR + RED) + GREEN / (GREEN + SWIR1)))', {
      'SWIR1': img.select('B6').multiply(0.0001),
      'NIR': img.select('B5').multiply(0.0001),
      'RED': img.select('B4').multiply(0.0001),
      'GREEN': img.select('B3').multiply(0.0001)
    })
  var si = img.expression('((SWIR1 + RED) - (NIR + BLUE)) / ((SWIR1 + RED) + (NIR + BLUE))', {
      'SWIR1': img.select('B6').multiply(0.0001),
      'NIR': img.select('B5').multiply(0.0001),
      'RED': img.select('B4').multiply(0.0001),
      'BLUE': img.select('B2').multiply(0.0001)
    }) 
  var ndbsi1 = (ibi.add(si)).divide(2)
  var minMax = sts_minmax(ndbsi1);
  var ndbsi = ndbsi1.unitScale(minMax.get(1),minMax.get(0))
var mean = ndbsi.reduceRegion({ 
  reducer: ee.Reducer.mean(), 
  geometry:roi, 
  scale: 30, 
  maxPixels: 1e13
  
});
  print(mean,'平均值')
var rsei_std = ndbsi.reduceRegion({ 
    reducer: ee.Reducer.stdDev(), 
    geometry:roi, 
    scale: 30, 
    maxPixels: 10e13
    
  });
    print(rsei_std,'标准差')// 
    var max = ndbsi.reduceRegion({ 
    reducer: ee.Reducer.max(),// 
    geometry:roi,// 
    scale: 30,// 
    maxPixels: 10e13// 
    });
    print(max,'max')
    var min = ndbsi.reduceRegion({ 
  reducer: ee.Reducer.min(), 
  geometry:roi, 
  scale: 30, 
  maxPixels: 10e13
 
});
print(min,'min')  
Map.centerObject(roi,7) 
var styling = {color:"red",fillColor:"00000000"};
Map.addLayer(roi.style(styling),{},"geometry")
Map.addLayer(ndbsi, {'min':0,'max':1,'palette':["eff3ff","bdd7e7","6baed6","2171b5","f7f7f7","d9d9d9","bdbdbd","969696","636363","252525"]}, 'ndbsi')

计算结果如下:

在这里插入图片描述
统计结果:
在这里插入图片描述
感谢关注,欢迎转发!

声明:仅供学习使用!

**更多内容请关注微信公众号“生态遥感监测笔记”

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

生态遥感监测笔记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值