王冬辰 王 琛 張 婷 高 飛
(中國南京 210014 江蘇省地震局)
地震是一種影響范圍廣、破壞性大、災害信息復雜的地質災害現象,在地震發生后的黑箱期(聶高眾等,2012),可獲取的震區相關信息有限。地震應急專題圖作為直觀展示震區相關地理空間信息及地震專題信息的技術手段,可及時為地震應急決策及救援提供支持,而地震應急專題圖的時效性和準確性則直接影響到抗震救災工作的順利開展。因此,研究震后短時間內快速高效地產出各類地震應急專題圖具有重要意義。
以往地震應急專題圖需專業制圖人員在應急崗位手動操作制圖軟件進行繪制,步驟繁瑣,耗時較長,容易出錯,已無法滿足地震應急快速響應的需求。因此,亟需研究如何在地震發生后以最快速度自動產出各類地震專題圖件。近年來,已有許多學者通過各類技術手段研究地震應急專題圖的自動快速產出,如利用ArcGIS Engine平臺,建立一套脫離專業GIS制圖軟件的地震應急自動成圖系統,錄入模板,根據地震應急工作的具體需求產出相應專題圖(張樹君等,2018)。按照不同需求,利用ArcGIS模型構建器,對應急專題圖數據庫中的數據進行分類,使用ArcPy自動出圖腳本進行地震應急專題地圖的批量制圖(程顯洲等,2018)。利用Python語言編寫腳本,獲取地震災情評估系統產出的地震三要素、地震影響場、震中距等數據,并調用預制模板,實現地震應急專題圖的快速產出(韓貞輝等,2020)。建立相關地區獨立數據庫,利用VB6.0開發一套不依賴網絡、適用于地震應急救援的專題地圖快速產出系統(馬寶君等,2021)。通過對開源GIS平臺和微服務構架的研究,構建陜西省地震專題圖模板體系,實現基于開源平臺的地震應急專題圖自動生成(孫哲等,2022)。2022年,中國地震臺網中心牽頭為各省地震局部署“地震應急快速評估系統及地震應急輔助決策分析一張圖系統”。該系統采用微服務架構,功能強大、產品豐富,可快速產出一系列專題圖件,但其在離線環境中無法使用,也暫時無法根據各省地震特點和應急場景更改地震影響場模型及制圖模板,因此主要作為各省地震局的應急輔助產品使用。
江蘇省及其鄰區是我國東部中強地震發生較多的地區,其地震災害具有“震級不大、災害較重;波及范圍廣、社會經濟影響大”的特點(王斌等,2009)。目前,江蘇省地震局仍缺少適用于本省地震特點和應急情景的快速制圖方式。本文基于Python語言,設計并實現適用于江蘇地區的地震應急專題圖快速產出系統,在用戶界面輸入地震事件參數,可自動生成地震事件要素,快速產出大量應急專題圖件,從而大幅提升地震應急工作的處置效率。
系統使用Python語言進行開發,根據設計需求分為地震事件創建和專題圖產出2個模塊。地震事件創建模塊用于自動創建震中點、地震影響場及震中與城市距離,并可在后續應急工作中根據實際情況修正影響場的烈度衰減模型和方向。專題圖產出模塊用于實現地圖模板更新及多進程并行出圖。模塊功能主要通過ArcPy實現。ArcPy是隨ArcGIS安裝的站點包,該包提供大量類和函數用以執行地理數據的分析、轉換、管理和地圖制圖自動化命令,并能高效調用ArcGIS中的各種地理處理工具。利用Tkinter編寫系統圖形界面,其為Python自帶的標準GUI設計庫。系統采用Tkinter創建用戶交互窗口,便于輸入地震參數、調用模塊計算并展示運行結果。使用py2exe將系統打包封裝成可執行文件,便于未來進行跨平臺移植。
系統啟動后,輸入地震參數,系統將依照模塊的邏輯順序執行,流程(圖1)如下:①根據地震參數及江蘇地區烈度衰減模型依次生成震中、地震影響場及震中點與主要城市距離。②判定影響場是否需要修正,如需修正,則通過更改烈度衰減模型及方向,創建修正后影響場,無需修正則直接調用專題圖預制模板,更新圖名、圖幅等要素。③將模板經進程池分配至不同進程,批量快速產出多幅地震應急專題圖件。

