王冬辰 王 琛 張 婷 高 飛
(中國(guó)南京 210014 江蘇省地震局)
地震是一種影響范圍廣、破壞性大、災(zāi)害信息復(fù)雜的地質(zhì)災(zāi)害現(xiàn)象,在地震發(fā)生后的黑箱期(聶高眾等,2012),可獲取的震區(qū)相關(guān)信息有限。地震應(yīng)急專題圖作為直觀展示震區(qū)相關(guān)地理空間信息及地震專題信息的技術(shù)手段,可及時(shí)為地震應(yīng)急決策及救援提供支持,而地震應(yīng)急專題圖的時(shí)效性和準(zhǔn)確性則直接影響到抗震救災(zāi)工作的順利開展。因此,研究震后短時(shí)間內(nèi)快速高效地產(chǎn)出各類地震應(yīng)急專題圖具有重要意義。
以往地震應(yīng)急專題圖需專業(yè)制圖人員在應(yīng)急崗位手動(dòng)操作制圖軟件進(jìn)行繪制,步驟繁瑣,耗時(shí)較長(zhǎng),容易出錯(cuò),已無(wú)法滿足地震應(yīng)急快速響應(yīng)的需求。因此,亟需研究如何在地震發(fā)生后以最快速度自動(dòng)產(chǎn)出各類地震專題圖件。近年來(lái),已有許多學(xué)者通過(guò)各類技術(shù)手段研究地震應(yīng)急專題圖的自動(dòng)快速產(chǎn)出,如利用ArcGIS Engine平臺(tái),建立一套脫離專業(yè)GIS制圖軟件的地震應(yīng)急自動(dòng)成圖系統(tǒng),錄入模板,根據(jù)地震應(yīng)急工作的具體需求產(chǎn)出相應(yīng)專題圖(張樹君等,2018)。按照不同需求,利用ArcGIS模型構(gòu)建器,對(duì)應(yīng)急專題圖數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行分類,使用ArcPy自動(dòng)出圖腳本進(jìn)行地震應(yīng)急專題地圖的批量制圖(程顯洲等,2018)。利用Python語(yǔ)言編寫腳本,獲取地震災(zāi)情評(píng)估系統(tǒng)產(chǎn)出的地震三要素、地震影響場(chǎng)、震中距等數(shù)據(jù),并調(diào)用預(yù)制模板,實(shí)現(xiàn)地震應(yīng)急專題圖的快速產(chǎn)出(韓貞輝等,2020)。建立相關(guān)地區(qū)獨(dú)立數(shù)據(jù)庫(kù),利用VB6.0開發(fā)一套不依賴網(wǎng)絡(luò)、適用于地震應(yīng)急救援的專題地圖快速產(chǎn)出系統(tǒng)(馬寶君等,2021)。通過(guò)對(duì)開源GIS平臺(tái)和微服務(wù)構(gòu)架的研究,構(gòu)建陜西省地震專題圖模板體系,實(shí)現(xiàn)基于開源平臺(tái)的地震應(yīng)急專題圖自動(dòng)生成(孫哲等,2022)。2022年,中國(guó)地震臺(tái)網(wǎng)中心牽頭為各省地震局部署“地震應(yīng)急快速評(píng)估系統(tǒng)及地震應(yīng)急輔助決策分析一張圖系統(tǒng)”。該系統(tǒng)采用微服務(wù)架構(gòu),功能強(qiáng)大、產(chǎn)品豐富,可快速產(chǎn)出一系列專題圖件,但其在離線環(huán)境中無(wú)法使用,也暫時(shí)無(wú)法根據(jù)各省地震特點(diǎn)和應(yīng)急場(chǎng)景更改地震影響場(chǎng)模型及制圖模板,因此主要作為各省地震局的應(yīng)急輔助產(chǎn)品使用。
江蘇省及其鄰區(qū)是我國(guó)東部中強(qiáng)地震發(fā)生較多的地區(qū),其地震災(zāi)害具有“震級(jí)不大、災(zāi)害較重;波及范圍廣、社會(huì)經(jīng)濟(jì)影響大”的特點(diǎn)(王斌等,2009)。目前,江蘇省地震局仍缺少適用于本省地震特點(diǎn)和應(yīng)急情景的快速制圖方式。本文基于Python語(yǔ)言,設(shè)計(jì)并實(shí)現(xiàn)適用于江蘇地區(qū)的地震應(yīng)急專題圖快速產(chǎn)出系統(tǒng),在用戶界面輸入地震事件參數(shù),可自動(dòng)生成地震事件要素,快速產(chǎn)出大量應(yīng)急專題圖件,從而大幅提升地震應(yīng)急工作的處置效率。
系統(tǒng)使用Python語(yǔ)言進(jìn)行開發(fā),根據(jù)設(shè)計(jì)需求分為地震事件創(chuàng)建和專題圖產(chǎn)出2個(gè)模塊。地震事件創(chuàng)建模塊用于自動(dòng)創(chuàng)建震中點(diǎn)、地震影響場(chǎng)及震中與城市距離,并可在后續(xù)應(yīng)急工作中根據(jù)實(shí)際情況修正影響場(chǎng)的烈度衰減模型和方向。專題圖產(chǎn)出模塊用于實(shí)現(xiàn)地圖模板更新及多進(jìn)程并行出圖。模塊功能主要通過(guò)ArcPy實(shí)現(xiàn)。ArcPy是隨ArcGIS安裝的站點(diǎn)包,該包提供大量類和函數(shù)用以執(zhí)行地理數(shù)據(jù)的分析、轉(zhuǎn)換、管理和地圖制圖自動(dòng)化命令,并能高效調(diào)用ArcGIS中的各種地理處理工具。利用Tkinter編寫系統(tǒng)圖形界面,其為Python自帶的標(biāo)準(zhǔn)GUI設(shè)計(jì)庫(kù)。系統(tǒng)采用Tkinter創(chuàng)建用戶交互窗口,便于輸入地震參數(shù)、調(diào)用模塊計(jì)算并展示運(yùn)行結(jié)果。使用py2exe將系統(tǒng)打包封裝成可執(zhí)行文件,便于未來(lái)進(jìn)行跨平臺(tái)移植。
系統(tǒng)啟動(dòng)后,輸入地震參數(shù),系統(tǒng)將依照模塊的邏輯順序執(zhí)行,流程(圖1)如下:①根據(jù)地震參數(shù)及江蘇地區(qū)烈度衰減模型依次生成震中、地震影響場(chǎng)及震中點(diǎn)與主要城市距離。②判定影響場(chǎng)是否需要修正,如需修正,則通過(guò)更改烈度衰減模型及方向,創(chuàng)建修正后影響場(chǎng),無(wú)需修正則直接調(diào)用專題圖預(yù)制模板,更新圖名、圖幅等要素。③將模板經(jīng)進(jìn)程池分配至不同進(jìn)程,批量快速產(chǎn)出多幅地震應(yīng)急專題圖件。
圖1 系統(tǒng)技術(shù)流程Fig.1 System technical flowchart
地震應(yīng)急數(shù)據(jù)庫(kù)是系統(tǒng)快速調(diào)用數(shù)據(jù)的前提條件,同時(shí)保障了數(shù)據(jù)的安全及穩(wěn)定性。本系統(tǒng)的地震應(yīng)急基礎(chǔ)數(shù)據(jù)庫(kù)通過(guò)File Geodatebase模型構(gòu)建,采用統(tǒng)一的CGCS2000大地坐標(biāo)系,存儲(chǔ)并管理本系統(tǒng)所需的各類數(shù)據(jù)。根據(jù)數(shù)據(jù)類型,將地震應(yīng)急數(shù)據(jù)分為4類:行政區(qū)劃、交通、水系等地理基礎(chǔ)數(shù)據(jù),人口、經(jīng)濟(jì)等社會(huì)統(tǒng)計(jì)數(shù)據(jù),歷史地震、活動(dòng)斷裂等地震專題數(shù)據(jù),以及根據(jù)地震事件產(chǎn)生的震中點(diǎn)、地震影響場(chǎng)和震中距等地震事件數(shù)據(jù)(表1)。
表1 地震應(yīng)急數(shù)據(jù)Table 1 Earthquake emergency data
為保證專題圖的產(chǎn)出數(shù)量及速度達(dá)到預(yù)期目標(biāo),需要預(yù)先制作地震應(yīng)急專題圖模板。地震應(yīng)急專題圖模板為地圖文檔mxd格式,所關(guān)聯(lián)數(shù)據(jù)存儲(chǔ)于地震應(yīng)急數(shù)據(jù)庫(kù)。模板內(nèi)地理底圖要素按照測(cè)繪行業(yè)標(biāo)準(zhǔn)設(shè)計(jì)圖層(符號(hào))樣式,地震專題要素按照地震行業(yè)標(biāo)準(zhǔn)設(shè)計(jì)圖層(符號(hào))樣式,圖名、圖例、比例尺及制圖時(shí)間等要素則根據(jù)地震事件由系統(tǒng)自動(dòng)產(chǎn)生。由于不同地震應(yīng)急專題圖所強(qiáng)調(diào)的要素不同,根據(jù)中國(guó)地震局《破壞性地震應(yīng)急專題地圖產(chǎn)出流程與制圖規(guī)范(試行)》要求,結(jié)合《江蘇省地震局地震應(yīng)急預(yù)案》和當(dāng)?shù)氐卣饝?yīng)急工作經(jīng)驗(yàn),共設(shè)計(jì)24張江蘇省地震應(yīng)急專題圖模板,其主題和幅面不同(表2)。
表2 專題圖模板Table 2 Thematic map templates
3.1.1 創(chuàng)建震中要素。震中是震源在地面上的垂直投影,也是專題圖展現(xiàn)區(qū)域的中心,在獲取地震參數(shù)后,系統(tǒng)根據(jù)經(jīng)緯度坐標(biāo),使用ArcPy庫(kù)中的游標(biāo)UpdateCursor函數(shù),對(duì)地震應(yīng)急數(shù)據(jù)庫(kù)中原有震中點(diǎn)要素的x、y坐標(biāo)進(jìn)行修改,從而更新此次地震事件的震中點(diǎn)幾何信息,生成新的震中點(diǎn)位置信息存入數(shù)據(jù)庫(kù)。通過(guò)SpatialJoin函數(shù)與行政區(qū)劃數(shù)據(jù)進(jìn)行空間連接,進(jìn)而獲取震中點(diǎn)所處地理位置的名稱。根據(jù)地震行業(yè)標(biāo)準(zhǔn)《地震名稱確定規(guī)則》(DB/T 58—2014),當(dāng)震中位于縣級(jí)行政區(qū)內(nèi),地名由省級(jí)和縣級(jí)行政區(qū)名稱組成,如“江蘇昆山”,當(dāng)震中位于地級(jí)市轄區(qū)內(nèi),地名由省級(jí)和地級(jí)市名稱組成,如震中位于江蘇省南京市玄武區(qū),則地名為“江蘇南京”。
3.1.2 創(chuàng)建地震影響場(chǎng)。地震影響場(chǎng)反映了地表受地震破壞的區(qū)域分布情況。它能直觀展現(xiàn)受地震影響的區(qū)域范圍,是地震應(yīng)急專題圖中最重要的地震信息。地震影響場(chǎng)通常由多個(gè)橢圓烈度圈疊加形成,而烈度圈由地震烈度衰減公式計(jì)算生成。不同地區(qū)所采用的烈度衰減公式有所不同,根據(jù)江蘇地區(qū)地理位置及地震特征,采用更適用于本省的地震烈度衰減公式生成烈度圈(何奕成等,2020)。該公式在郯廬斷裂帶東側(cè)地區(qū)、3.0≤M≤7.0范圍內(nèi)相對(duì)可靠。沿橢圓模型的長(zhǎng)軸和短軸方向,地震烈度衰減公式如下
式中,I為地震烈度,M為震級(jí),R為橢圓烈度圈的軸長(zhǎng),a代表長(zhǎng)軸方向,b代表短軸方向。
烈度圈橢圓模型的生成需獲取橢圓的中心點(diǎn)坐標(biāo)、長(zhǎng)短軸及方位角參數(shù)(圖2)。其中,中心點(diǎn)坐標(biāo)用來(lái)確定橢圓在地理坐標(biāo)系中的位置,長(zhǎng)短軸用來(lái)確定橢圓的幾何形態(tài)及大小,方位角用來(lái)確定橢圓的長(zhǎng)軸方向。橢圓中心點(diǎn)坐標(biāo)即為震中經(jīng)緯度坐標(biāo)。根據(jù)公式(1)—(2)可計(jì)算震級(jí)在不同烈度值下橢圓烈度圈的長(zhǎng)短軸長(zhǎng)度。系統(tǒng)通過(guò)ArcPy庫(kù)中的Near函數(shù)查找距震中最近的活動(dòng)斷裂走向,以此作為地震影響場(chǎng)的方位角。利用TableToEllipse函數(shù)分別讀取震中經(jīng)緯度、烈度值對(duì)應(yīng)的軸長(zhǎng)、方位角,構(gòu)建生成多個(gè)橢圓線要素,該要素表現(xiàn)為沿地球橢球體延伸的大地測(cè)量線?;贔eatureToPolygon函數(shù)將橢圓線要素轉(zhuǎn)化為橢圓面要素,利用SpatialJoin函數(shù)將屬性數(shù)據(jù)寫入橢圓面,即可快速生成具有多層橢圓烈度圈的地震影響場(chǎng)。
圖2 地震烈度衰減橢圓模型Fig.2 Elliptical model of seismic intensity attenuation
3.1.3 修正地震影響場(chǎng)。在實(shí)際地震應(yīng)急工作中,常根據(jù)余震序列、震源機(jī)制解、場(chǎng)地條件等信息對(duì)地震影響場(chǎng)的橢圓長(zhǎng)短軸長(zhǎng)度和方位角進(jìn)行修正,從而更加準(zhǔn)確地描述地震影響范圍。在地震事件生成后,如需要對(duì)影響場(chǎng)進(jìn)行調(diào)整,則可在系統(tǒng)界面更改適合此次地震區(qū)域的其他烈度衰減模型,系統(tǒng)調(diào)用該模型的烈度衰減參數(shù),計(jì)算得到修正后的烈度圈橢圓長(zhǎng)短軸。利用ArcPy庫(kù)中的InsertCursor函數(shù)建立寫入游標(biāo),將修正后的軸長(zhǎng)和方位角覆寫到影響場(chǎng)要素表中,從而達(dá)到更新橢圓烈度圈、修正地震影響場(chǎng)的目的。
3.1.4 創(chuàng)建震中與城市距離。震中距是震中到某點(diǎn)的地面距離。地震發(fā)生后,需要了解震中到周邊主要城市的距離,用以估計(jì)城市受地震影響程度,擬定應(yīng)急救援方案。在生成震中及地震影響場(chǎng)后,利用ArcPy庫(kù)中的extent函數(shù)及SelectLayerByLocation函數(shù)獲取震中附近一定范圍內(nèi)的城市信息,利用AddXY函數(shù)獲取震中及各城市經(jīng)緯度坐標(biāo),基于XYToLine函數(shù)在數(shù)據(jù)庫(kù)中創(chuàng)建各城市到震中點(diǎn)的連線,利用AddGeometryAttributes函數(shù)計(jì)算各連線的測(cè)地線長(zhǎng)度,即為震中與城市的距離。
3.2.1 地圖模板更新。產(chǎn)出的專題圖件要表現(xiàn)出震區(qū)的影響范圍,因此,系統(tǒng)遍歷每個(gè)專題圖模板,讀取影響場(chǎng)圖層,通過(guò)ArcPy庫(kù)中的zoomToSelectedFeatures函數(shù)及scale函數(shù)將影響場(chǎng)在圖面上居中展示,并縮放至合適的比例范圍。修改模板的圖名標(biāo)題,使其包含前述獲取的震中所在地名及震級(jí)大小,成為“震中地名+震級(jí)+模板名”的格式。圖件的出圖時(shí)間設(shè)置為當(dāng)前系統(tǒng)時(shí)間,圖例及比例尺設(shè)置為可根據(jù)地圖范圍動(dòng)態(tài)調(diào)整內(nèi)容和大小。最終保存模板,完成模板更新功能。
3.2.2 多進(jìn)程出圖。系統(tǒng)通過(guò)ArcPy庫(kù)中的ExportToJPEG函數(shù)調(diào)用專題圖模板,設(shè)定出圖路徑、圖件名稱及分辨率等參數(shù),將mxd地圖文檔導(dǎo)出為jpg格式的圖片文件。由于按單個(gè)模板排隊(duì)依次產(chǎn)出圖件耗時(shí)較長(zhǎng),考慮采用多進(jìn)程并行出圖方式批量生成圖件。Multiprocessing是Python自帶的用于產(chǎn)生多進(jìn)程的庫(kù),可利用庫(kù)中pool類創(chuàng)建進(jìn)程池來(lái)管理進(jìn)程。進(jìn)程池可提供一組指定數(shù)量(通常默認(rèn)為cpu內(nèi)核數(shù)量)的進(jìn)程并重復(fù)利用。使用apply_async方法將任務(wù)請(qǐng)求提交至進(jìn)程池,并以異步非阻塞方式分發(fā)給可用進(jìn)程,則不必等待當(dāng)前進(jìn)程執(zhí)行完成,便可隨時(shí)根據(jù)系統(tǒng)調(diào)度切換至其他已釋放資源的空閑進(jìn)程,以達(dá)到多個(gè)進(jìn)程并行處理出圖任務(wù)、提高程序執(zhí)行效率的目的。
江蘇及其周邊地區(qū)近期無(wú)破壞性地震發(fā)生,故通過(guò)模擬地震事件進(jìn)行系統(tǒng)測(cè)試。模擬地震事件設(shè)定為:2023年1月30日09時(shí)00分00秒在江蘇省南京市江寧區(qū)(118.95°E,32.05°N)發(fā)生MS6.0地震。打開地震應(yīng)急專題圖快速產(chǎn)出系統(tǒng),在系統(tǒng)界面中輸入此次地震參數(shù),系統(tǒng)于09:00:10開始生成地震事件,09:00:46完成計(jì)算,進(jìn)行多進(jìn)程產(chǎn)出,09:02:10完成出圖任務(wù),共生成24張圖件。整個(gè)過(guò)程用時(shí)120 s(圖3)。運(yùn)行結(jié)果表明,該系統(tǒng)可自動(dòng)生成震中點(diǎn)位置、地震影響場(chǎng)、震中距,并快速產(chǎn)出各類地震應(yīng)急專題圖件(圖4,圖5)。
圖3 系統(tǒng)界面及運(yùn)行結(jié)果Fig.3 System interface and operation results
圖4 震區(qū)地震影響場(chǎng)分布圖示例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
地震應(yīng)急專題圖的產(chǎn)出是地震應(yīng)急工作的重要內(nèi)容和關(guān)鍵環(huán)節(jié)。根據(jù)江蘇省地震應(yīng)急工作需求,構(gòu)建一套系統(tǒng)專用數(shù)據(jù)庫(kù)及專題圖模板,設(shè)計(jì)并實(shí)現(xiàn)了江蘇省地震應(yīng)急專題圖快速產(chǎn)出系統(tǒng)。本系統(tǒng)可自動(dòng)生成震中點(diǎn)位置、地震影響場(chǎng)及震中距,繼而更新預(yù)制地圖模板,利用多進(jìn)程方式批量產(chǎn)出圖件。同時(shí),為系統(tǒng)創(chuàng)建用戶界面窗口,并封裝為可執(zhí)行文件,提高了系統(tǒng)的易用性和穩(wěn)定性。通過(guò)該系統(tǒng),江蘇省地震局實(shí)現(xiàn)了應(yīng)急專題圖的自動(dòng)批量快速產(chǎn)出,滿足了當(dāng)前地震應(yīng)急響應(yīng)工作的需求,為快速獲取各類地震應(yīng)急專題圖提供有效的技術(shù)支撐。
該系統(tǒng)采用單機(jī)離線模式運(yùn)行,避免了網(wǎng)絡(luò)不穩(wěn)定可能帶來(lái)的干擾現(xiàn)象。但是,目前該系統(tǒng)仍未實(shí)現(xiàn)自動(dòng)接收地震信息、生產(chǎn)圖件并打印的效果,未來(lái)可考慮將系統(tǒng)架設(shè)至服務(wù)器上,并接入EQIM,以實(shí)現(xiàn)全自動(dòng)觸發(fā)及產(chǎn)出,為江蘇省地震應(yīng)急工作提供更加迅速便捷的制圖技術(shù)保障。