通过计算归一化水体指数 NDWI 指数提取鄱阳湖水体区域。
import aie
aie.Authenticate()
aie.Initialize()
使用 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