1. 程式人生 > 其它 >ENVI FLAASH大氣校正常見錯誤及解決方法

ENVI FLAASH大氣校正常見錯誤及解決方法

本文彙總了ENVI FLAASH大氣校正模組中常見的錯誤,並給出解決方法,分為兩部分:執行錯誤和結果錯誤。前面是錯誤提示及說明,後面是錯誤解釋及解決方法。

FLAASH對輸入資料型別有以下幾個要求:

1、  波段範圍:衛星影象:400-2500nm,航空影象:860nm-1135nm。如果要執行水汽反演,光譜解析度<=15nm,且至少包含以下波段範圍中的一個:

  • 1050-1210 nm
  • 770-870 nm
  • 870-1020 nm

2、  像元值型別:經過定標後的輻射亮度(輻射率)資料,單位是:(μW)/(cm2*nm*sr)。

3、  資料型別:浮點型(Floating Point)、32位無符號整型(Long Integer)、16位無符號和有符號整型(Integer、Unsigned Int),但是最終會在匯入資料時通過Scale Factor轉成浮點型的輻射亮度(μW)/(cm2

*nm*sr)。

4、  檔案型別: ENVI標準柵格格式檔案,BIP或者BIL儲存結構。

5、  中心波長:資料標頭檔案中(或者單獨的一個文字檔案)包含中心波長(wavelenth)值,如果是高光譜還必須有波段寬度(FWHM),這兩個引數都可以通過編輯標頭檔案資訊輸入(Edit Header)。

執行錯誤

1、Unable to write to this file.File or directory is invalid or unavailable。

 

 

沒有設定輸出反射率檔名。

解決方法是單擊Output Reflectance File按鈕,選擇反射率資料輸出目錄及檔名,或者直接手動輸入。

2、ACC Error:convert7

IDL Error:End of input record encountered on file unit:0.

 

平均海拔高程太大。

注意:填寫影像所在區域的平均海拔高程的單位是km:Ground Elevation(Km)。

3、ACC error:avrd:

IDL error:Unable to allocate memory:to make array

         Not enough space

         ACC_AVRD

 

為了能處理大資料,ENVI採用分塊計算的方式,這個提示是分塊(Tile)太大了。

在高階設定裡面(Advanced Settings),tile size:它預設是File-> preferences ->miscellaneous:cache的大小,這個值正常是1~4Mb(0背景很少的情況下);如果0背景較多,這個值還是需要設定大一些,比如100~200m。

4、ACC error:avrd:No nonblank pixels found

IDL error:

OPENR: Error opening file. Unit: 100,

 

為了能處理大資料,ENVI採用分塊計算的方式,當Tile設定太小,而且有背景值(0),就會出現一個Tile中全部為0的情況,提示這個錯誤資訊。

在高階設定裡面(Advanced Settings),tile size:設定稍微大一些,如100~200M等。

5、ACC error:lsmooth2:

IDL error:

ACC_LSMOOTH2:Cannot continue with smoothing calculation

 

    ENVI的FLAASH提供領域糾正功能,但是MODIS、AVHRR等影象解析度比較低,領域效應區分不出來。

解決方法是在在高階設定裡面(Advanced Settings),將領域糾正(Use Adjacency Correction)設定為No。

6、ACC error:modrd5:Nonfinite numbers in coefficient array coef

IDL error:

CDRIVER4V3R2:>>>Wait for MODTRAN4 calculation to finish…

 

    提示傳入MODTRAN模型引數有誤,常常是由於太陽高度角太小或者太大引起的。提示這個錯誤之前會出現以下提示框。

 

解決方法:確認填寫的影像中心位置經緯度資訊(西經為負數、南緯為負數)、影像成像時間(格林威治時間)是否正確。

7、Problem:The FLAASH program exited with the following errors:
ACC error: modrd5:reading archieve file header
IDL error:
READU:End of file encountered. Unit: 102, File:
C:Users\administrator\AppData\Local\Temp\acc_modroot.fla
ACC_MODRD5
ACC_KTAEROSOL
ACC_HYPER2
ACC_ACC
ENVI_ACC_EVENT
ENVI_FLAASH_PROCESS_MANAGER
IDLRTMAIN
$MAIN$

 

   解決方法:在高階設定裡面(Advanced Settings),tile size設定太大,根據記憶體情況設定小一點的值。tile size的預設值是file->preference中cache size大小。

結果錯誤

1.         結果中某一個波段或者多個波段全部為0或者負值

主要產生的原因是輸入的輻射亮度資料值偏小。

可能有以下幾種情況:

(1)      在感測器定標的時候選擇的是表觀反射率(Reflectance)而不是輻射率資料(Radiance);

(2)      沒有做感測器定標,即沒有將DN值轉換為輻射率資料;

(3)      選擇了錯誤的波譜響應函式;

(4)      用BandMath做了輻射亮度的單位換算,在FLAASH中匯入輻射亮度資料時,Scale Factor選擇的不是1.0000。

2.         結果中極大值、極小值非常多,也就是0~10000之外的值。當選擇RGB假彩色顯示的時候,出現花花綠綠的情況。

 

    輻射定標得到的輻射率資料單位與FLAASH要求的單位不一樣。

可能有以下幾種情況:

(1)      用BandMath做了輻射亮度的單位換算,在FLAASH中匯入輻射亮度資料時,Scale Factor選擇的不是1.0000。

(2)      沒有做單位換算。

3.         結果中部分像元為負值

這個屬於正常現象。FLAASH是採用MODTRAN輻射傳輸模型模擬成像中的大氣過程,而且很多大氣屬性都是通過影象來估算,加上大氣組成的非均一性,即使MODTRAN4模型精度很高,也不能完全表達大氣輻射傳輸的真實狀況。當影像上有強吸收或者高反射地物時候,就會出現部分像元為負值(如深水、高密度)或者大於10000。

解決方法可以手動修改,如用周圍的像元的平均值代替,可以使用ENVI下的The DEM Editing Tool工具。

4.         結果影象以RGB顯示比原影象視覺效果要差,如模糊。

這個需要了解下遙感軟體RGB顯示機制。遙感軟體為了讓遙感影象顯示更加“豔麗”,方便解譯,預設會對影象進行拉伸顯示,一般是2%的線性拉伸。也就是我們常常會看到影象值有兩個,一個是Scrn值,也就是拉伸之後的顯示值,一個是Data值,也就是原始的影象DN值。另外一個方面,目前我們的RGB加色法顯示都是基於8bit顯示,也就是0~255。

FLAASH大氣校正之後的結果是16bit的整型,而且存在一些極小、極大值,這些對直方圖整體形狀有一定的影響,影響拉伸效果。解決方法是利用ENVI下的Interactive stretching工具,選擇有效值範圍進行拉伸。

還有一種情況是校正影象有很多背景值,比如經過幾何校正的整景TM影像。背景及影象邊緣處的像元在大氣校正之後變成負值或者0值,由於這樣的像元數量多,對影象的整體拉伸影響很大。解決方法就是將這些像元掩膜掉,如在ROI Tool中,利用Option->Band Threshold to ROI建立一個ROI進行影象裁剪。

5.         結果影象為什麼像元值大多是大於1

ENVI FLAASH考慮到資料儲存和後續處理,將大氣校正得到的反射率結果乘以10000變成16bit整型。

如果想讓反射率結果在0~1範圍,可用BandMath,表示式為b1/10000.0。