Google Earth Engine(GEE)——利用归一化建筑指数NDBI(不透水层)提取建筑物
问题:
有粉丝问到,如何进行建筑物的提取,其实这里有两个方法,一个是有一个数据集可以直接获取建筑物的轮廓,具体内容可以看我之前的文章:
(2条消息) Google Earth Engine ——高分辨率 50 厘米卫星图像的建筑物轮廓数据集_此星光明的博客-CSDN博客

归一化建筑指数:
NDBI是查勇等在杨山提出的仿归一化植被指数基础上提出的, 它可以较为准确地反映建筑用地信息, 数值越大表明建筑用地比例越高, 建筑密度越高。计算公式如下:

式中,RNIR、RMIR分别为图像的近红外、中红外的反射辐射值,对应OLI数据的5波段、6波段。
NDBI图像颜色越深,代表值越大,表明建筑用地比例越高,建筑密度越高,通过目视解译,不断调整NDBI阈值,直到找到合适的阈值,提取建设用地,调整阈值后获得不透水面分布 。
这里是GEE中oli的数据

代码:
//加载矢量数据
var hh= ee.FeatureCollection("users/bqt2000204051/huanghe_shp");//Landsat5/7/8 SR数据去云
function rmCloud(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);
} //进行归一化指数计算
function ndv_LANDSAT_8(image) {var ndbi = image.normalizedDifference(['B6', 'B5']);return image.addBands(ndbi.rename('NDBI'));
}//视觉参数:
var visParam = {min: -0.1,max: 0.9,palette: 'FFFFFF, CE7E45, DF923D, F1B555, FCD163, 99B718, 74A901, 66A000, 529400,' +'3E8601, 207401, 056201, 004C00, 023B01, 012E01, 011D01, 011301'
};//加载影像//这里可以加载Landsat、sentinel等影像,根据自己的需求自己去探寻var l8Col= ee.ImageCollection("LANDSAT/LC08/C01/T1_SR").filterBounds(hh).filterDate("2015-1-1", "2016-1-1") .map(rmCloud).map(ndv_LANDSAT_8);var scol_clip =l8Col.qualityMosaic('NDBI').clip(hh);
print("scol_clip",scol_clip);Map.addLayer(scol_clip.select("NDBI"), visParam,'NDBI');
//下载影像
Export.image.toDrive({image: scol_clip,description: '2011_sr',folder: 'training02',scale: 1000,region:hh
});




本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
