陳麗
摘要:該文針對采用計算機輔助方式制作同一類型不同區(qū)域、不同時期的遙感專題圖時,存在重復(fù)作業(yè)、效率不高、用戶參與度高的問題,設(shè)計了一個基于渲染標(biāo)準(zhǔn)(xml)文件的遙感影像專題圖自動制作系統(tǒng)。系統(tǒng)首先要求用戶抽象出同一類型的專題圖的渲染標(biāo)準(zhǔn),制作成對應(yīng)的渲染標(biāo)準(zhǔn)(xml)文件,所有表示同一類型的遙感影像都可以 同一個渲染標(biāo)準(zhǔn)文件,系統(tǒng)根據(jù)遙感影像的名字找到對應(yīng)的渲染標(biāo)準(zhǔn)(xml)文件 達(dá)到無用戶參與的情況下,自動、高效、準(zhǔn)確的制作出用戶需要的專題圖的目的,實驗結(jié)果顯示在本系統(tǒng)提高了制圖的效率,節(jié)省了用戶參與的時間,解決了目前制作專題圖存在的問題。
關(guān)鍵詞:遙感專題圖;快速渲染;ArcGIS Engine;自動制圖
中圖分類號:TP18 文獻標(biāo)識碼:A 文章編號:1009-3044(2013)09-2204-05
專題地圖是突出而盡可能完善、詳盡地表示制圖區(qū)內(nèi)的一種或幾種自然或社會經(jīng)濟(人文)要素的地圖。隨著社會的發(fā)展,專題圖在旅游、汽車導(dǎo)航、交通、環(huán)境保護、資源調(diào)查、氣象分析等方面得到了非常廣泛的應(yīng)用【5】。目前,人們在制作專題圖的時候主要是通過手工的方式進行制圖,采用計算機輔助的專題圖制圖模式,利用具備強大圖形編輯、文字處理和符號制作功能的軟件工具完成各種專題圖的制作,如ArcMap、 AutoCAD等【4】。計算機輔助專題圖制圖雖然能夠根據(jù)人們的意愿設(shè)計出理想的專題圖,并且極大地豐富了地圖符號、注記、色彩的表現(xiàn),但是計算機輔助專題圖制圖過程中需要用戶操作軟件完成制作,用戶必須要全程參與,這必然導(dǎo)致制作效率低、準(zhǔn)確率難以保證、存在重復(fù)作業(yè)、自動化程度不高等缺陷。為了解決這些問題本文設(shè)計了一個自動批量制作專題圖系統(tǒng),此系統(tǒng)利用ESRI公司開發(fā)的嵌入式組件ArcGIS Engine和.net技術(shù)進行開發(fā),能根據(jù)用戶的要求方便、高效、自動的生成用戶所需要的遙感影像專題圖,用戶只需準(zhǔn)備好數(shù)據(jù),中間過程不需要用戶的參與,還能實現(xiàn)數(shù)據(jù)的重復(fù)利用,該文中介紹了系統(tǒng)的設(shè)計思路,同時詳細(xì)說明了系統(tǒng)的實現(xiàn)方法和開發(fā)過程中的關(guān)鍵技術(shù)。
1 系統(tǒng)的總體設(shè)計
1.1 系統(tǒng)目標(biāo)與設(shè)計原則
系統(tǒng)的總體目標(biāo)是根據(jù)用戶的需要快速、準(zhǔn)確、便利、高效的生產(chǎn)出遙感影像專題圖圖片,對用戶經(jīng)常使用的背景數(shù)據(jù)實現(xiàn)可重復(fù)利用,中間過程實現(xiàn)自動化,減少用戶的參與。
設(shè)計遵循以下原則:可靠性、穩(wěn)定性、精確性、可擴展性、高效性。
1.2 系統(tǒng)的總體結(jié)構(gòu)
在制作專題圖的過程每個遙感影像的渲染方法是不一樣的,為了實現(xiàn)所有的遙感影像都能夠按照用戶的要求自動去渲染,在系統(tǒng)中加入了渲染標(biāo)準(zhǔn)文件,每類遙感影像文件對應(yīng)一個渲染標(biāo)準(zhǔn)文件,渲染標(biāo)準(zhǔn)文件里面填寫對每幅影像的渲染方式以及渲染需要使用的所有參數(shù),根據(jù)這個文件,系統(tǒng)就能自動的制作出用戶滿意的專題地圖。
在制作專題圖的時候,地圖上的很多元素都是一樣的,并且存放的位置也是一樣的,例如文本元素、指北針元素等等,所以為了避免重復(fù)工作,實現(xiàn)文件的可重用,可以制作一個地圖模板(MXD文件),在程序執(zhí)行的時候可以修改元素的值,不用添加這些元素。為了制作出來地圖方便用戶查看,在地圖上需要添加一個行政區(qū)邊界,行政shp文件和柵格數(shù)據(jù)必須在同一坐標(biāo)系。
根據(jù)實際的需求,系統(tǒng)的整體架構(gòu)設(shè)計如圖1所示。
整個系統(tǒng)可以分為三個部分:數(shù)據(jù)準(zhǔn)備、系統(tǒng)制圖、保存結(jié)果。
數(shù)據(jù)準(zhǔn)備階段需要準(zhǔn)備三部分的數(shù)據(jù),分別是遙感影像、渲染標(biāo)準(zhǔn)xml、地圖模板文件,遙感影像文件是用戶需要制作專題圖的遙感影像,xml文件是遙感影像的渲染標(biāo)準(zhǔn),行政區(qū)邊界shp邊界文件、shp文件是專題地圖的行政區(qū)邊界,在影像超過國家行政區(qū)的時候剪切遙感影像文件,地圖模板文件上面有很多固定的地圖元素,分別存儲在系統(tǒng)的Tif文件夾、Xml文件夾、MXD文件夾中。
系統(tǒng)制圖階段采用.NET技術(shù)和ArcGIS ENGINE技術(shù)對tif文件夾中的數(shù)據(jù)進行處理,經(jīng)過系統(tǒng)加載MXD文件、剪切柵格文件、加載TIF文件、對TIF文件進行渲染、添加比例尺、添加經(jīng)緯網(wǎng)格、添加圖例、設(shè)置標(biāo)注、導(dǎo)出jpg圖片之后,得到用戶需要的遙感影像專題圖。
保存圖片的階段系統(tǒng)Jpg文件夾存放的是所有tif文件的生成的Jpg圖片,用戶可以在這個文件夾中找所需要的結(jié)果。
1.3系統(tǒng)開發(fā)環(huán)境
本系統(tǒng)利用ArcGIS Engine提供的組件及接口和面向?qū)ο蟮拈_發(fā)語言C#.NET進行開發(fā)。
1.3.1 ArcGIS Engine簡介
ArcGIS Engine是美國ESR I公司推出的一種為開發(fā)嵌入式GIS和獨立運行的GIS桌面端應(yīng)用程序而推出的二次開發(fā)組件庫,它使程序員能夠向現(xiàn)有應(yīng)用軟件中添加動態(tài)制圖和GIS功能,或者構(gòu)建自定義制圖與GIS解決方案,它提供了AreGIS應(yīng)用的核心功能及基于COM、.NET、Java和C++的APIs,能夠?qū)崿F(xiàn)跨平臺部署。ArcGis Engine組件庫中的組件在邏輯可以分為5個部分,如圖2所示。
1)基本服務(wù)——有GIS核心ArcObject構(gòu)成,所有GIS應(yīng)用程序都需要。
2)數(shù)據(jù)存取——ArcGIS Engine可以對許多柵格和矢量格式進行存取,包括強大的地理數(shù)據(jù)庫(Geodatabase)。
3)地圖表達(dá)——創(chuàng)建和顯示帶有符號和標(biāo)注的地圖。
4)開發(fā)組件——用于快速開發(fā)應(yīng)用程序的界面控件。
5)運行時選項——ArcGIS Engine可以與標(biāo)準(zhǔn)功能或其他高級功能一起部署。
1.3.2 .NET技術(shù)
.NET是為簡化在第三代因特網(wǎng)的分布式環(huán)境下的應(yīng)用程序開發(fā),基于開放互聯(lián)網(wǎng)標(biāo)準(zhǔn)和協(xié)議之上,實現(xiàn)異質(zhì)語言和平臺高度交互性而構(gòu)建的新一代計算和通信平臺,是Microsoft以服務(wù)的方式遞交軟件的一種策略,主要有如下三部分構(gòu)成:Web服務(wù)、.NET框架、.NET企業(yè)服務(wù)器。.NET就支持一種語言即微軟中間代碼,微軟中間代碼是與CPU無關(guān)的指令集,任何源程序都要通過適當(dāng)?shù)木幾g器編譯成微軟中間代碼。.NET 框架是Microsoft為開發(fā)應(yīng)用程序而創(chuàng)建的一種新的計算平臺,主要包含一個非常大的代碼庫,可以在客戶語言中通過面向?qū)ο缶幊碳夹g(shù)來使用其中的各個部分,它簡化了在高度分布式Internet環(huán)境中的應(yīng)用程序。.NET框架具有兩個主要組件:公共語言運行庫和.NET框架類庫,公共語言運行庫是.NET框架的基礎(chǔ),負(fù)責(zé)管理內(nèi)存、線程執(zhí)行、代碼執(zhí)行、代碼安全驗證、編譯以及其他系統(tǒng)服務(wù)。.NET框架類庫是一個與公共語言運行庫緊密集成的可重用的類型集合,該類庫是面向?qū)ο蟮?,能與第三方組件進行無縫集成。
2 系統(tǒng)數(shù)據(jù)準(zhǔn)備
系統(tǒng)完成生產(chǎn)過程需要輸入地圖模板(mxd文件)、渲染標(biāo)準(zhǔn)(xml文件)、遙感影像文件(tif文件)和行政區(qū)邊界(shp文件)。地圖模版包含一些固定不變的地圖元素,渲染標(biāo)準(zhǔn)指示系統(tǒng)對輸入的對應(yīng)區(qū)域影像進行渲染的方式,一個類專題圖的所有遙感影像對應(yīng)一個渲染標(biāo)準(zhǔn)。
2.1 地圖模板
由于在制作一類專題圖的時候,地圖上的很多元素都是一樣的,并且存放的位置也是一樣的,只是元素值需要改變,例如文本元素、比例尺元素等等,所以制作一個地圖模板,在程序執(zhí)行的時候可以修改這些元素的值,不用添加這些元素。本系統(tǒng)在設(shè)計mxd文件的時候在地圖上添加有地圖的標(biāo)題、地圖的制作單位、比例尺、指北針、行政區(qū)行政shp,可以根據(jù)用戶在xml提供的數(shù)據(jù)在程序中去修改這些值,地圖模板如圖所示。其他標(biāo)簽用戶可以根據(jù)需要添加和調(diào)整位置,并保存為地圖模板,作為系統(tǒng)的輸入,進行生產(chǎn)。
2.2渲染標(biāo)準(zhǔn)
渲染標(biāo)準(zhǔn)文件包含
在進行唯一值渲染的時候,需要給影像的每個像素值設(shè)置一個顏色,并且還要設(shè)置每個像素值代表的意義,因此在xml的唯一值設(shè)計中了添加
在進行分級渲染的時候,需要給出分級的數(shù)目和每級的范圍、顏色、代表的意義,因此在xml的設(shè)計中添加了
節(jié)點、
節(jié)點、
拉伸渲染只需要給出開始顏色和結(jié)束顏色,以及最大像素代表的意義和最小像素代表的意義, 因此在xml的設(shè)計中添加
3 系統(tǒng)工作流程
該系統(tǒng)的主要流程如圖4所示:
1)加載MXD的模板文件:加載MXD的模板文件就是把模板文件加入內(nèi)存,為以后的制圖做準(zhǔn)備,通過ArcEngine中Imapdocument接口的open方法打開模板文件,然后設(shè)置PageLayoutControl的PageLayout屬性完成。
2)矢量文件剪切柵格文件:由于得到的TIF文件和國家的行政區(qū)界可能不一致,所以需要根據(jù)國家的行政區(qū)界對TIF文件進行裁剪,得到在國家的行政區(qū)內(nèi)的柵格影像,對行政區(qū)內(nèi)的柵格影像文件進行制圖,制作能實際需要的專題圖。使用ExtractByMask類能實現(xiàn)影像的 剪切。
3)加載TIF文件:在mxd文件中加載剪切后的柵格文件,加載柵格文件需要首先創(chuàng)建一個柵格圖層,然手通過Imap接口的addlayer方法把柵格圖層加載到內(nèi)存中的模板文件。這個時候在第一步中MXD文件就不是一個空的文件了,而是有一個柵格文件的地圖工程文件。
4)渲染TIF文件:渲染TIF文件的功能是給柵格文件著色,用戶看起來比較直觀,能理解。渲染有三方式,分別是唯一值渲染、色帶渲染、分級渲染。唯一值的原理是對影像中的每一個像素值指定一種顏色,對其進行渲染,色帶渲染和唯一值的相似,但是色帶渲染不是像唯一值那樣精確的指定每個像素的顏色,只是設(shè)置一條色帶,指定色帶的終止顏色和起始顏色,對其進行渲染。分級渲染是對影像中所有的像素值按其值的大小進行劃分,分為幾個等級,每一個等級設(shè)置一個顏色。系統(tǒng)根據(jù)每個柵格數(shù)據(jù)名字找到對應(yīng)的xml文件對其進行渲染,
系統(tǒng)找到對應(yīng)的xml文件后根據(jù)
5)添加圖例 :圖例是地圖上表示地理事物的符號。是表達(dá)地圖內(nèi)容的基本形式和方法,是現(xiàn)代地圖的語言,是讀圖和用讀所借助的工具。圖例是在影像渲染之后才能添加的,主要是幫助用戶更好的讀地圖,在圖例中包括兩部分,一部分是顏色,另一部分是該顏色所表示的含義。用IMapFrame的CreateSurroundFrame方法產(chǎn)生一個IMapFrameSurround對象,之后ILegend接口設(shè)置圖例的屬性,就生成所需要的圖例。添加完圖例之后,要根據(jù)用戶地圖模板的要求對圖例設(shè)置位置。
6)設(shè)置標(biāo)注:在制作地圖的時候,就需要設(shè)置標(biāo)注這個功能,這個功能可以設(shè)置地圖的名字,是用戶一看題目就知道這個地圖表示的意義。用TextElementClass實例化一個,用ITextElement接口的text方法設(shè)置內(nèi)容,用別的屬性設(shè)置大小和顏色及字體。
7)導(dǎo)出圖片:添加完所有的地圖元素之后,通過用ExportJPEGClass類實例化一個變量,然后設(shè)置IExport的方法和屬性,設(shè)置之后就可以導(dǎo)出在pagelayout的所有圖層,得到一個以.jpg結(jié)尾的地圖圖片供用戶查看。
4 實驗分析
針對遙感影像制圖過程發(fā)雜、效率低下的問題,該文實現(xiàn)了一種遙感影像自動制作技術(shù),達(dá)到了可以在制圖過程中不用用戶參與、高效的制圖、提高效率、節(jié)約人力、重復(fù)利用文件的效果。下一步主要工作是增加制作渲染標(biāo)準(zhǔn)文件模塊,方便用戶制作渲染標(biāo)準(zhǔn)文件。
5 結(jié)論
系統(tǒng)可以節(jié)省用戶很多的時間和精力,用戶只要準(zhǔn)備好所有需要的數(shù)據(jù)之后,就可以開始系統(tǒng)的運行,等系統(tǒng)完畢后,結(jié)果就呈現(xiàn)在用戶的面前了,在生產(chǎn)的過程中,不需要用戶的參與,大大提高了制作地圖的便捷,盡管如此,本系統(tǒng)存在一定的不足,由于在準(zhǔn)備數(shù)據(jù)歸類的過程中需要用戶操作,對用戶可能帶來了一定程度上的不便,該系統(tǒng)還存在一定的完善在以后的過程中會考慮怎么去組織數(shù)據(jù),為用戶提供更高程度的快捷,地圖的效率更高。
參考文獻:
[1] 蘭小機,劉德兒.ArcObjects GIS應(yīng)用開發(fā)——基于C#.NET[M].北京:冶金工業(yè)出版社,2011.
[2] 吳瑋,李小帥,張斌.基于ArcGIS Engine的GIS開發(fā)技術(shù)探討[J].科學(xué)技術(shù)與工程,2006(2).
[3] 韓金芳,張華平,王增輝.遙感影像專題圖制作研究[J].山東國土資源,2010(10):48-51.
[4] 潘燕.一種基于GIS的專題圖制作模式[J].測繪通報,2005(9):38-39.
[5] 黃昌勝,姜圓盈.基于ArcGIS的專題圖制作[J].城市勘測,2012(2):28-30.