band math函数_ENVI波段运算(bandmath)运算逻辑及常用运算符详解
最近用ENVI做了下區域綠化覆蓋度的分析,也算是簡單應用了下ENVI這個軟件,這篇簡單介紹下ENVI的波段運算的運算邏輯和常用的運算符。
BandMath工具能夠方便的執行圖像中各個波段的加、減、乘、除、三角函數、指數、對數等數學函數計算,也可以使用IDL編寫的函數。BandMath工具使用函數都是基于IDL的數據組運算符。 IDL的數組運算符使用方便且功能強大。它們可以對圖像中的每一個像元進行單獨檢驗和處理,而且避免了FOR循環的使用(不允許在波段運算中使用)。
數組運算符包含關系運算符(LT、LE、EQ、NE、GE、GT)、Boolean運算符(AND、OR、NOT、XOR)和最小值、最大值運算符(<、>)。這些特殊的運算符對圖像中的每個像元同時進行處理,并將結果返還到與輸入圖像具有相同維數的圖像中。
例如:要找出所有負值像元并用值-999代替它們,可以使用如下的波段運算表達式:
(b1 lt 0)*(-999)+(b1 ge 0)* b1
運算邏輯
關系運算符對真值(關系成立)返回值為1,對假值(關系不成立)返回值為0。系統讀取表達式(b1 lt 0)部分后將返還一個與b1維數相同的數組,其中b1值為負的區域返回值為1;其他部分返回值為0,因此在乘以替換值-999時,相當于只對那些滿足條件的像元有影響。第二個關系運算符(b1 ge 0)是對第一個的補充——找出那些值為正或0的像元,乘以它們的初始值,然后再加入替換值后的數組中。
這個用法可以擴展到兩個圖像中,比如圖像1中值大于220(有云部分)用圖像2中對應的像素值代替,其余保留圖像1中的值,表達式就可以寫成:
(b1 gt 220)*b2+(b1 le 220)* b1
類似的使用數組運算符的表達式為波段運算提供了很強的靈活性。
常用運算符
下表中描述了BandMath工具中常用的IDL數組操作函數,詳細介紹,請參閱《IDL Reference Guide》。種類操作函數
基本運算加(+)、減(-)、乘(*)、除(/)
三角函數正弦sin(x)、余弦cos(x)、正切tan(x)
雙曲正弦sinh(x)、雙曲余弦cosh(x)、雙曲正切tanh(x)
關系和邏輯運算符小于(LT)、小于等于(LE)、等于(EQ)、不等于(NE)、大于等于(GE)、大于(GT)
AND、OR、NOT、XOR
最小值運算符(<)和最大值運算符(>)
其他數學函數指數(^)和自然指數(exp(x))
自然對數(alog(x))
以10為底的對數(alog10(x))
整型取整——round(x)、ceil(x)、和floor(x)
平方根(sqrt(x))
絕對值(abs(x))
個人郵箱:bigdata0321@163.com
總結
以上是生活随笔為你收集整理的band math函数_ENVI波段运算(bandmath)运算逻辑及常用运算符详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苏天伦?是谁?
- 下一篇: 军校政治审核 打架有影响吗?