王淮亮,李玉寶,虞 毅,高 永,王鹿振,高君亮
(1.內蒙古農業大學生態環境學院,內蒙古呼和浩特 010019;2.溫州大學生命環境科學學院,浙江溫州 325035;3.國際竹藤網絡中心,北京 100102;4.青海省水利水電勘測設計研究院,青海西寧 810012;5.中國林業科學研究院 沙漠林業實驗中心,內蒙古 磴口 015200)
表層土壤粗粒化是土地荒漠化的主要表現形式之一,研究發現:土壤機械組成對土壤風蝕有顯著影響[1,2],土壤顆粒粒徑特征能夠反映土壤結構性狀[3],與土壤物理、化學性質緊密相關,可以作為評價土壤風蝕程度[4]和脆弱生態環境條件下土壤演變的一項綜合性定量指標[5,6]。因此,準確、迅速地把握地表粗顆粒的百分比例和殘留狀態,是準確判斷地表土壤侵蝕程度的首要條件,并能夠為制定相應的治理措施提供參考。
除傳統的篩分法外,人們嘗試了獲取地表物質粒徑信息的新方法[7,8]。近年來,隨著數值影像處理技術的發展,Pat S.Chavez等人開發出了一套對沙表數值影像進行三波段數值分析技術,能夠在不破壞現地沙表面狀態的情況下,較為準確地測算出地表各粒級沙粒的殘留量[9]。我們引進吸收了該技術,并通過試驗初步確立了應用ERDAS IMAGINE和ArcGIS軟件從數值影像中提取沙表粗顆粒信息的技術規程,圖像處理過程依次是:圖片格式轉換→圖像裁剪→空間模型分類→GIS矢量化→GIS小圖斑去除分析[10],但步驟多,操作繁雜,為使操作變的直觀、簡便,我們將方法改進后,在ERDAS9.0下開發了地表粗粒信息提取的客戶化模塊,本文將對該模塊的設計與實現進行介紹。
ERDAS IMAGINE(簡稱ERDAS)是美國ERDAS公司開發的遙感圖像處理系統。它以先進的圖象處理技術,友好、靈活的用戶界面和操作方式,面向廣闊應用領域的產品模塊,成為全球遙感、GIS及相關領域最受歡迎和最具競爭力的軟件系統之一[11]。ERDAS提供了覆蓋RS/GIS絕大部分領域的處理模塊,除此以外它還提供了一系列的客戶化工具。隨軟件本身自帶的EML(Erdas Macro Language)是宏語言的一種,可用于定義用戶界面的結構和內容及提供某些基本過程編輯能力,它允許用戶定制自己的界面,包括修改標準的ERDAS圖形用戶界面和定制自己的應用程序界面[12~15]。
空間建模工具(Spatial Modeler)是ERDAS下的一個模塊,是一個面向目標的模型語言環境,由空間建模語言(SML)、模型生成器(Model Maker)提供了23類共200多個函數和操作算子,可以操作柵格數據、矢量數據、矩陣、表格及分級數據。用戶只需要在窗口中繪出模型的流程圖,指定流程的意義和所有參數、矩陣,即可完成模型的設計[16]。圖形模型可以運行、編輯、保存或轉化為文本模型語言,并進一步使用SML進行編輯。高海東等還研究了客戶化ERDAS空間模型參數的方法[17]。
2.2.1 添加面板圖標 由于ERDAS IMAGINE界面是建立在EML語言基礎上的,它的大部分界面都由*.eml格式的EML文本寫成,此次,我們想要在系統界而上添加一個如圖1所示的Sand圖標,則首先將$IMAGINE_HOME/scripts/imagine.eml復制到$HOME/.imagine900/imagine.eml($IMAGINE_HOME是ERDAS9.0的安裝目錄,$HOME是其運行目錄),然后編輯復制的副本imagine.eml,在圖標面板定義塊中定義新的面板圖標。打開文件Imagine.eml,在frame iconpanel程序的后面添加如下的幾行:


圖1 圖標面板Fig.1 Icon Panel
添加完后,保存。重新打開ERDAS就可以發現在原有界面上添加了Sand圖標。圖標文件可以自己進行定義和編輯,將圖標指定為68×48大小的*.icon格式圖片,也可以是*.bmp位圖格式。
2.2.2 編輯子菜單客戶化界面 在上一步的程序中,load已經指定了新增模塊的文件名為sand.eml,由它來指定新的功能菜單,根據改進的ERDAS下地表粗粒信息提取步驟編寫sand.eml的內容:

