IDL代码实现湖泊水体范围遥感提取

41 篇文章 15 订阅

 

 

 

 

 

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知识,关注我的个人微信公众号:遥感加油站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值