地震與臺風信息采集WEB應用方傳極
「為滿足前兆臺網地震目錄數據和臺風信息的需求,構建了基于Django框架的WEB應用,通過采集互聯網上地震和臺風信息資源,重新格式化信息,為后期的信息錄入提供了方便。(2023-2-25)」
關鍵詞:Django;地震;臺風;python
中圖分類號:P315.75 文獻標志碼:A 文章編號:2095-2945(2020)05-0161-03
Abstract:In order to meet the needs of earthquake catalogue data and typhoon information of precursory networks, a web application based on Django framework is constructed. By collecting the information resources of earthquake and typhoon on the Internet and reformatting the information, it provides convenience for later information entry.
Keywords: Django; earthquake; typhoon; python
引言
地震前兆觀測儀器,容易受到地震、臺風、人為等干擾因素的影響,反映在曲線上。而在數據預處理的過程中,通過人為判斷反映在曲線中的地震、自然等干擾因素,需要獲取地震目錄、臺風等外部信息作為判斷依據。對于前兆數據處理業務,迫切需要一套自動化信息采集和顯示系統進行服務。
1 系統框架
本系統基于B/S架構,應用python語言和Django框架作為后端服務器開發,采用sqlite3數據庫;前端應用HTML+CSS+JAVASCRIPT呈現信息,采用apache進行部署。
Django作為web系統的核心框架,采用了MTV的框架模式,即模型M,視圖V和模版T,是python語言驅動的開源框架,在此基礎上,增加信息采集層Collect,使此系統能夠自動運行?傮w框架見圖1。
客戶端發送請求,服務器收到請求后,解析URL地址,根據地址查找VIEW視圖,VIEW視圖根據請求的內容,通過Model與關系數據庫進行交互,將數據與Template模板進行數據封裝,產出html網頁返回到客戶端。通過自動采集地震目錄、臺風信息匯入數據庫中,提高了信息的實時利用率。
2 系統實現
2.1 采集層的實現
提供地震速報的網站有很多,如美國地震信息中心USGS、中國地震臺網中心CENC、國際地震中心ISC等,根據業務需求以及國際和地區上的權威地震信息發布,選取USGS和CENC作為主要地震目錄采集網站。另外福建靠近臺灣,采集臺灣氣象局地震信息作為補充。臺風信息采集了中國天氣臺風網。
通過分析網站數據傳輸機制,需要采集的4個網站中有3個采用了json格式數據包,分別為USGS、臺灣氣象局、中國天氣臺風網,JSON 是一種輕量級的數據交換格式,屬于javascript程序語言標準下的一個子集,易于被javascript解析。Python語言對JSON格式數據有很好的轉換和解析模塊,直接通過python的requests模塊下載json文檔,通過json模塊解析入庫即可。
而中國地震臺網中心網站把數據直接封裝在html頁面中,通過requests模塊獲取到html文檔,使用正則表達式進行字符串匹配查找,在python語言中,內嵌了正則表達式模塊re,匹配的字節碼如(u’<td.*>(.*)</td>’),re.findall函數獲取了html頁面表格內的所有數據。
2.2 Model層的實現
Django Model層實現了數據模型與數據庫的解耦,即數據模型的設計不需要依賴于特定的數據庫,通過ORM(關系映射模型),把表映射成類,把行作實例,把字段作為屬性, 建立模型類和表之間的對應關系,允許我們通過面向對象的方式來操作數據庫。好處是封裝了底層的數據庫實現,支持多個關系數據庫引擎,包括流行的MySQL、 PostgreSQL和SQLite,可以非常輕松的切換數據庫。
根據程序需要,設計了幾個模型,有地震目錄表、臺站信息表、臺風表、臺風細節表,以下是地震目錄表模型。采集的地震目錄與臺站進行震中距計算,把影響因子小的地震過濾,放入isFilter字段中。
2.3 VIEW視圖層的實現
在Django的MTV架構中,所謂視圖層其實是進行業務處理(包括接受和響應http請求),是模板(Template)和模型(Model)的“橋梁”,當請求頁面時,執行URL映射,根據URL映射調用視圖函數,Django就會創建一個包含本次請求原信息的 HttpRequest 對象,然后 Django 會將這個對象自動傳遞給相應的視圖函數,每個視圖都負責返回一個 HttpResponse 對象,響應可以是一張網頁的HTML內容,一個404錯誤,或者一張圖片等。
網站首頁展示了三天的地震信息和活躍的臺風信息,根據網頁中的過濾開關、地震網站開關、時間選取,把最終需要的地震目錄和臺風信息呈現在用戶眼前。
2.4 Template層的實現
Templates,在Django其實是HTML文件,它使用了Django模板語言引擎(Django Template Language,DTL),或者采用第三方引擎(如Jinja2)來進行模板頁面的渲染,可以把數據填寫到模板網頁中,產出html,實現動態效果。
在模板中,變量放入{{}}中,標簽用{%%}的形式,實現判斷、循環的等多種動態效果。
3 結束語
地震前兆臺網在日常業務處理中,應用到了大量的地震信息和臺風信息,通過此地震目錄和臺風信息,可以實現一站式服務,產出的地震信息可以便捷的復制到業務處理系統中,最終提高了業務效率。
參考文獻:
[1]梁燦,等.從地震目錄的變化論“十五”數字測震臺網拾震能力[J].東北地震研究,2008,24(4):76-80.
[2]何琳,等.地震目錄更新軟件[J].中國科技信息,2017,24:61-62.
[3]馬寶君,等.地震目錄快速轉換軟件[J].地震地磁觀測與研究,2005,26(3):87-90.
[4]張衛華,等.地震目錄資料自動搜索、下載軟件的實現[J].地震,2007,27(1):131-141.
[5]馬士振,等.基于Django框架的可視化地震目錄服務系統[J].震災防御技術,2015,10(3):695-699.
[6]馬士振,等.基于Django框架的兩種Web地震目錄分頁方法[J].地震地磁觀測與研究,2015,36(1):135-139.
[7]許云廷,等.開發基于Web的地震目錄數據庫查詢系統[J].地震學刊,2002,22(2):61-66.
[8]熊志強,等.用CSS樣式動態整形地震目錄查詢結果[J].華南地震,2002,22(4):74-78.
[9]胡衛,等.自動任意下載網頁上的地震目錄資料[J].地震地磁觀測與研究,2005,26(6):105-110.
(僚霜)
中圖分類號:P315.75 文獻標志碼:A 文章編號:2095-2945(2020)05-0161-03
Abstract:In order to meet the needs of earthquake catalogue data and typhoon information of precursory networks, a web application based on Django framework is constructed. By collecting the information resources of earthquake and typhoon on the Internet and reformatting the information, it provides convenience for later information entry.
Keywords: Django; earthquake; typhoon; python
引言
地震前兆觀測儀器,容易受到地震、臺風、人為等干擾因素的影響,反映在曲線上。而在數據預處理的過程中,通過人為判斷反映在曲線中的地震、自然等干擾因素,需要獲取地震目錄、臺風等外部信息作為判斷依據。對于前兆數據處理業務,迫切需要一套自動化信息采集和顯示系統進行服務。
1 系統框架
本系統基于B/S架構,應用python語言和Django框架作為后端服務器開發,采用sqlite3數據庫;前端應用HTML+CSS+JAVASCRIPT呈現信息,采用apache進行部署。
Django作為web系統的核心框架,采用了MTV的框架模式,即模型M,視圖V和模版T,是python語言驅動的開源框架,在此基礎上,增加信息采集層Collect,使此系統能夠自動運行?傮w框架見圖1。
客戶端發送請求,服務器收到請求后,解析URL地址,根據地址查找VIEW視圖,VIEW視圖根據請求的內容,通過Model與關系數據庫進行交互,將數據與Template模板進行數據封裝,產出html網頁返回到客戶端。通過自動采集地震目錄、臺風信息匯入數據庫中,提高了信息的實時利用率。
2 系統實現
2.1 采集層的實現
提供地震速報的網站有很多,如美國地震信息中心USGS、中國地震臺網中心CENC、國際地震中心ISC等,根據業務需求以及國際和地區上的權威地震信息發布,選取USGS和CENC作為主要地震目錄采集網站。另外福建靠近臺灣,采集臺灣氣象局地震信息作為補充。臺風信息采集了中國天氣臺風網。
通過分析網站數據傳輸機制,需要采集的4個網站中有3個采用了json格式數據包,分別為USGS、臺灣氣象局、中國天氣臺風網,JSON 是一種輕量級的數據交換格式,屬于javascript程序語言標準下的一個子集,易于被javascript解析。Python語言對JSON格式數據有很好的轉換和解析模塊,直接通過python的requests模塊下載json文檔,通過json模塊解析入庫即可。
而中國地震臺網中心網站把數據直接封裝在html頁面中,通過requests模塊獲取到html文檔,使用正則表達式進行字符串匹配查找,在python語言中,內嵌了正則表達式模塊re,匹配的字節碼如(u’<td.*>(.*)</td>’),re.findall函數獲取了html頁面表格內的所有數據。
2.2 Model層的實現
Django Model層實現了數據模型與數據庫的解耦,即數據模型的設計不需要依賴于特定的數據庫,通過ORM(關系映射模型),把表映射成類,把行作實例,把字段作為屬性, 建立模型類和表之間的對應關系,允許我們通過面向對象的方式來操作數據庫。好處是封裝了底層的數據庫實現,支持多個關系數據庫引擎,包括流行的MySQL、 PostgreSQL和SQLite,可以非常輕松的切換數據庫。
根據程序需要,設計了幾個模型,有地震目錄表、臺站信息表、臺風表、臺風細節表,以下是地震目錄表模型。采集的地震目錄與臺站進行震中距計算,把影響因子小的地震過濾,放入isFilter字段中。
2.3 VIEW視圖層的實現
在Django的MTV架構中,所謂視圖層其實是進行業務處理(包括接受和響應http請求),是模板(Template)和模型(Model)的“橋梁”,當請求頁面時,執行URL映射,根據URL映射調用視圖函數,Django就會創建一個包含本次請求原信息的 HttpRequest 對象,然后 Django 會將這個對象自動傳遞給相應的視圖函數,每個視圖都負責返回一個 HttpResponse 對象,響應可以是一張網頁的HTML內容,一個404錯誤,或者一張圖片等。
網站首頁展示了三天的地震信息和活躍的臺風信息,根據網頁中的過濾開關、地震網站開關、時間選取,把最終需要的地震目錄和臺風信息呈現在用戶眼前。
2.4 Template層的實現
Templates,在Django其實是HTML文件,它使用了Django模板語言引擎(Django Template Language,DTL),或者采用第三方引擎(如Jinja2)來進行模板頁面的渲染,可以把數據填寫到模板網頁中,產出html,實現動態效果。
在模板中,變量放入{{}}中,標簽用{%%}的形式,實現判斷、循環的等多種動態效果。
3 結束語
地震前兆臺網在日常業務處理中,應用到了大量的地震信息和臺風信息,通過此地震目錄和臺風信息,可以實現一站式服務,產出的地震信息可以便捷的復制到業務處理系統中,最終提高了業務效率。
參考文獻:
[1]梁燦,等.從地震目錄的變化論“十五”數字測震臺網拾震能力[J].東北地震研究,2008,24(4):76-80.
[2]何琳,等.地震目錄更新軟件[J].中國科技信息,2017,24:61-62.
[3]馬寶君,等.地震目錄快速轉換軟件[J].地震地磁觀測與研究,2005,26(3):87-90.
[4]張衛華,等.地震目錄資料自動搜索、下載軟件的實現[J].地震,2007,27(1):131-141.
[5]馬士振,等.基于Django框架的可視化地震目錄服務系統[J].震災防御技術,2015,10(3):695-699.
[6]馬士振,等.基于Django框架的兩種Web地震目錄分頁方法[J].地震地磁觀測與研究,2015,36(1):135-139.
[7]許云廷,等.開發基于Web的地震目錄數據庫查詢系統[J].地震學刊,2002,22(2):61-66.
[8]熊志強,等.用CSS樣式動態整形地震目錄查詢結果[J].華南地震,2002,22(4):74-78.
[9]胡衛,等.自動任意下載網頁上的地震目錄資料[J].地震地磁觀測與研究,2005,26(6):105-110.
(僚霜)