余思汗 高雷雷 單帥帥 楊 順 劉 超 王建勇
1) 寧夏回族自治區地震局,銀川 750001
2) 北方信息控制研究院集團有限公司,南京 211153
震中參考地名是根據地震發生的位置給出的震中附近地表標志的名稱,是一項重要的地震參數[1],也是第一時間開展破壞性地震現場救援、烈度調查等工作的目標地。目前地震正式速報的震中參考地名為三級地名,即精確到縣(區),為了能夠清楚震中發生在該縣的具體方位,就需要引入四級參考地名。
寧夏位于中國的西北,人口密度相對比較稀疏,且主要集中在北部地區,南部多數地區由于自然條件等原因,人口密度更小,但是其縣域并不小,例如鹽池縣,南北距離超過了110 km。當地震發生后,測震臺網會在第一時間給出震中坐標和參考地名,該參考地名為縣一級行政區劃的地名。如想要知道更為詳盡的四級參考地名,則需要在Google 或者天地圖中輸入坐標查詢地名,這樣的方式使得工作繁瑣且困難,不利于地震速報工作的開展[2]。因此,考慮到寧夏的實際情況和需求,且得益于密集完善的測震臺站精確定位,使得提供更加詳盡的震中參考四級地名將成為現實。
本文以開發震中參考四級地名為目標,基于ArcGIS Engine 組件的二次開發,采用C#編程語言,來實現低成本、高效率的實用型GIS 軟件[3],為震中參考四級地名提供準確、便捷的地名查詢軟件。
基礎地理數據包括地名、水系、道路、行政區劃等數據,而根據需求,只需用到地名和行政區劃數據。為了能夠直觀的顯示在地圖上,地名和行政區劃數據為矢量的點和面,且數據格式為shape 文件,其坐標系為CGCS_2000 地理坐標系。所使用的數據來源于寧夏自然資源廳所提供的《寧夏地理信息公共服務平臺》[4]。該數據優勢在于包含了完整的省、市、縣、鄉行政區劃矢量面數據,并且為寧夏最新的行政區劃數字地圖,為本文提供了精確的矢量數據。
矢量數據是地名查詢的基礎數據,數據的質量直接影響到查詢的精度,尤其是在有“臟數據”的情況下,很有可能使得查詢結果為空或者錯誤,所以數據預處理階段主要是消除“臟數據”和字段屬性賦值的過程。首先是在ArcGIS10.6 軟件中進行數據拓撲處理,檢查每級行政區劃矢量面數據是否有拓撲上的錯誤,可能存在的拓撲錯誤有面重疊和面縫隙,將檢查的結果進行統計,并逐條排查修改,直至修改完畢所有的拓撲錯誤。在完成單圖層的拓撲檢查后,再進行各級圖層間拓撲檢查,以省一級的行政區劃矢量面數據為基礎,對其他數據進行檢查,主要目的是檢查其他三級與省一級的邊界套合問題,并對其修改,確保其沒有超出省界的錯誤。完成拓撲上的錯誤之后,對鄉(鎮)級的行政區劃進行字段屬性賦值,增加屬地字段。屬地字段的屬性為長度20 個字符的文本格式,該屬地字段內容為鄉(鎮)級歸屬的縣(區)一級的行政區劃地名,與鄉(鎮)級地名合并為完整四級地名。最后將數據進行入庫(圖1 為矢量數據預處理流程圖),屬地字段作為鄉(鎮)級矢量數據歸屬的標識屬性,進行區分鄉(鎮)所屬的縣(區),圖2 為預處理后的寧夏鄉(鎮)級行政區劃圖。

圖 1 矢量數據預處理流程圖Fig. 1 Flow chart of vector data preprocessing
ArcGIS Engine 包含功能完善的地圖制圖、數據處理與空間分析功能,方便實現簡單或復雜的各類GIS應用軟件開發[5],基于ArcGIS Engine 平臺開發的寧夏震中參考地名查詢軟件的目標是實現鄉(鎮)級地名自動查詢,為地震速報人員提供便利的地名查詢工具。同時,精確的震中參考地名也為應急初期處置、救援決策、現場烈度考察等工作提供了參考依據。
本文軟件開發從實際應用的角度出發,開發一套震中參考地名查詢軟件,因考慮到地震速報人員操作便捷性、軟件長時間運行的穩定性、軟件在不同軟硬件環境下的適應性、軟件后期迭代升級的可擴展性因素,所以對軟件的易用性、穩定性、適用性、可擴展性提出開發要求。軟件具有簡潔的操作界面,查詢過程中操作簡單,結果反饋及時;軟件能夠長時間無錯誤運行,且容錯能力較好,正常情況下無異常;軟件可部署在不同的計算機上,能夠適應軟硬件環境,且能夠適用于主流配置;軟件在使用過程中,根據功能的需求或者對已有工具的完善,可隨時對軟件進行升級和增加新的功能。

