余思汗 高雷雷 單帥帥 楊 順 劉 超 王建勇
1) 寧夏回族自治區(qū)地震局,銀川 750001
2) 北方信息控制研究院集團(tuán)有限公司,南京 211153
震中參考地名是根據(jù)地震發(fā)生的位置給出的震中附近地表標(biāo)志的名稱(chēng),是一項(xiàng)重要的地震參數(shù)[1],也是第一時(shí)間開(kāi)展破壞性地震現(xiàn)場(chǎng)救援、烈度調(diào)查等工作的目標(biāo)地。目前地震正式速報(bào)的震中參考地名為三級(jí)地名,即精確到縣(區(qū)),為了能夠清楚震中發(fā)生在該縣的具體方位,就需要引入四級(jí)參考地名。
寧夏位于中國(guó)的西北,人口密度相對(duì)比較稀疏,且主要集中在北部地區(qū),南部多數(shù)地區(qū)由于自然條件等原因,人口密度更小,但是其縣域并不小,例如鹽池縣,南北距離超過(guò)了110 km。當(dāng)?shù)卣鸢l(fā)生后,測(cè)震臺(tái)網(wǎng)會(huì)在第一時(shí)間給出震中坐標(biāo)和參考地名,該參考地名為縣一級(jí)行政區(qū)劃的地名。如想要知道更為詳盡的四級(jí)參考地名,則需要在Google 或者天地圖中輸入坐標(biāo)查詢地名,這樣的方式使得工作繁瑣且困難,不利于地震速報(bào)工作的開(kāi)展[2]。因此,考慮到寧夏的實(shí)際情況和需求,且得益于密集完善的測(cè)震臺(tái)站精確定位,使得提供更加詳盡的震中參考四級(jí)地名將成為現(xiàn)實(shí)。
本文以開(kāi)發(fā)震中參考四級(jí)地名為目標(biāo),基于ArcGIS Engine 組件的二次開(kāi)發(fā),采用C#編程語(yǔ)言,來(lái)實(shí)現(xiàn)低成本、高效率的實(shí)用型GIS 軟件[3],為震中參考四級(jí)地名提供準(zhǔn)確、便捷的地名查詢軟件。
基礎(chǔ)地理數(shù)據(jù)包括地名、水系、道路、行政區(qū)劃等數(shù)據(jù),而根據(jù)需求,只需用到地名和行政區(qū)劃數(shù)據(jù)。為了能夠直觀的顯示在地圖上,地名和行政區(qū)劃數(shù)據(jù)為矢量的點(diǎn)和面,且數(shù)據(jù)格式為shape 文件,其坐標(biāo)系為CGCS_2000 地理坐標(biāo)系。所使用的數(shù)據(jù)來(lái)源于寧夏自然資源廳所提供的《寧夏地理信息公共服務(wù)平臺(tái)》[4]。該數(shù)據(jù)優(yōu)勢(shì)在于包含了完整的省、市、縣、鄉(xiāng)行政區(qū)劃矢量面數(shù)據(jù),并且為寧夏最新的行政區(qū)劃數(shù)字地圖,為本文提供了精確的矢量數(shù)據(jù)。
矢量數(shù)據(jù)是地名查詢的基礎(chǔ)數(shù)據(jù),數(shù)據(jù)的質(zhì)量直接影響到查詢的精度,尤其是在有“臟數(shù)據(jù)”的情況下,很有可能使得查詢結(jié)果為空或者錯(cuò)誤,所以數(shù)據(jù)預(yù)處理階段主要是消除“臟數(shù)據(jù)”和字段屬性賦值的過(guò)程。首先是在ArcGIS10.6 軟件中進(jìn)行數(shù)據(jù)拓?fù)涮幚?,檢查每級(jí)行政區(qū)劃矢量面數(shù)據(jù)是否有拓?fù)渖系腻e(cuò)誤,可能存在的拓?fù)溴e(cuò)誤有面重疊和面縫隙,將檢查的結(jié)果進(jìn)行統(tǒng)計(jì),并逐條排查修改,直至修改完畢所有的拓?fù)溴e(cuò)誤。在完成單圖層的拓?fù)錂z查后,再進(jìn)行各級(jí)圖層間拓?fù)錂z查,以省一級(jí)的行政區(qū)劃矢量面數(shù)據(jù)為基礎(chǔ),對(duì)其他數(shù)據(jù)進(jìn)行檢查,主要目的是檢查其他三級(jí)與省一級(jí)的邊界套合問(wèn)題,并對(duì)其修改,確保其沒(méi)有超出省界的錯(cuò)誤。完成拓?fù)渖系腻e(cuò)誤之后,對(duì)鄉(xiāng)(鎮(zhèn))級(jí)的行政區(qū)劃進(jìn)行字段屬性賦值,增加屬地字段。屬地字段的屬性為長(zhǎng)度20 個(gè)字符的文本格式,該屬地字段內(nèi)容為鄉(xiāng)(鎮(zhèn))級(jí)歸屬的縣(區(qū))一級(jí)的行政區(qū)劃地名,與鄉(xiāng)(鎮(zhèn))級(jí)地名合并為完整四級(jí)地名。最后將數(shù)據(jù)進(jìn)行入庫(kù)(圖1 為矢量數(shù)據(jù)預(yù)處理流程圖),屬地字段作為鄉(xiāng)(鎮(zhèn))級(jí)矢量數(shù)據(jù)歸屬的標(biāo)識(shí)屬性,進(jìn)行區(qū)分鄉(xiāng)(鎮(zhèn))所屬的縣(區(qū)),圖2 為預(yù)處理后的寧夏鄉(xiāng)(鎮(zhèn))級(jí)行政區(qū)劃圖。
圖 1 矢量數(shù)據(jù)預(yù)處理流程圖Fig. 1 Flow chart of vector data preprocessing
ArcGIS Engine 包含功能完善的地圖制圖、數(shù)據(jù)處理與空間分析功能,方便實(shí)現(xiàn)簡(jiǎn)單或復(fù)雜的各類(lèi)GIS應(yīng)用軟件開(kāi)發(fā)[5],基于ArcGIS Engine 平臺(tái)開(kāi)發(fā)的寧夏震中參考地名查詢軟件的目標(biāo)是實(shí)現(xiàn)鄉(xiāng)(鎮(zhèn))級(jí)地名自動(dòng)查詢,為地震速報(bào)人員提供便利的地名查詢工具。同時(shí),精確的震中參考地名也為應(yīng)急初期處置、救援決策、現(xiàn)場(chǎng)烈度考察等工作提供了參考依據(jù)。
本文軟件開(kāi)發(fā)從實(shí)際應(yīng)用的角度出發(fā),開(kāi)發(fā)一套震中參考地名查詢軟件,因考慮到地震速報(bào)人員操作便捷性、軟件長(zhǎng)時(shí)間運(yùn)行的穩(wěn)定性、軟件在不同軟硬件環(huán)境下的適應(yīng)性、軟件后期迭代升級(jí)的可擴(kuò)展性因素,所以對(duì)軟件的易用性、穩(wěn)定性、適用性、可擴(kuò)展性提出開(kāi)發(fā)要求。軟件具有簡(jiǎn)潔的操作界面,查詢過(guò)程中操作簡(jiǎn)單,結(jié)果反饋及時(shí);軟件能夠長(zhǎng)時(shí)間無(wú)錯(cuò)誤運(yùn)行,且容錯(cuò)能力較好,正常情況下無(wú)異常;軟件可部署在不同的計(jì)算機(jī)上,能夠適應(yīng)軟硬件環(huán)境,且能夠適用于主流配置;軟件在使用過(guò)程中,根據(jù)功能的需求或者對(duì)已有工具的完善,可隨時(shí)對(duì)軟件進(jìn)行升級(jí)和增加新的功能。
圖 2 預(yù)處理后的寧夏鄉(xiāng)(鎮(zhèn))級(jí)行政區(qū)劃圖Fig. 2 Township-level administrative map of Ningxia after preprocessing
寧夏震中參考地名查詢軟件在VS 2017(Visual Studio 2017)開(kāi)發(fā)環(huán)境下采用C#編程語(yǔ)言實(shí)現(xiàn),軟件界面包括菜單欄、工具欄、目錄控件、地圖顯示窗口等。本軟件主要由4 個(gè)功能模塊組成(圖3),分別是震中參考地名查詢與顯示、地圖工具欄、震中與附近城市距離測(cè)量、查詢結(jié)果復(fù)制。地名查詢功能的核心內(nèi)容,實(shí)現(xiàn)對(duì)寧夏震中參考四級(jí)地名信息進(jìn)行查詢和地圖定位[6]。
震中參考地名查詢與顯示模塊:在地震發(fā)生之后,測(cè)震臺(tái)網(wǎng)會(huì)給出震中的經(jīng)緯度坐標(biāo),該坐標(biāo)的精度一般都會(huì)在小數(shù)點(diǎn)后4 位,將坐標(biāo)的經(jīng)緯度分別輸入到軟件的坐標(biāo)框內(nèi),為防止坐標(biāo)輸入錯(cuò)誤,還需輸入EQIM(Earthquake Instant Messenger)軟件所給出的三級(jí)參考地名,點(diǎn)擊確定后,將會(huì)給出查詢結(jié)果,并在地圖中以綠色圓點(diǎn)的形式顯示震中位置,當(dāng)參考三級(jí)地名與查詢結(jié)果不一致時(shí),便會(huì)給出結(jié)果不一致提示(圖4),如果所輸入的坐標(biāo)超出了寧夏境內(nèi),就會(huì)給出警告提示:不在寧夏境內(nèi)。
地圖工具欄模塊:在地圖顯示窗口,通過(guò)工具欄中的放大、縮小、漫游、全圖、選擇、等比例縮小、等比例放大、識(shí)別工具,對(duì)地圖進(jìn)行瀏覽、查看屬性等操作。
圖 3 軟件結(jié)構(gòu)圖Fig. 3 Diagram of software structure
圖 4 查詢結(jié)果不一致提示圖Fig. 4 Prompt chart for inconsistent query results
震中與附近城市距離測(cè)量模塊:在輸入坐標(biāo)得到震中位置后,根據(jù)需求可以使用測(cè)量工具進(jìn)行測(cè)量震中與附近城市距離,該測(cè)量結(jié)果直接顯示在地圖顯示窗口內(nèi),并通過(guò)菜單欄中的“導(dǎo)出”功能將結(jié)果以表格的形式導(dǎo)出。
查詢結(jié)果復(fù)制模塊:在查詢結(jié)果確認(rèn)沒(méi)有錯(cuò)誤時(shí),為了能夠?qū)Φ卣疬M(jìn)行速報(bào),設(shè)計(jì)了與速報(bào)地名格式相同的查詢結(jié)果欄,增加了結(jié)果復(fù)制鍵,點(diǎn)擊之后直接對(duì)查詢結(jié)果進(jìn)行復(fù)制,地震速報(bào)人員可以通過(guò)手動(dòng)方式進(jìn)行地震速報(bào)短信的發(fā)送,這樣設(shè)計(jì)既方便了速報(bào)短信的發(fā)送,同時(shí)也節(jié)約了時(shí)間,為地震應(yīng)急工作的快速反應(yīng)提供了時(shí)間上的優(yōu)勢(shì)。
寧夏震中參考地名查詢軟件需在ArcGIS Engine 10.6 環(huán)境下才能正常運(yùn)行,部署后經(jīng)過(guò)多次測(cè)試,能夠穩(wěn)定正常運(yùn)行,其查詢結(jié)果也得到了認(rèn)可。以2020 年6 月12 日7 時(shí)55 分發(fā)生在寧夏吳忠市青銅峽市的MS3.3 地震為例,地震發(fā)生后,EQIM 所給出的地震參考地名為青銅峽市。使用寧夏震中參考地名查詢軟件,輸入經(jīng)緯度坐標(biāo)及參考地名后,其輸出的結(jié)果為“寧夏吳忠市青銅峽市蓮湖農(nóng)場(chǎng)” ,寧夏地震局現(xiàn)場(chǎng)工作隊(duì)立即組織了隊(duì)員前往現(xiàn)場(chǎng)進(jìn)行調(diào)查,根據(jù)震中參考四級(jí)地名直奔蓮湖農(nóng)場(chǎng)。根據(jù)現(xiàn)場(chǎng)工作隊(duì)對(duì)當(dāng)?shù)鼐用竦恼{(diào)查,分析了全部的調(diào)查資料,給出了宏觀震中,其震中坐標(biāo)緊挨著蓮湖農(nóng)場(chǎng),和EQIM 所給出的震中位置僅僅相差1 000 多米,圖5 為EQIM 震中和調(diào)查宏觀震中位置圖。根據(jù)現(xiàn)場(chǎng)工作隊(duì)反饋,該四級(jí)參考地名對(duì)現(xiàn)場(chǎng)調(diào)查工作的高效率開(kāi)展很有意義,對(duì)其調(diào)查的目的地具有明確的指向,直奔目的地,不浪費(fèi)任何時(shí)間快速展開(kāi)了調(diào)查工作,與三級(jí)參考地名相比,具有更加明確的目標(biāo)性。
圖 5 微觀震中和調(diào)查宏觀震中位置圖Fig. 5 Location map of micro-epicenter and macro-epicenter
本文基于ArcGIS Engine 平臺(tái),在VS 2017 環(huán)境下進(jìn)行二次開(kāi)發(fā)實(shí)現(xiàn)了寧夏震中參考地名查詢軟件,該軟件界面友好、操作方便,即使沒(méi)有任何GIS 背景的人員也能夠輕松使用,軟件的部署使得寧夏震中參考地名可以詳盡到四級(jí)地名,實(shí)現(xiàn)了從無(wú)到有的跨越。當(dāng)然,為了能夠適應(yīng)新形式下速報(bào)和應(yīng)急工作的要求,該軟件在開(kāi)發(fā)過(guò)程中就預(yù)留了接口,可根據(jù)實(shí)際需求對(duì)軟件功能進(jìn)行調(diào)整或者對(duì)接其他軟件,從而提供更加全面的功能服務(wù)。
從真實(shí)震例調(diào)查情況來(lái)看,震中參考四級(jí)地名對(duì)震后快速趕往震中目的地具有明確的指向意義,實(shí)現(xiàn)了現(xiàn)場(chǎng)調(diào)查工作的高效開(kāi)展。但是對(duì)于詳盡的四級(jí)參考地名也有一定的局限性,對(duì)中小地震有明顯的精確位置參考價(jià)值,但是對(duì)于波及范圍廣的強(qiáng)震這方面并不顯著。因此,寧夏震中參考地名查詢軟件更適用于中小地震。