圖1 系統技術流程Fig.1 System technical flowchart
地震應急數據庫是系統快速調用數據的前提條件,同時保障了數據的安全及穩定性。本系統的地震應急基礎數據庫通過File Geodatebase模型構建,采用統一的CGCS2000大地坐標系,存儲并管理本系統所需的各類數據。根據數據類型,將地震應急數據分為4類:行政區劃、交通、水系等地理基礎數據,人口、經濟等社會統計數據,歷史地震、活動斷裂等地震專題數據,以及根據地震事件產生的震中點、地震影響場和震中距等地震事件數據(表1)。

表1 地震應急數據Table 1 Earthquake emergency data
為保證專題圖的產出數量及速度達到預期目標,需要預先制作地震應急專題圖模板。地震應急專題圖模板為地圖文檔mxd格式,所關聯數據存儲于地震應急數據庫。模板內地理底圖要素按照測繪行業標準設計圖層(符號)樣式,地震專題要素按照地震行業標準設計圖層(符號)樣式,圖名、圖例、比例尺及制圖時間等要素則根據地震事件由系統自動產生。由于不同地震應急專題圖所強調的要素不同,根據中國地震局《破壞性地震應急專題地圖產出流程與制圖規范(試行)》要求,結合《江蘇省地震局地震應急預案》和當地地震應急工作經驗,共設計24張江蘇省地震應急專題圖模板,其主題和幅面不同(表2)。

表2 專題圖模板Table 2 Thematic map templates
3.1.1 創建震中要素。震中是震源在地面上的垂直投影,也是專題圖展現區域的中心,在獲取地震參數后,系統根據經緯度坐標,使用ArcPy庫中的游標UpdateCursor函數,對地震應急數據庫中原有震中點要素的x、y坐標進行修改,從而更新此次地震事件的震中點幾何信息,生成新的震中點位置信息存入數據庫。通過SpatialJoin函數與行政區劃數據進行空間連接,進而獲取震中點所處地理位置的名稱。根據地震行業標準《地震名稱確定規則》(DB/T 58—2014),當震中位于縣級行政區內,地名由省級和縣級行政區名稱組成,如“江蘇昆山”,當震中位于地級市轄區內,地名由省級和地級市名稱組成,如震中位于江蘇省南京市玄武區,則地名為“江蘇南京”。
3.1.2 創建地震影響場。地震影響場反映了地表受地震破壞的區域分布情況。它能直觀展現受地震影響的區域范圍,是地震應急專題圖中最重要的地震信息。地震影響場通常由多個橢圓烈度圈疊加形成,而烈度圈由地震烈度衰減公式計算生成。不同地區所采用的烈度衰減公式有所不同,根據江蘇地區地理位置及地震特征,采用更適用于本省的地震烈度衰減公式生成烈度圈(何奕成等,2020)。該公式在郯廬斷裂帶東側地區、3.0≤M≤7.0范圍內相對可靠。沿橢圓模型的長軸和短軸方向,地震烈度衰減公式如下
式中,I為地震烈度,M為震級,R為橢圓烈度圈的軸長,a代表長軸方向,b代表短軸方向。
烈度圈橢圓模型的生成需獲取橢圓的中心點坐標、長短軸及方位角參數(圖2)。其中,中心點坐標用來確定橢圓在地理坐標系中的位置,長短軸用來確定橢圓的幾何形態及大小,方位角用來確定橢圓的長軸方向。橢圓中心點坐標即為震中經緯度坐標。根據公式(1)—(2)可計算震級在不同烈度值下橢圓烈度圈的長短軸長度。系統通過ArcPy庫中的Near函數查找距震中最近的活動斷裂走向,以此作為地震影響場的方位角。利用TableToEllipse函數分別讀取震中經緯度、烈度值對應的軸長、方位角,構建生成多個橢圓線要素,該要素表現為沿地球橢球體延伸的大地測量線。基于FeatureToPolygon函數將橢圓線要素轉化為橢圓面要素,利用SpatialJoin函數將屬性數據寫入橢圓面,即可快速生成具有多層橢圓烈度圈的地震影響場。

