卜麗靜,鄭新杰,張正鵬,蘭文婷
(1.遼寧工程技術大學 測繪與地理科學學院,遼寧 阜新123000;2.大連九城測繪企業集團,遼寧 大連116002)
近幾年來,“3S(GPS、GIS、RS)”技術日益成熟,“3S”的集成技術也快速發展。其中,GIS與RS的集成是“3S”集成中最重要、最核心的內容,進行遙感與GIS一體化集成技術的研究成為熱點。Arc-GIS作為目前主流的GIS軟件,是一套完整的、可無縫擴展的GIS平臺軟件,具有管理和分析空間數據的功能,可以通過二次開發語言對桌面功能進行擴展,但它并沒有提供完善的遙感圖像處理功能。ENVI作為主要的遙感圖像處理軟件,它是基于IDL語言開發,囊括眾多成熟和特有的遙感圖像處理功能函數并且可以根據用戶需要二次開發的開放平臺,其豐富的圖像處理功能可以供外部程序調用[1]。因此,推動“3S”集成技術中的GIS與RS的集成研究,開發基于Arc GIS與ENVI軟件的集成系統,滿足社會和行業的發展需求。
常用的Arc GIS二次開發語言有Python,VBA,VB,.net等。其中,Pyt hon作為一種簡單而且功能強大的開放性編程語言備受矚目,它具有簡單易學、不受局限、可以跨平臺使用等諸多優點[1],因此Arc GIS 9.0以上版本開始引入Pyt hon語言,更重要的是Pyt hon模塊可以把基于IDL開發的功能集成到Arc GIS中,為Arc GIS和ENVI的一體化集成提供至關重要的技術支持。因此,基于Python模塊進行集成研究也是近幾年的研究熱點。
目前,很多學者都是從宏觀上討論遙感和GIS一體化集成的可能性及集成的方法,但這些研究在GIS和RS方向只是對Python集成研究的思路或某一功能的介紹,并沒有一個基于Python開發的集成GIS與RS功能的應用系統。本文從礦山遙感監測需求出發 分析礦山遙感監測中需要集成的GIS和RS功能,介紹實用性極強的礦山遙感監測系統。
礦產資源作為人類重要的自然資源之一,是人類社會發展的重要物質基礎,然而礦山的開采過程中存在許多亂采亂挖的現象,并由此帶來礦區生態環境污染、土地荒漠化、滑坡、沉降、崩塌等一系列地質災害 礦山遙感監測系統的建立旨在利用RS和GIS的各自優勢,對礦區的動態變化進行實時監測,對礦區的各種矢量數據、遙感影像、變化檢測的數據進行有效管理(見圖1),分析礦區動態變化趨勢、變化特征,從礦山的信息動態變化中監測、識別和分析各種典型的變化信號,使其成為恢復礦區生態環境、防災減災、保護環境的重要技術支持,為有關部門制定相應的處理措施提供數據支撐[3]。

圖1 礦山遙感監測系統總體框架設計
礦山遙感監測系統主要具有基本的操作功能和GIS、RS方面的處理功能,如監測數據庫的建立、監測成果圖的編制等GIS方面的處理功能;遙感圖像的預處理、動態監測、特征提取等RS方面的處理功能,基于礦山遙感監測的需求,總結礦山遙感監測中需要的GIS和RS的相應功能,如圖2所示[4]。

圖2 礦山遙感監測系統功能設計
目前,進行系統開發可以選擇獨立開發或二次開發,一般獨立開發方法周期長、經費高、對開發語言水平要求較高,而二次開發方法具有周期短、成本低、實現速度快的優勢。所以本系統選擇基于Arc GIS和ENVI/IDL的集成二次開發。Arc GIS和ENVI/IDL的集成開發方法較多,其中主要有以下幾種方法[5]。
1)ENVI/IDL和Arc GIS Engine組件庫組合的開發方法
2)ENVI/IDL和Arc GIS Server一體化組合的開發方法。
3)基于Python的ENVI/IDL和Arc GIS桌面定制的開發方法。
第一種方法在開發時,用第三方語言調用ENVI的圖像處理功能則是開發的難點,需要一定編程語言和二次開發基礎;第二種方法主要是將圖像處理功能集成在服務端,客戶端對數據進行顯示和輸出,但是這種方法在一定程度上會受到網絡速度的限制,無法實現大數據量的遙感圖像的實時傳輸和顯示;第三種方法利用Python語言將ENVI/IDL和Arc GIS鏈接起來,方法簡單、易實現,參數的傳遞過程如圖3所示。所以通過以上的分析對比,筆者采用第三種方法。

圖3 參數傳遞圖
系統基于Arc GIS進行二次開發,需要的Arc-GIS功能可以直接調用。圖像處理功能則需要調用ENVI中的功能,即需要將ENVI的圖像處理功能嵌入到Arc GIS中。主要的流程如圖4所示。

