1 基本原理与方法
最 常 用 的 水 体 提 取 方 法 是 归 一 化 植 被 指 数 法 NDVI,计 算 公 式 为(Rnir-Rred)/(Rnir+Rred)。有许多研究使用了 NDWI 或它的改进形式,用以在遥感影像上区分陆地和水体。
2 水体提取方法
在辐射传输模拟的基础上,Hu(2009)提出了一种浮藻指数 FAI(Floating Algae Index)。利用 MODIS 遥感影像获取 FAI的计算公式如下:
FAI=Rrc.859 - R'rc.859. (1)
R'rc.859=Rrc.645+(Rrc.1 240-Rrc.645)(859-645)/(1 240-645)(2)
在公式(1),(2)中,数字为 MODIS 的各个波段的中心波长,500 m 分辨率的 1 240 nm 波段先需要用锐化的方法重采样到 500 m(跟 1 真彩色合成影像类似)。因为气溶胶反射率在 645~1 240 nm之间,随着波长的增加呈近似线性衰减趋势,基线减法可以视作是一种有效的大气校正方法。
3 主要代码 :
;645,859 和 1240 三个波段数据读取
read_hdf , hdf_file=MODIS_file,tag_name='CorrRefl_01' ,
data=Ref_645read_hdf,hdf_file=MODIS_file ,tag_name='CorrRefl_02' ,
data=Ref_859
read_hdf,hdf_file=MODIS_file,tag_name='CorrRefl_03',data=Ref_1240
width=(size(Ref_645))[1] & length=(size(Ref_645))[2]
;梯度 gradient 计算
radius=1
strucElem=SHIFT(DIST(2*radius+1),radius,radius) LE radius
morphImg=MORPH_GRADIENT(FAI_img,strucElem)
compute_hist,morphimg,1,hist_x,hist_y
;水体范围提取
hist_x=hist_x[idx]
hist_y=hist_y[idx]
Water_idx=where(FAI_imgltThreshold,count)
water_area=bytarr(width,length)
water_area[idx]=255
;结果以 png 格式输出
write_png,’water_area.png’,water_area,/order
4 精度验证
HJ-1A/1B CCD 数据具有高空间分辨率(30 m),可以将其提取的水体范围视作近似“真实值”来验证 MODIS 数据的提取结果。HJCCD 的水体提取方法与 MODIS 类似,但由于其没有短波红外的设置,无法估算 FAI,因此此处选用 NDVI 和梯度的方法来提取水边界线。对相同日期 MODIS 和 HJCCD 影像提取的结果进行了叠加分析。HJ-1A/1B CCD 数据较高的空间分辨率(30 m)使其获取的结果能表达更多的细节特征。
更多遥感和GIS知识,关注我的个人微信公众号:遥感加油站