劉聞欣 盧陳濤
摘要:GIS與遙感的集成是一種發(fā)展趨勢,兩者的結合可以實現空間分析與影像處理的集成,本文以ArcGIS平臺與ENVI/IDL平臺為例,以地理處理建模為基礎,使用ArcGIS的腳本語言,進行影像處理工具的構建,完成二者工作流的集成。
關鍵詞:遙感與GIS集成;一體化;地理處理
作為GIS的核心組成部分,遙感影像是提供及時信息的理想方式。遙感與GIS不僅從數據上,還會從整個軟件架構體系上真正實現融合,從而可以達到優(yōu)勢互補,進一步提升GIS軟件的可操作性,提升空間和影像分析的工作效率,并有效節(jié)約系統(tǒng)成本。ENVI與ArcGIS一體化集成不僅可以從最開始的進行數據互操作,而達到工作流的無縫連接,全面提升遙感影像價值,進一步提升了空間和影像分析的工作效率,并有效節(jié)約系統(tǒng)成本。
1.GIS與遙感集成的數據基礎
遙感與GIS集成基礎,在于GIS數據與遙感數據的互操作和共享。兩者之間的直接訪問。具體功能表現在:
1) 對GeoDatabase的訪問。GeoDatabase是天然的一體化數據管理模型。GeoDatabase采用標準的RDBMS技術,支持柵格與矢量數據的集中存儲。ENVI軟件完全支持對GeoDatabase的訪問。
2) 對文件的操作。ENVI支持E00和Shapefile文件的格式。可以將shapefile文件作為矢量數據在ENVI中進行顯示與操作。
3) 對服務的訪問。ArcGIS企業(yè)級服務在ENVI中可以通過RemoteConnectionManager進行遠程服務器的連接,這是ENVI將作為一個客戶端,支持OGCWebCoverageService(WCS服務)和OGCWebMapService(WMS)服務。進行服務連接成功之后,就可以在ENVI軟件中進行影像的訪問處理與顯示等操作,與處理本地數據相似。
2.基于地理處理集成遙感影像處理的技術基礎
(1) ENVI平臺語言IDL
IDL語言IDL是完全面向矩陣的,因此它具有快速分析超大規(guī)模數據的能力。IDL可以通過靈活方便的I/O分析任何數據。可以讀取和輸出任意的有格式或者無格式的數據類型,支持通用文本及圖形數據,并且支持在NASA、TPT、NOAA等機構中大量使用的HDF、CDF等科學數據格式。IDL還支持字符、字節(jié)、16位整型、長整型、浮點、雙精度、復數等多種數據類型。
直接調用ENVI庫程序,通過IDL可以調用ENVI中豐富的函數庫,完成影像的處理功能,在ENVI中可以實現的功能均可由IDL調用實現。
(2) Python語言對ArcGIS平臺的支持
Python提供了很多可能:與GIS系統(tǒng)集成、跨平臺、容易與其他語言混合使用(C,C++,FORTRAN,Java)。許多處理分析GIS數據的包和工具已經被開發(fā)出來?;竟δ馨?,操作shapefile,grid圖像,以及更復雜的格式,如ArcSDE、web服務、數據庫等。
(3) ArcGIS與ENVI/IDL中都提供了對Python語言的支持
ENVIToolbox的提供,ENVI的圖像處理和分析功能作為獨立的工具嵌在ArcGISToolbox,這些工具可以直接運行完成圖像處理任務,也可以進行ModelBuilder建模,在安裝ENVI的時候,這些工具同時安裝在ArcGIS中。
Python作為ArcGIS的腳本語言,可以直接調用ArcGIS中的地理處理功能,完成地理處理的任務,ArcGIS10引入了ArcPy,它涵蓋并進一步加強了ArcGIS9.2中所采用的arcgisscripting模塊的功能。ArcPy提供了一種用于開發(fā)Python腳本的功能豐富的動態(tài)環(huán)境,同時提供每個函數、模塊和類的代碼實現和集成文檔。包括制圖模塊(arcpy.mapping)、SpatialAnalyst模塊(arcpy.sa)和GeostatisticalAnalyst模塊(arcpy.ga)。
使用以ArcPy編寫的ArcGIS應用程序和腳本的優(yōu)勢在于,可以訪問并使用由來自多種不同領域的GIS專業(yè)人員和程序員開發(fā)的大量Python模塊。通過解釋和動態(tài)輸入這種編程語言,用戶可以在交互式環(huán)境中快速地創(chuàng)建腳本原型并進行測試,同時這種編程語言功能強大,可編寫大型應用程序。
“envipy”是ITT專門為ENVI/ArcGIS一體化開發(fā)的一個python模塊,envipy與IDL代碼中調用ENVI庫函數時的加載的代碼ENVI,/RESTORE_BASE_SAVE_FILES和ENVI_BATCH_INIT的效果是一樣的,就是加載ENVI的進程。
由于ArcGIS對python語言的支持,和Arcpy與envipy模塊的提供,為使用地理處理完成遙感圖像處理提供了技術基礎。使用envipy模塊和arcpy模塊結合,可以編寫地理處理腳本,把以上的優(yōu)點結合起來,完成ENVI/IDL平臺與ArcGIS平臺工作流的集成,使用地理處理工具箱完成影像的處理任務。
3.地理建模實現遙感功能的步驟
建立遙感工具可以分為以下步驟
1、 指定存儲文件夾
指定路徑存放IDL文件和Python腳本文件
2、 編寫IDL程序,生成“sav”文件
在IDL的利用IDL調用ENVI的圖像處理接口實現某一圖像處理功能;再編譯成sav文件供Python腳本中envipy.RunTool()調用。有兩種編譯方式:命令行和按鈕操作。
3、 編寫Python腳本
Pythonscript文件是為了從用戶交互式界面中獲取參數,執(zhí)行腳本文件時將這些參數傳遞給圖像處理程序(IDL編寫了.sav文件)調用圖像處理的功能。
利用Python來編寫腳本調用ENVI/IDL工具,包含三個部分:
(1)導入envipy類。
“envipy”是ITT專門為ENVI/ArcGIS一體化開發(fā)的一個python模塊,envipy與IDL代碼中調用ENVI庫函數時的加載的代碼ENVI,/RESTORE_BASE_SAVE_FILES和ENVI_BATCH_INIT的效果是一樣的,就是加載ENVI的進程。
(2)從GP對象中獲取參數。
(3)調用envipy類中的‘RunTool方法。
4、 構建用戶界面
在Catalog中構建界面需要三步驟:
1、 創(chuàng)建文件和工具箱toolbox;
指定一個路徑創(chuàng)建一個文件夾,用于存放ArcToolbox文件。
2、 給toolbox添加script;
運行工具添加運行腳本,設置運行環(huán)境,設置輸入輸出參數等
3、 運行該腳本script。
ESRI提供了三種運行方法,可以直接雙擊運行,也可以以python語言進行調用,或者共享為ArcGISServer服務,通過ArcGISAPI進行網絡端調用。
結論
GIS與遙感的集成,主要體現在數據的互操作,平臺的鏈接與集成方面,并可以通過實現桌面的定制,實現GIS與遙感的功能互補,進一步提高GIS軟件的可操作性,提升空間和影像分析的工作效率,有效節(jié)約系統(tǒng)成本。GIS與遙感的集成逐漸成為一種趨勢和發(fā)展潮流,使用地理處理工作流可以應用ENVITools完成基本處理影像處理任務,更可以建立自己的影像處理工具箱,使用ArcGIS與ENVI/IDL為平臺,以地理處理為基礎進行建模為遙感和GIS流程一體化提供了一個實用的解決方案。