圖4 系統開發流程
系統開發的詳細步驟如下
1)編寫系統中需要的遙感圖像處理功能。在ENVI/IDL中編寫IDL程序,將其編譯成.sav文件供Python腳本調用。具體方法如下:打開IDL,設置工程名和保存路徑,在工程文件中編寫需要實現的圖像處理功能程序,生成.pro文件并編譯成.sav文件供下一步Pyt hon調用。
2)編寫Python腳本文件,實現在Arc GIS中調用ENVI/IDL功能。編寫Pyt hon腳本,Pyt hon腳本可以嵌入到Arc GIS中,同時Python腳本又可以通過envipy模塊運行編寫好的.sav文件,并獲得用戶從交互界面中輸入的參數,將其傳遞給IDL程序,從而實現在Arc GIS下運行相應的圖像處理功能。
3)在Arc GIS中構建遙感圖像處理功能的交互界面。為了將編寫完成的Python腳本嵌入到Arc-GIS中,為實現在Arc GIS下可以直接使用圖像處理功能,需要創建交互界面。交互界面創建步驟如下:在Catalog中指定或者新建一個文件夾并添加NEW-toolbox,然后在該工具箱中添加一個新的腳本,將寫好的*.py文件和腳本關聯。最后,設置ENVI功能程序中的參數完成交互界面的創建。當運行腳本時,就會彈出輸入參數的界面,可以根據自己的情況輸入所需要的參數。
4)編寫系統主界面功能菜單。通過以上方法,實現遙感圖像處理功能的載入,為便于用戶使用,需要建立礦山遙感監測系統的主界面菜單?;贏rc GIS10.1的平臺上可以用Python Add-in做個加載項插入到Arc GIS f or Desktop應用程序中來完成系統菜單的定制。
以阜新海州露天礦及周邊地區作為監測對象。阜新海州露天礦,1953年7月1日正式定名為海州露天礦。2005年7月,海州露天礦正式閉坑破產。同時在阜新市中心區留下一個長4 k m、寬2 k m、深350 k m的廢棄礦坑,嚴重污染環境并威脅周邊企業單位和人民群眾的生命財產安全。
利用Pyt hon語言的優勢,結合IDL語言,將ENVI中的圖像處理功能集成到Arc GIS中,搭建起遙感監測系統,對阜新海州露天礦區及其周邊區域的動態變化情況進行監測。系統主界面如圖5所示。

圖5 系統主界面
通過對2004年(見圖6)和2011年(見圖7)兩幅T M影像進行變化檢測,得到變化后的影像圖如圖8所示,可以利用不同波段對地物的敏感性不同這一特性,通過選擇不同的波段來確定地面不同的變化,例如地面植被覆蓋率、地質巖層等等。同時利用空間分析、面積量測等功能,采用數理統計分析方法,掌握礦區動態變化趨勢。

圖6 2004年海州露天礦

圖7 2011年海州露天礦

圖8 變化監測圖
本文基于Pyt hon語言在Arc GIS10.1的平臺下二次開發礦山遙感監測系統,將ENVI中的相關遙感圖像處理功能集成到系統中,使Arc GIS和ENVI功能集成,從軟件開發角度實現GIS與RS的一體化,避免數據在不同軟件間的操作,節省時間,提高工作的效率,也對相關系統開發提供有價值的參考。
[1] 孫廣磊.征服Python-語言基礎與典型應用[M].北京:人民郵電出版社,2007.
[2] 胡卓瑋,王志恒.基于RS與GIS混合編程的公路水毀災情 信 息 提 取[J].自 然 災 害 學 報,2013,22(1):94-101.
[3] 雷兵,甘宇航.礦區環境動態監測系統建設研究[J].遙感信息,2014,29(4):103-106.
[4] 張賜.ENVI Tools for Arc GIS的開發與應用研究[D].上海:華東師范大學,2011.
[5] 鄧樹斌,陳秋錦.遙感與GIS一體化集成技術研究[A].中國遙感應用協會2010年會暨區域遙感發展與產業高層論壇論文集[C],2010.
[6] 朱道強,關海濤.Pyt hon在Arc GIS中的應用[J].測繪與空間地理信息,2013,36(7):151-154.
[7] 彭海波,向洪普.基于Python的空間數據批量處理方法[J].測繪與空間地理信息,2011,34(4):81-87.
[8] 王國強,張貝克.基于Python的嵌入式腳本研究[J].計算機應用與軟件,2010,27(3):107-109.
[9] 吳芳,趙知勁.基于Python的IA分布式系統[J].計算機工程,2009,35(19):283-285.
[10]羅霄,任勇,山秀明.基于Python的混合語言編程及其實現[J].計算機應用與軟件,2004,21(12):17-18.
[11]馬玲.遙感與GIS技術在礦山環境監測與質量評價中的應用—以攀枝花釩鈦磁鐵礦—寶鼎煤礦區為例[D].成都:成都理工大學,2008.
[12]李學淵.基于RS與GIS的礦山監測管理信息系統的設計與實現[D].北京:中國地質大學,2011.