圖 2 預處理后的寧夏鄉(鎮)級行政區劃圖Fig. 2 Township-level administrative map of Ningxia after preprocessing
寧夏震中參考地名查詢軟件在VS 2017(Visual Studio 2017)開發環境下采用C#編程語言實現,軟件界面包括菜單欄、工具欄、目錄控件、地圖顯示窗口等。本軟件主要由4 個功能模塊組成(圖3),分別是震中參考地名查詢與顯示、地圖工具欄、震中與附近城市距離測量、查詢結果復制。地名查詢功能的核心內容,實現對寧夏震中參考四級地名信息進行查詢和地圖定位[6]。
震中參考地名查詢與顯示模塊:在地震發生之后,測震臺網會給出震中的經緯度坐標,該坐標的精度一般都會在小數點后4 位,將坐標的經緯度分別輸入到軟件的坐標框內,為防止坐標輸入錯誤,還需輸入EQIM(Earthquake Instant Messenger)軟件所給出的三級參考地名,點擊確定后,將會給出查詢結果,并在地圖中以綠色圓點的形式顯示震中位置,當參考三級地名與查詢結果不一致時,便會給出結果不一致提示(圖4),如果所輸入的坐標超出了寧夏境內,就會給出警告提示:不在寧夏境內。
地圖工具欄模塊:在地圖顯示窗口,通過工具欄中的放大、縮小、漫游、全圖、選擇、等比例縮小、等比例放大、識別工具,對地圖進行瀏覽、查看屬性等操作。

圖 3 軟件結構圖Fig. 3 Diagram of software structure

圖 4 查詢結果不一致提示圖Fig. 4 Prompt chart for inconsistent query results
震中與附近城市距離測量模塊:在輸入坐標得到震中位置后,根據需求可以使用測量工具進行測量震中與附近城市距離,該測量結果直接顯示在地圖顯示窗口內,并通過菜單欄中的“導出”功能將結果以表格的形式導出。
查詢結果復制模塊:在查詢結果確認沒有錯誤時,為了能夠對地震進行速報,設計了與速報地名格式相同的查詢結果欄,增加了結果復制鍵,點擊之后直接對查詢結果進行復制,地震速報人員可以通過手動方式進行地震速報短信的發送,這樣設計既方便了速報短信的發送,同時也節約了時間,為地震應急工作的快速反應提供了時間上的優勢。
寧夏震中參考地名查詢軟件需在ArcGIS Engine 10.6 環境下才能正常運行,部署后經過多次測試,能夠穩定正常運行,其查詢結果也得到了認可。以2020 年6 月12 日7 時55 分發生在寧夏吳忠市青銅峽市的MS3.3 地震為例,地震發生后,EQIM 所給出的地震參考地名為青銅峽市。使用寧夏震中參考地名查詢軟件,輸入經緯度坐標及參考地名后,其輸出的結果為“寧夏吳忠市青銅峽市蓮湖農場” ,寧夏地震局現場工作隊立即組織了隊員前往現場進行調查,根據震中參考四級地名直奔蓮湖農場。根據現場工作隊對當地居民的調查,分析了全部的調查資料,給出了宏觀震中,其震中坐標緊挨著蓮湖農場,和EQIM 所給出的震中位置僅僅相差1 000 多米,圖5 為EQIM 震中和調查宏觀震中位置圖。根據現場工作隊反饋,該四級參考地名對現場調查工作的高效率開展很有意義,對其調查的目的地具有明確的指向,直奔目的地,不浪費任何時間快速展開了調查工作,與三級參考地名相比,具有更加明確的目標性。

圖 5 微觀震中和調查宏觀震中位置圖Fig. 5 Location map of micro-epicenter and macro-epicenter
本文基于ArcGIS Engine 平臺,在VS 2017 環境下進行二次開發實現了寧夏震中參考地名查詢軟件,該軟件界面友好、操作方便,即使沒有任何GIS 背景的人員也能夠輕松使用,軟件的部署使得寧夏震中參考地名可以詳盡到四級地名,實現了從無到有的跨越。當然,為了能夠適應新形式下速報和應急工作的要求,該軟件在開發過程中就預留了接口,可根據實際需求對軟件功能進行調整或者對接其他軟件,從而提供更加全面的功能服務。
從真實震例調查情況來看,震中參考四級地名對震后快速趕往震中目的地具有明確的指向意義,實現了現場調查工作的高效開展。但是對于詳盡的四級參考地名也有一定的局限性,對中小地震有明顯的精確位置參考價值,但是對于波及范圍廣的強震這方面并不顯著。因此,寧夏震中參考地名查詢軟件更適用于中小地震。