Earth Engine下水体提取

本次内容为Landsat-8遥感影像中水体的提取,用到了New Water Index(NWI)指数,效果较好。

文献(丁凤,2009)中还花一定篇幅对大气校正进行阐述,意在体现其重要性。但个人认为如果只是对分类或提取,大气校正其实是鸡肋的(真香警告),所以本次辨证地对TOA(大气层顶反射率)计算结果NWI(TOA)和SR(地表反射率)计算结果NWI(SR)进行了对比:在案例区域(长江黄冈段)中,NWI(TOA)只要大于0就可以很好地提取出水体,而NWI(SR)则要自己调整阈值。但在后面的普适性验证中,发现NWI(TOA)>0这样的条件虽然很简单,实则并不具备普适性,容易将山体阴影也划分为水体,所以最后还是在案例区域找到了适合NWI(SR)的阈值,并在我国大部分区域(华东,华南,华北,东北,西北,西南,台湾北,台湾南)做了验证,发现-0.6这个阈值很适合Landsat-8地表反射率产品计算的NWI指数做水体提取,对于快速提取水体有很大帮助。有兴趣的可以自行验证。(注:Earth Engine中的SR产品需要除10000才是小于1的反射率值)

以东北地区验证为例,结果如下,蓝色即为水体:

Earth Engine下水体提取_第1张图片

不足:提取结果中包含水田或蓄水池,且对于单像元的水体也可以进行提取,所以提取结果存在碎斑化现象。

/*
 * Extrction of Water
 * Using Landsat-8 Imagery
 *
 * Author: Deserts Tsung, Nov 20,2018
 * Chengdu University of Information Technology
 *
*/


// Function of Water Extraction
// Following New Water Index(NWI) was Proposed by DING Feng in 2009
var waterExtraction = function(inputImage) {
  var B1 = inputImage.select('B1'), B5 = inputImage.select('B5');
  var B6 = inputImage.select('B6'), B7 = inputImage.select('B7');
  var infrareds = B5.add(B6).add(B7);
  var NWI = B1.subtract(infrareds).divide(B1.add(infrareds)).rename('NWI');
  var waterPart = inputImage.updateMask(NWI.gte(-0.6));
  return waterPart;
};

var sr = ee.Image('LANDSAT/LC08/C01/T1_SR/LC08_122039_20181026').divide(10000);
var wtrImg = waterExtraction(sr);
Map.addLayer(sr,{bands:['B5','B4','B3'],min:0,max:0.4},'sr');
Map.addLayer(wtrImg.select('B5'),{palette:'#00FFFF'},'water');


// East P.R.China Verified
// South P.R.China Verified
// North P.R.China Verified
// North-east Area Verified
// South-west Area Verified
// North-west Area Verified
// North Taiwan Area Verified
// South Taiwan Area Verified

 

你可能感兴趣的:(Earth,Engine)