余思汗,李 偉,王建勇,劉 超,單帥帥
(1.寧夏回族自治區(qū)地震局,寧夏 銀川 750001;2.北方信息控制研究院集團有限公司,江蘇 南京 210000)
地震應急專題圖是指發(fā)生了破壞性地震后,盡可能完善、詳盡地顯示地震災區(qū)的各種專題要素的地圖[1]。它綜合表達了地形地貌、人口分布、交通道路、危險源和重要目標信息[2]。專題圖的優(yōu)點就在于能夠清晰地反映出震區(qū)的各種要素分布情況,通過災情研判分析,能夠科學地部署救援力量,精準實施切實可行的救援方案,因而專題圖在地震救援方面發(fā)揮著至關重要的作用。
目前,地震應急專題圖的制作是通過在地理信息輔助決策軟件中取出地震影響場范圍來人工操作ArcGIS軟件制作專題圖,這不僅要求操作人員具有一定的GIS知識,還要求他們能夠熟練地使用ArcGIS等軟件的能力,而普通的工作人員很難高效、快速、準確地完成地震應急專題圖的制作[3]。因此實現(xiàn)簡單高效的地震應急專題圖成圖軟件成為解決問題的關鍵。對于以上問題,本文基于ArcGIS Engine二次開發(fā)組件,采用C#編程語言,開發(fā)出一套脫離ArcGIS Desktop的地震應急快速成圖軟件,通過調(diào)用人工配置MXD專題圖模板和“十五”數(shù)字化改造后應急系統(tǒng)確定地震影響場,來實現(xiàn)地震應急專題圖快速產(chǎn)出功能。
ArcGIS Engine 是美國 ESRI(Environmental Systems Research Institute,Inc.美國環(huán)境系統(tǒng)研究所公司)推出的一套完備的嵌入式GIS組件庫和工具庫,值得一提的是,使用ArcGIS Engine開發(fā)的GIS應用程序可以脫離ArcGIS Desktop而獨立運行。用戶根據(jù)自己的需求,使用ArcGIS Engine軟件包開發(fā)具有針對性的GIS軟件,能夠避免使用ArcGIS Desktop復雜的工具箱帶來的不便,也在某種程度上節(jié)約了開發(fā)經(jīng)費[4]。而且ArcGIS Engine可以在多種開發(fā)語言環(huán)境下進行開發(fā),它所提供的GIS組件和可視化控件都是可以在ArcGIS Desktop框架之外使用[5]??丶?、工具條和對象庫是ArcGIS Engine平臺的3個關鍵部分??丶峭ㄟ^嵌入方式成為GIS程序的用戶界面組成部分;工具條是進行地理信息交互的GIS工具集合;對象庫是ArcObject的幾何圖形、GIS數(shù)據(jù)源和Geodatabase的集合[6]。開發(fā)人員無需重新開發(fā)GIS功能,可以直接把定制好的工具嵌入已有的程序中,實現(xiàn)根據(jù)用戶需求隨時創(chuàng)建自定義應用軟件的開發(fā)模式[7]。
專題圖是地理要素、經(jīng)濟要素和人文要素等的表達形式的地圖,根據(jù)對每個要素的不同需求,進行有選擇的要素目的渲染,從而凸顯出該要素在地理空間上的分布情況,使讀圖者能夠很直觀地得到所需的信息。所以專題圖在制作過程中,需要詳盡地考慮到地圖表達方式,在制作復雜的專題圖時,首先尋找出每一類專題圖所存在的共同特征,把相同特征的專題圖進行統(tǒng)一的地圖表達處理,再對所需的專題圖進行簡單的模板加工,最后完成制作專題圖模板,這樣不但提高了制圖效率和制圖質量[8],還把繁瑣的流程簡化了,并且也使得專題圖在表達上具有統(tǒng)一美觀性。
本文利用ArcMap進行專題圖MXD模板的文檔制作,模板圖層主要包括基礎地理數(shù)據(jù)圖層和專題圖表達要素信息圖層。專題圖應該遵從完整的制圖規(guī)范,制圖要素主要內(nèi)容包括:空間坐標系、底圖、專題內(nèi)容、指北針、比例尺、圖例、圖面整飾等,除此之外對于有其他需求的專題圖還需加說明、表格等。為了避免重復的工作,本文對專題圖模板特別進行分類整飾,根據(jù)需要表達的專題要素,進行不同圖層的渲染,再將圖層連接以及符號化樣式儲存在MXD文檔中。圖1為地震專題圖的制作流程。
圖1地震專題圖的制作流程圖Fig.1 Flow charts for making thematic maps of earthquakes
專題圖的要素內(nèi)容是為地震應急工作開展服務的,根據(jù)當前的地震應急需求而設計圖件,主要包括的專題圖件有:震中位置圖、地震影響估計范圍圖、震中與主要城市距離分布圖、震區(qū)交通圖、震區(qū)人口分布圖、震區(qū)水庫分布圖、震區(qū)GDP圖、震區(qū)歷史地震分布圖、震區(qū)醫(yī)院分布圖、震區(qū)學校分布圖、震區(qū)危險源分布圖、震區(qū)潛在地質災害分布圖、震區(qū)烈度區(qū)劃圖、震區(qū)地質圖和震區(qū)地震動峰值加速度區(qū)劃圖。專題圖要素內(nèi)容要求完整詳實,圖幅大小選用合適,根據(jù)圖幅大小,設置合適的比例尺,并調(diào)整專題圖中的注記字體大小,配置好的專題圖MXD文檔,根據(jù)專題圖的要素內(nèi)容和圖幅大小進行命名保存。由于震級的大小不同,以及斷裂的方向問題,導致的影響場范圍和大小也不相同,為了盡可能地表達詳盡,需調(diào)整各個震級專題圖模板的比例尺大小,盡可能的把模板細劃,以確保適用于各種情況。制作完成的專題圖模板為后期的快速成圖提供了方便,采用直接調(diào)用的方式,便可在最短的時間內(nèi)獲取到所需的各類專題圖。
以專題圖的MXD文檔為數(shù)據(jù)源,本文開發(fā)地震應急快速成圖軟件,從實際應用的角度出發(fā),對地震應急快速成圖軟件的開發(fā)提出以下幾個方面的要求:
(1)穩(wěn)定性。穩(wěn)定性是衡量一個軟件好壞最基本的評價指標,軟件各項功能完美運行的前提是軟件擁有良好的穩(wěn)定性。軟件要能夠實現(xiàn)長時間無錯運行,這就要求軟件擁有良好的容錯能力,對運行過程中產(chǎn)生的錯誤或異常情況能夠進行有效的捕捉和及時的處理。
(2)易用性。對于一個應用軟件,應當盡可能的讓用戶輕松使用,并提供良好的用戶體驗,因此要求本系統(tǒng)擁有友好的操作界面,對用戶執(zhí)行的各項操作有及時的反饋,對執(zhí)行時間較長的操作應當有執(zhí)行進度的顯示,并采用多線程技術,使得耗時操作在執(zhí)行過程中不影響其它操作的執(zhí)行。
(3)適應性。在實際使用過程中,軟件可能會被部署在不同的計算機中,不同的計算機的硬件和軟件環(huán)境可能會有所差別,這就要求所開發(fā)的應用軟件能夠適用于當前主流配置的計算機。
(4)可擴展性。一個軟件往往需要進行迭代開發(fā)來實現(xiàn)對軟件的不斷完善,隨著今后研究的深入會對已有的技術方法進行改進或產(chǎn)生新的技術方法,這就要求所開發(fā)的軟件具有良好的可擴展性,能夠在原有軟件的基礎上實現(xiàn)功能升級和新功能的增加。
本文軟件為C/S架構,軟件總體結構主要分為五個功能模塊:MXD文檔一鍵導入模塊、MXD文檔預覽模塊、地圖標題替換模塊、震中設定模塊和專題圖成圖模塊。
(1)MXD文檔一鍵導入模塊:在地震應急制圖的實際應用中,往往需要生成震區(qū)各類專題地圖,每一類專題地圖對應了一個MXD文檔,因此需要加載多個MXD文檔,只需要將要生成專題圖的MXD文檔放在同一個文件夾下,本模塊便可一次性讀取全部MXD文檔,減少用戶的操作數(shù)量。
(2)MXD文檔預覽模塊:當用戶選擇導入軟件的MXD文檔時,軟件可將選擇的MXD文檔加載在地圖控件中,并且提供了縮放、選擇、漫游和識別等工具,便于用戶對加載的MXD文檔進行預覽檢查。
(3)地圖標題替換模塊:對于地震應急成圖的系列MXD文檔,其標題的關鍵部分是地名和震級,該模塊允許用戶輸入新的地名和震級,并用新的地名和震級替換MXD文檔原來的地名和震級。
(4)震中設定模塊:在該模塊中用戶可以設置指定坐標的震中位置,當完成震中設置后,系統(tǒng)將當前MXD文檔的地圖中心設置為指定的坐標位置,對于設置的震中以指定的方式進行渲染并進行顯示。
(5)專題圖成圖模塊:該模塊是本文軟件的輸出模塊,在上述四個模塊執(zhí)行完畢后,需要將更改后的MXD文檔保存成圖片,并保存在計算機的指定位置中。該模塊提供了兩種地圖導出方法,一種是將指定的MXD文檔導出,另一種是將加載的所有MXD文檔導出。并且該模塊支持對修改后的MXD文檔自動保存。
震中設定模塊是本軟件的核心功能模塊,該模塊實現(xiàn)了將MXD文檔的地圖中心平移至指定的坐標位置,并且以指定的渲染方式將震中顯示在地圖中。
本軟件將震中位置以點的形式進行展示,震中點作為一個單獨的矢量圖層進行管理。該模塊的實現(xiàn)分為了五個步驟:第一步將保存在指定位置的震中圖層添加到MXD文檔中,并將該圖層置于最上層,防止其它圖層遮擋震中圖層;第二步獲取添加的震中圖層,主要是獲取震中圖層的屬性表;第三步刪除震中圖層屬性表中已有的數(shù)據(jù),因為震中位置只有一個,防止已有數(shù)據(jù)對制圖結果產(chǎn)生影響;第五步將用戶輸入的坐標數(shù)據(jù)添加到震中圖層屬性表中,生成新的震中點,并將新生成的震中點以指定渲染方式顯示在地圖中。
第五步實現(xiàn)的代碼如圖2所示:
圖2指定渲染格式代碼Fig.2 Specify render format code
3.4.1軟件開發(fā)環(huán)境
地震應急快速成圖軟件的開發(fā)環(huán)境包括了硬件環(huán)境和軟件環(huán)境,其中硬件環(huán)境包括CPU、硬盤、顯卡和內(nèi)存等,具體見表1。軟件環(huán)境包括計算機操作系統(tǒng)、集成開發(fā)環(huán)境、二次開發(fā)組件和開發(fā)語言等,具體見表2。
表1軟件開發(fā)的硬件環(huán)境
表2軟件開發(fā)的軟件環(huán)境
3.4.2系統(tǒng)界面及主要功能示例
本文軟件界面設計簡潔,菜單操作簡單,選項設置較少,人機交互性較好,無論是對于專業(yè)GIS人員還是對于非專業(yè)GIS人員都能夠快速上手。軟件主界面由上到下分為四個部分,最上層為標題欄,用來顯示系統(tǒng)名稱同時包含最小化和關閉按鈕;標題欄下方是菜單欄,采用樹型結構提供系統(tǒng)各功能操作入口;菜單欄下方為工具欄,以圖標形式顯示系統(tǒng)常用的操作按鈕;工具欄下方為目錄控件和地圖控件,目錄控件用來顯示當前被導入軟件中的MXD文檔名稱,地圖控件用來顯示選擇的MXD文檔內(nèi)容。軟件的主界面如圖3所示。
圖3軟件界面圖Fig.3 Software interface diagram
通過軟件操作界面的命令按鈕,專題圖制圖人員能夠很輕松地完成地震專題圖制圖工作。使用軟件可以調(diào)用不同幅面的專題圖MXD文檔,可以產(chǎn)出A1、A3、A4等不同幅面的專題圖,其輸出的圖件格式為jpg,分辨率為默認情況下的300dpi,完全符合現(xiàn)階段的地震專題圖制圖工作[9]。該軟件輸出的專題圖成果范例如圖4所示。
圖4專題圖成果(以中衛(wèi)市地震演練為例)Fig.4 Thematic map achievements(taking Zhongwei city earthquake exercise as an example)
本文闡述了ArcGIS Engine平臺進行GIS軟件的二次開發(fā),將用戶需求和用戶體驗作為軟件開發(fā)的目的,建立一套完全脫離ArcGIS Desktop而獨立運行的地震應急快速成圖軟件,以達到操作簡單、成圖效率高的預期目標。該軟件的部署,實現(xiàn)了沒有專業(yè)GIS知識背景的人員也能夠高效率、高質量地完成地震專題圖的制作,為震后救援工作的開展提供了強有力的圖件保障。事實證明通過ArcGIS Engine組件的二次開發(fā),能夠實現(xiàn)低成本、高效率的實用型GIS軟件,也為今后進行更加復雜的GIS軟件二次開發(fā)提供了一個方向。