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