圖2 子菜單客戶化界面Fig.2 Customized submenus
component Sand{
frame windows{title"粗粒化信息提取";
button viewer{title" 圖 片 瀏 覽 ...";
geometry 0,2,150,28;
on mousedown{viewer create at 0 125 size 500 600;}}
button import{title"圖 片 格 式 轉 換 ...";
geometry 0,32,150,28;
on mousedown{load"import.eml";}}
button subset{title"圖 像 裁 剪 ...";
geometry 0,62,150,28;
on mousedown{load"ii_subset.eml";}}
button modeler{title"空 間 模 型 分 類 ...";
geometry 0,92,150,28;
on mousedown{load"model.eml";}}
button cleantools{title"小 斑 去 除 分 析 ...";
geometry 0,122,150,28;
on mousedown{load"cleantools.eml";}}
button rasttovect{title"矢 量 化 ...";
geometry 0,152,150,28;
on mousedown{load"rasttovect.eml";}}
button cancel{title"關 閉";
below rasttovect;
size 5.5,1.5;
on mousedown unload;}
button help{title"幫 助";
rightof cancel;
size 5,1.5;
on mousedown showhelp;}
}
on startup display windows;}
運行后生成的地表粗粒化信息提取模塊的子菜單客戶化界面如圖2a所示,同樣的方法,在“空間模型分類”和“小圖斑去除分析”兩個子菜單下還完善了二級子菜單(圖2b,圖2c)。可見,該設計包含了地表粗粒信息提取的所有步驟,除空間模型分類需進一步編輯外,每個命令均可調用ERDAS軟件的相應功能算法,相比ERDAS的原英文界面直觀便捷。
王鹿振等通過試驗,用Spatial Modeler模塊確定了一套適合粗粒信息分類的規則[10]。但是,生成的圖形模型包含有文件路徑參數,在對多個文件應用同一個算法進行處理時,就需要不斷更改模型的輸入輸出參數,應用時非常麻煩。為解決此問題,我們對相應的空間圖形模型參數進行了客戶化,設計了交互式對話框。以“烏審旗地表粗化信息分類模型”為例,實現方法如下。
2.3.1 生成空間圖形模型的文本模型 定義模型中圖形對象的參數和操作后,將其轉化為SML編寫的文本模型,在Spatial Modeler菜單欄中選擇Process→Generate Script保存為文本模型,文件名為wushen.mdl保存于 ERDAS運行目錄下,如“C:Documents and SettingsAdministrator.imagine900”。

圖3 定義操作對象和函數后圖形模型Fig.3 Graphical model by defined object-operated and function
2.3.2 圖形模型參數客戶化 用文本編輯器將生成的文本模型打開,可以看到,在圖形模型中使用矢量對象和柵格對象時,文本模型保存了數據對象的完整路徑,如此例中的18和19行。在這里,將模型保存的數據對象的完整路徑分別替換為arg1(變量1)和arg2(變量2)。替換之后文本模型如圖4所示,將文本模型按原文件與存儲路徑進行保存。

