
BandMath工具能夠方便的執(zhí)行圖像中各個(gè)波段的加、減、乘、除、三角函數(shù)、指數(shù)、對(duì)數(shù)等數(shù)學(xué)函數(shù)計(jì)算,也可以使用IDL編寫的函數(shù)。BandMath工具使用函數(shù)都是基于IDL的數(shù)據(jù)組運(yùn)算符。
IDL的數(shù)組運(yùn)算符使用方便且功能強(qiáng)大。它們可以對(duì)圖像中的每一個(gè)像元進(jìn)行單獨(dú)檢驗(yàn)和處理,而且避免了FOR循環(huán)的使用(不允許在波段運(yùn)算中使用)。數(shù)組運(yùn)算符包含關(guān)系運(yùn)算符(LT、LE、EQ、NE、GE、GT)、Boolean運(yùn)算符(AND、OR、NOT、XOR)和最小值、最大值運(yùn)算符(<、>)。這些特殊的運(yùn)算符對(duì)圖像中的每個(gè)像元同時(shí)進(jìn)行處理,并將結(jié)果返還到與輸入圖像具有相同維數(shù)的圖像中。例如:要找出所有負(fù)值像元并用值-999代替它們,可以使用如下的波段運(yùn)算表達(dá)式:
(b1 lt 0)*(-999)+(b1 ge 0)* b1
關(guān)系運(yùn)算符對(duì)真值(關(guān)系成立)返回值為1,對(duì)假值(關(guān)系不成立)返回值為0。系統(tǒng)讀取表達(dá)式(b1 lt 0)部分后將返還一個(gè)與b1維數(shù)相同的數(shù)組,其中b1值為負(fù)的區(qū)域返回值為1;其他部分返回值為0,因此在乘以替換值-999時(shí),相當(dāng)于只對(duì)那些滿足條件的像元有影響。第二個(gè)關(guān)系運(yùn)算符(b1 ge 0)是對(duì)第一個(gè)的補(bǔ)充——找出那些值為正或0的像元,乘以它們的初始值,然后再加入替換值后的數(shù)組中。這個(gè)用法可以擴(kuò)展到兩個(gè)圖像中,比如圖像1中值大于220(有云部分)用圖像2中對(duì)應(yīng)的像素值代替,其余保留圖像1中的值,表達(dá)式就可以寫成:
(b1 gt 220)*b2+(b1 le 220)* b1
類似的使用數(shù)組運(yùn)算符的表達(dá)式為波段運(yùn)算提供了很強(qiáng)的靈活性。下表中描述了BandMath工具中常用的IDL數(shù)組操作函數(shù),詳細(xì)介紹,請(qǐng)參閱《IDL Reference Guide》。