鄱阳湖水体区域识别¶
通过计算归一化水体指数 NDWI 指数提取鄱阳湖水体区域。
初始化环境¶
import aie aie.Authenticate() aie.Initialize()
Landsat-8 数据检索¶
使用 aie.Image 引用单景 Landsat-8 数据,并对数据进行去云处理。
def removeLandsatCloud(image): cloudShadowBitMask = (1 << 4) cloudsBitMask = (1 << 3) qa = image.select('QA_PIXEL') mask = qa.bitwiseAnd(aie.Image(cloudShadowBitMask)).eq(aie.Image(0)).And(qa.bitwiseAnd(aie.Image(cloudsBitMask)).eq(aie.Image(0))) return image.updateMask(mask)
image = aie.Image('LC08_L2SP_121040_20210605_20210614_02_T1') img = removeLandsatCloud(image)
水体提取¶
通过 aie.Image.normalizedDifference 函数实现归一化水体指数( NDWI )的计算。利用 aie.Image.where 、 aie.Image.lte 、 aie.Image.gt 实现水体与非水体的二分类提取。这里其实使用的是阈值法来进行分析的,使用的就是大于多少水体值或者小于水体值作为应用条件进行区分的。
ndwi=img.normalizedDifference(['SR_B3', 'SR_B5']) water=ndwi.where(ndwi.lte(aie.Image(0.0)),aie.Image(0)).where(ndwi.gt(aie.Image(0.0)),aie.Image(1))
map = aie.Map( center=image.getCenter(), height=800, zoom=7 ) # 水体区域为蓝色 vis_params = { 'min': 0, 'max': 1, 'palette' : [ '#a1a1a1', '#0000ff' ] } map.addLayer( water, vis_params, 'water', bounds=image.getBounds() ) map