圖4 文本模型Fig.4 Script model
替換文本模型中的數據對象參數后,在$HOME/.imagine900目錄下創建wsq_model.eml文件(該文件名是由烏審旗模型分類子菜單代碼制定),然后利用EML來編輯定制該模型的對話框界面。部分函數定義如下:
component wsq_model{
frame wsq_model{title"烏審旗地表粗化信息提取模型";
statusbar;
filename outputname;
button ok;
button batchbutton;
……
filename input{title above left"輸入文件:";
info"選擇欲處理的圖片.";
shortform;
geometry 10,15,160,49;
select getpref("eml""default_data_path")+"/*.img";
filetypedef"raster";
……
on input{
if(($input!="")&($outputname!="")){
enable ok;
enable batchbutton; }
else
{disable ok;
disable batchbutton;} }
}
……
on startup{display wsq_model;}}
點擊“烏審旗模型分類…”子菜單命令,便可運行編輯后的EML文件,對話框程序界面如圖5所示。提示用戶輸入處理對象和輸出結果。生成的模型可以多次運行,當對多個文件進行相同的操作時,不必在圖形模型中逐次修改參數,還可進行自定義空間模型法則的批處理,提高工作效率。

圖5 用戶對話框Fig.5 User dialog box
我們制定了利用ERDAS IMAGINE從RGB三波段光學照片中獨立提取地表粗粒化信息的操作步驟(①圖片格式轉換→②圖像裁剪→③粗粒化信息空間模型分類→④小圖斑去除分析→⑤矢量化),并利用軟件自帶的Spatial Modeler和EML集成、開發了便捷的客戶化應用模塊,相比之前確立的利用ERDAS IMAGINE及ArcGIS軟件聯合提取地表粗粒化信息的方法[10],簡化了多文件相同算法處理時不斷更改模型輸入輸出參數的繁瑣操作,漢化、直觀的模塊界面能有效地提高圖像處理效率。
ERDAS IMAGINE作為遙感圖像處理系統,擁有面向廣闊應用領域的產品模塊、服務于不同層次用戶的模型開發工具。利用Spatial Modeler可按照自己的需求進行簡單的圖形應用編程,以便用戶設計出最適合數據的處理算法[17],EML語言的功能主要是用戶對圖形界面的客戶化,可對軟件界面進行實時的編輯無須重新啟動軟件,用戶進行界面客戶化的時候十分方便,此次地表粗粒信息提取模塊的開發實現了Spatial Modeler工具與EML宏語言的完美結合,使這些函數的功能在可視化界面上得到了良好的發揮。
但是,隨著科技的發展,對ERDAS功能的需求越來越多,ERDAS IMAGINE二次開發還存在缺點:首先需要用戶對它的控件屬性掌握的很好,不然在使用EML編輯調試時容易出錯[13];其次,Spatial Modeler提供的自帶函數的功能有限,一些圖像的處理算法還較落后,而且不允許用戶自己開發新的數據結構加入其中,因此,現有的開發工具還急待改善[14,15]。本次開發的各個程序文件可以和其他的用戶進行交流,希望能為ERDAS在土壤侵蝕、荒漠化監測以及路面、墻體等裂隙評估領域的開發應用提供參考。
[1]Chepil W S.Factors that influence clod structure and erodi-ability of soil by wind:II.Water stable structure[J].Soil Sci,1953,76:389-399
[2]T·雅庫布夫.土壤風蝕及其防治[M].北京:中國農業出版社,1955.15-26
[3]齊雁冰,常慶瑞,惠泱河.人工植被恢復荒漠化逆轉過程中土壤顆粒分形特征[J].土壤學報,2007,44(3):566-569
[4]張國瑞.農田風蝕土壤的顆粒分形特征研究[D].內蒙古農業大學,2007,6
[5]任 雪,褚貴新,王國棟,等.準噶爾盆地南緣綠洲-沙漠過渡帶“肥島”形成過程中土壤顆粒的分形研究[J].中國沙漠,2009,29(2):298-304
[6]高君亮,李玉寶,虞 毅,等.毛烏素沙地不同土地利用類型土壤分形特征[J].水土保持研究,2010,17(6):220-223
[7]朱元駿,邵明安.黃土高原水蝕風蝕交錯帶小流域坡面表土礫石空間分布[J].中國科學D輯:地球科學,2008,38(3):375-383
[8]王獻禮,張永雙,曲永新,等.基于數字圖像處理技術的冰川堆積物粒度分析—以川西貢嘎山冰川堆積物為例[J].地質通報,2010,29(2-3):469-475
[9]MACKINNON D J,CHAVEZ P S,JR.Extraction of the geometry of surface clasts from ground-based digital images:Application to studies of wind erosion[C].In:Lee,Jeffrey A.and Zobeck,Ted M.,2002,Proceedings of ICAR5/GCTE-SEN Joint Conference,International Center for Arid and Semiarid Lands Studies,Lubbock,Texas,USA Publication.2002-2:127-129
[10]王鹿振.基于數字圖像處理的風蝕地表粗化信息提取研究[D].北京:中國林業科學研究院,2010
[11]ESRI中國(北京)有限公司.ERDAS IMAGINE遙感圖像處理系統產品介紹[G].2004
[12]ERDAS,Inc.Atlanta,Georgia.ERDAS Macro Language Reference Manual[G].2003
[13]劉俊杰,賈永紅,柯美忠.Erdas Imagine二次開發與客戶化方法研究[J].地理空間信息,2003,12,01(4):29-30,33
[14]劉丹丹,劉合林.建立經驗統計遙感信息模型時數據處理中的C Toolkit方法[J].東北林業大學學報,2008.12,36(12):36-38
[15]谷光宗,任 靜,孟 城,等.基于 ERDAS IMAGINE—C Toolkit的二次開發[J].測繪工程,2008.8,17(4):66-69,73
[16]黨安榮,王曉棟,陳曉峰,等.ERDAS IMAGINE遙感圖像處理方法[M].北京:清華大學出版社,2003
[17]高海東,王 濤.ERDAS IMAGINE空間模型參數客戶化的實現方法[J].測繪與空間地理信息,2009,2,32(1):120-122