孟令升 劉愛華 張雁翔 馬龍辰 徐建權(quán)
摘 ?要:我國是世界上地震活動最嚴重的國家之一。地震活動頻次高、強度大、災(zāi)害重、影響廣,2008年汶川地震給人民群眾生命財產(chǎn)造成嚴重損失,給整個國家的經(jīng)濟社會發(fā)展造成深遠影響。汶川地震后,中國地震局深刻總結(jié)與反思,要求地震行業(yè)提高為社會各界提供地震專業(yè)信息服務(wù)的能力。余震序列作為震后緊急會商的重要資料,其統(tǒng)計的時效性要求也相應(yīng)提高。近年來,Python語言在數(shù)據(jù)庫處理、數(shù)據(jù)統(tǒng)計處理、程序開發(fā)方面已成為新的趨勢。余震序列統(tǒng)計程序基于Python語言開發(fā),利用該程序,對地震編目數(shù)據(jù)庫數(shù)據(jù)進行篩選、導(dǎo)出、整理,并產(chǎn)出符合上報要求的Word文檔,實現(xiàn)對地震余震序列的即時產(chǎn)出。利用該程序進行余震統(tǒng)計,可極大地減輕地震一線工作人員工作量,為科研人員判斷地震趨勢和政府部門制定救援方案提供更加及時準確的數(shù)據(jù),有效助力開展地震應(yīng)急救援工作。
關(guān)鍵詞:Python;余震統(tǒng)計;程序研發(fā);地震余震序列;地震監(jiān)測
中圖分類號:P315.61 ? ? ?文獻標志碼:A ? ? ? ? ?文章編號:2095-2945(2024)14-0046-04
Abstract: China is one of the most seismically active countries in the world. Seismic activity has high frequency, high intensity, serious disasters and wide impact. The 2008 Wenchuan earthquake caused serious losses to people's lives and property, and had a far-reaching impact on the economic and social development of the whole country. After Wenchuan Earthquake, the China Earthquake Administration made a profound summary and reflection, requiring the earthquake industry to improve its ability to provide professional earthquake information services for all sectors of the community. Aftershock sequence as an important data for emergency consultation after the earthquake, the timeliness requirement of aftershock sequence statistics is also improved accordingly. In recent years, Python language has become a new trend in database processing, data statistical processing and program development. The statistical program of aftershock sequence is developed based on Python language. Using this program, the data of earthquake cataloging database are screened, exported and sorted out, and the Word documents that meet the reporting requirements are produced, and the immediate output of earthquake aftershock sequence is realized. Using this program for aftershock statistics can greatly reduce the workload of earthquake front-line workers, provide more timely and accurate data for researchers to judge earthquake trends and government departments to formulate rescue plans, and effectively assist the development of earthquake emergency rescue work.
Keywords: Python; aftershock statistics; program development; earthquake aftershock sequence; earthquake monitoring
地震又稱地動、地振動,是地殼快速釋放能量過程中造成的振動,期間會產(chǎn)生地震波的一種自然現(xiàn)象。地球上板塊與板塊之間相互擠壓碰撞,造成板塊邊沿及板塊內(nèi)部產(chǎn)生錯動和破裂,是引起地震的主要原因。地震會造成各種破壞和災(zāi)害,包括建筑物倒塌、土地滑坡、火災(zāi)和海嘯等。地震的發(fā)生通常會伴隨著余震的出現(xiàn),這些余震可能會對地震災(zāi)區(qū)造成進一步的破壞。
余震信息是地震趨勢研判的重要依據(jù),利用余震目錄的參數(shù)信息,可有效反映震區(qū)的地震活動、地震周期、序列及發(fā)震構(gòu)造等情況。根據(jù)《測震臺網(wǎng)運行管理細則(2015 修訂版)》要求,主震震中所在省級臺網(wǎng)中心負責余震序列與震群快報目錄和正式目錄的處理與報送。2021年中國地震局下發(fā)《關(guān)于進一步規(guī)范余震信息統(tǒng)計報送和發(fā)布工作的函》,對余震信息統(tǒng)計報送工作做了進一步規(guī)定。根據(jù)相關(guān)規(guī)定時限要求,人工編制余震序列目錄并編寫報告,已無法滿足應(yīng)急工作需求。如2017年8月8日21時19分46秒在四川阿壩州九寨溝縣(北緯33.2°,東經(jīng)103.82°)發(fā)生7級地震,至2017年8月17日14時,共記錄到地震總數(shù)4 799個(余震總數(shù)4 798個)。其中7.0~7.9級地震1次,6.0~6.9級地震0次,5.0~5.9級0次, 4.0~4.9級3次,3.0~3.9級28次。編目人員整理、匯編、復(fù)核后產(chǎn)出并上報,工作量大、耗時長、效率低,還極易產(chǎn)生錯誤。這就需要能夠自動編輯并快速產(chǎn)出余震序列目錄,才能按時完成余震序列報告上報,及時提供給科研人員和政府部門參考。
1 ?程序設(shè)計與實現(xiàn)
1.1 ?程序功能設(shè)計
程序GUI界面采用PyQt5設(shè)計開發(fā)。Qt是一個跨平臺的應(yīng)用程序開發(fā)框架,提供了豐富的GUI組件,可以用于創(chuàng)建桌面應(yīng)用程序、移動應(yīng)用程序和嵌入式應(yīng)用程序。友好的操作界面,使得工作人員可以通過相對簡單的操作即可實現(xiàn)數(shù)據(jù)的下載、處理和生成報告等功能,軟件開發(fā)流程如圖1所示。
程序基于地震編目數(shù)據(jù)庫,利用Python的數(shù)據(jù)分析模塊(pandas)、文檔編輯模塊(docx)、表格編輯模塊(openpyxl)等功能模塊,實現(xiàn)以下功能。①數(shù)據(jù)采集:程序從數(shù)據(jù)庫獲取地震數(shù)據(jù),包括主震和余震在內(nèi)的全部地震事件信息,采集到的信息將以Excel表格格式保存,并將篩選出來的主震信息以下拉菜單的形式在程序主界面上展示。②數(shù)據(jù)處理:程序?qū)Λ@取的地震數(shù)據(jù)進行處理,根據(jù)主震發(fā)震時間、位置等信息,提取出相應(yīng)余震序列,余震序列主要信息以列表形式在程序主界面展示。使用者可根據(jù)需要對余震列表進行增、刪、改等操作。③統(tǒng)計分析:程序?qū)τ嗾鹦蛄羞M行統(tǒng)計分析,包括計算余震的總數(shù)、最大震級、震級分布等情況。這些統(tǒng)計結(jié)果將有助于評估地震活動的強度和趨勢。④報告生成:程序?qū)⒏鶕?jù)統(tǒng)計分析的結(jié)果,生成余震統(tǒng)計報告。報告中包含標題、余震情況描述和地震參數(shù)列表組成。余震情況描述需詳細地描述主震地震三要素,到截止時間記錄余震總次數(shù),并按照不同震級統(tǒng)計次數(shù)。地震參數(shù)列表需包含截止時間、發(fā)震時刻、震中經(jīng)緯度、震源深度、震級和參考地名等信息。報告最終以Word和Excel格式保存相關(guān)信息。
1.2 ?實現(xiàn)代碼
根據(jù)中國地震局余震統(tǒng)計相關(guān)要求,主震需篩選震級在3.0級以上的本省地震,余震根據(jù)主震震級不同,篩選2.0級或3.0級以上地震。并以正式編目結(jié)果為準。因此,在事件篩選過程中,將編目類型、中文地名、發(fā)震時間、經(jīng)緯度等信息均作為篩選條件。為方便使用者快速修改目錄,本程序增加了對余震序列列表增、刪、改的功能。余震統(tǒng)計報告需對各震級余震分段統(tǒng)計。程序采用如下代碼實現(xiàn)相應(yīng)功能。
1)連接服務(wù)器數(shù)據(jù)庫并篩選符合條件的主震事件,主要選取了數(shù)據(jù)庫中事件類型代碼Auto_flag、震級M、震中中文地名Location_cname、發(fā)震時刻O_time等信息作為篩選條件。篩選出來的主震信息以Excel存儲,并實現(xiàn)存儲事件信息在GUI下拉菜單中顯示,測試結(jié)果如圖2所示,部分代碼如下。
for sh_name in data.keys():
sh_data = pd.DataFrame(pd.read_excel(‘./*.xlsx, sh_name))
for ll in sh_data[‘Cata_name]:
self.comboBox.addItem(ll)
self.comboBox.currentIndexChanged.connect(self.selchange)
2)為方便余震信息核對、修改,將篩選出的余震信息在GUI界面顯示,并實現(xiàn)增、刪、改功能,測試結(jié)果如圖3所示,部分代碼如下。
#余震信息顯示
self.tableWidget.setRowCount(dataYZa.shape[0])
self.tableWidget.setColumnCount(dataYZa.shape[1])
self.tableWidget.setHorizontalHeaderLabels(dataYZa.columns)
for i in range(dataYZa.shape[0]):
for j in range(dataYZa.shape[1]):
self.tableWidget.setItem(i,j,TableWidgetItem(str(dataYZa.iloc[i, j])))
#余震信息修改
row = self.tableWidget.rowCount()
self.tableWidget.insertRow(row)
msg = QMessageBox()
msg.setWindowTitle('提示')
msg.setText('生成報告前請保存修改內(nèi)容')
msg.setStandardButtons(QMessageBox.Ok)
rows = self.tableWidget.selectionModel().selectedRows()
for i in rows:
self.tableWidget.removeRow(i.row())
msg = QMessageBox()
msg.setWindowTitle('提示')
msg.setText('生成報告前請保存修改內(nèi)容')
msg.setStandardButtons(QMessageBox.Ok)
圖3 ?余震信息修改功能測試
3)按照余震統(tǒng)計報告內(nèi)容,需統(tǒng)計出各震級區(qū)間地震數(shù)量,如4.0~4.9級、…、2.0~2.9級等,以方便分析人員使用,測試結(jié)果如圖4所示。部分代碼如下
data_score3 = dataS[dataS[‘M] > 3]
if len(data_score3) >= 1:
num3 = int(len(data_score3) - 1 - num4)
else:
num3 = len(data_score3)
2 ?軟件功能及測試
本程序設(shè)計了GUI人機交互界面,實現(xiàn)了余震序列統(tǒng)計報告產(chǎn)出所需的相應(yīng)功能,如圖5所示。①主震功能區(qū),通過選擇需要處理分析的主震事件,提取顯示發(fā)震時刻、二級地名2項主要信息,并根據(jù)選擇的主震自動篩選相應(yīng)的余震信息。②余震篩選條件功能區(qū),通過設(shè)置余震篩選條件,確定余震選取的截止時間、震級下限、經(jīng)緯度范圍。③余震列表功能區(qū),顯示篩選出來的余震列表,包括發(fā)震時刻、震中經(jīng)緯度、震源深度、震級和震中地名等信息,并提供人工修改余震列表功能,可增加或刪除余震條目,確定余震列表后產(chǎn)出余震統(tǒng)計報告。
程序開發(fā)完成后,選取了2021年1月24日發(fā)生在黑龍江訥河的3.0級地震事件,對程序各項功能進行測試。程序按照設(shè)計在編目服務(wù)器數(shù)據(jù)庫獲取地震編目結(jié)果,截止日期修改為2021年4月1日0時,震級下限1級,經(jīng)緯度范圍1°,與人工校核對比,余震列表產(chǎn)出完整,符合余震統(tǒng)計需求,分震級統(tǒng)計余震個數(shù)準確,余震統(tǒng)計報告產(chǎn)出符合規(guī)定要求,產(chǎn)出報告如圖6所示。經(jīng)過測試,并與人工校核、編輯報告相比,產(chǎn)出速度更快、結(jié)果準確可靠、程序功能設(shè)置合理、使用便捷,能夠滿足地震余震序列統(tǒng)計的相關(guān)要求。
3 ?總結(jié)
通過開發(fā)這款地震余震序列統(tǒng)計程序,黑龍江地震臺可以實現(xiàn)更快速、準確地產(chǎn)出余震統(tǒng)計報告。該程序的研發(fā),滿足了地震發(fā)生后余震統(tǒng)計工作的切實需求,提高了余震目錄的產(chǎn)出效率,提高了業(yè)務(wù)自動化水平,為提升黑龍江地震臺地震監(jiān)測和速報能力提供了必要的技術(shù)支撐。當然程序設(shè)計還存在一些不足,將在后續(xù)的工作中進一步完善。
參考文獻:
[1] 趙杰,鄭樹平,王飛劍.基于遙感影像的區(qū)域房屋抗震能力評估——以山西省忻州市為例[J].山西地震,2022(1):17-20.
[2] 謝君.多災(zāi)背景下檔案館建筑安全風(fēng)險評估體系研究[J].中國檔案,2013(12):55-57.
[3] 陳經(jīng)綸,李杰飛,苗春蘭,等.基于瀘定MS6.8地震的應(yīng)急余震序列自動統(tǒng)計程序研發(fā)[J].地震地磁觀測與研究,2022,43(5):193-198.
[4] 金艷,張佑龍,劉川琴,等.安徽省數(shù)字化地震編目工作[J].地震地磁觀測與研究,2017,38(2):168-171.
[5] 呂永清,向涯,周云耀,等.地震計階躍標定信號去除方法研究[J].大地測量與地球動力學(xué),2020,40(7):761-764.