圖2 地震烈度衰減橢圓模型Fig.2 Elliptical model of seismic intensity attenuation
3.1.3 修正地震影響場。在實際地震應急工作中,常根據余震序列、震源機制解、場地條件等信息對地震影響場的橢圓長短軸長度和方位角進行修正,從而更加準確地描述地震影響范圍。在地震事件生成后,如需要對影響場進行調整,則可在系統界面更改適合此次地震區域的其他烈度衰減模型,系統調用該模型的烈度衰減參數,計算得到修正后的烈度圈橢圓長短軸。利用ArcPy庫中的InsertCursor函數建立寫入游標,將修正后的軸長和方位角覆寫到影響場要素表中,從而達到更新橢圓烈度圈、修正地震影響場的目的。
3.1.4 創建震中與城市距離。震中距是震中到某點的地面距離。地震發生后,需要了解震中到周邊主要城市的距離,用以估計城市受地震影響程度,擬定應急救援方案。在生成震中及地震影響場后,利用ArcPy庫中的extent函數及SelectLayerByLocation函數獲取震中附近一定范圍內的城市信息,利用AddXY函數獲取震中及各城市經緯度坐標,基于XYToLine函數在數據庫中創建各城市到震中點的連線,利用AddGeometryAttributes函數計算各連線的測地線長度,即為震中與城市的距離。
3.2.1 地圖模板更新。產出的專題圖件要表現出震區的影響范圍,因此,系統遍歷每個專題圖模板,讀取影響場圖層,通過ArcPy庫中的zoomToSelectedFeatures函數及scale函數將影響場在圖面上居中展示,并縮放至合適的比例范圍。修改模板的圖名標題,使其包含前述獲取的震中所在地名及震級大小,成為“震中地名+震級+模板名”的格式。圖件的出圖時間設置為當前系統時間,圖例及比例尺設置為可根據地圖范圍動態調整內容和大小。最終保存模板,完成模板更新功能。
3.2.2 多進程出圖。系統通過ArcPy庫中的ExportToJPEG函數調用專題圖模板,設定出圖路徑、圖件名稱及分辨率等參數,將mxd地圖文檔導出為jpg格式的圖片文件。由于按單個模板排隊依次產出圖件耗時較長,考慮采用多進程并行出圖方式批量生成圖件。Multiprocessing是Python自帶的用于產生多進程的庫,可利用庫中pool類創建進程池來管理進程。進程池可提供一組指定數量(通常默認為cpu內核數量)的進程并重復利用。使用apply_async方法將任務請求提交至進程池,并以異步非阻塞方式分發給可用進程,則不必等待當前進程執行完成,便可隨時根據系統調度切換至其他已釋放資源的空閑進程,以達到多個進程并行處理出圖任務、提高程序執行效率的目的。
江蘇及其周邊地區近期無破壞性地震發生,故通過模擬地震事件進行系統測試。模擬地震事件設定為:2023年1月30日09時00分00秒在江蘇省南京市江寧區(118.95°E,32.05°N)發生MS6.0地震。打開地震應急專題圖快速產出系統,在系統界面中輸入此次地震參數,系統于09:00:10開始生成地震事件,09:00:46完成計算,進行多進程產出,09:02:10完成出圖任務,共生成24張圖件。整個過程用時120 s(圖3)。運行結果表明,該系統可自動生成震中點位置、地震影響場、震中距,并快速產出各類地震應急專題圖件(圖4,圖5)。

圖3 系統界面及運行結果Fig.3 System interface and operation results

圖4 震區地震影響場分布圖示例Fig.4 Example of distribution map of seismic influence field in earthquake area

圖5 震中與附近主要城市距離圖示例Fig.5 Example of distance map of the epicenter and major cities nearby
地震應急專題圖的產出是地震應急工作的重要內容和關鍵環節。根據江蘇省地震應急工作需求,構建一套系統專用數據庫及專題圖模板,設計并實現了江蘇省地震應急專題圖快速產出系統。本系統可自動生成震中點位置、地震影響場及震中距,繼而更新預制地圖模板,利用多進程方式批量產出圖件。同時,為系統創建用戶界面窗口,并封裝為可執行文件,提高了系統的易用性和穩定性。通過該系統,江蘇省地震局實現了應急專題圖的自動批量快速產出,滿足了當前地震應急響應工作的需求,為快速獲取各類地震應急專題圖提供有效的技術支撐。
該系統采用單機離線模式運行,避免了網絡不穩定可能帶來的干擾現象。但是,目前該系統仍未實現自動接收地震信息、生產圖件并打印的效果,未來可考慮將系統架設至服務器上,并接入EQIM,以實現全自動觸發及產出,為江蘇省地震應急工作提供更加迅速便捷的制圖技術保障。