999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Python用于簡易烈度計系統(tǒng)運維

2017-09-12 06:35:03周藍捷方韓李文惠
科技創(chuàng)新與應用 2017年26期

周藍捷+方韓+李文惠

摘 要:文章是關(guān)于Python在地震監(jiān)測服務器環(huán)境中的應用,使用Python及擴展包進行簡易烈度計地震監(jiān)測服務器運維監(jiān)控、信息分析和發(fā)布。以常見的微信信息推送、延時統(tǒng)計、數(shù)據(jù)有效率統(tǒng)計、格式轉(zhuǎn)換及簡單數(shù)據(jù)分析過程提供了例程。

關(guān)鍵詞:Python;簡易烈度計;運維監(jiān)控

中圖分類號:P315.73 文獻標志碼:A 文章編號:2095-2945(2017)26-0151-02

1 概況

在福建省簡易烈度計地震預警項目實施中,廈門地震勘測研究中心承擔項目中簡易烈度計站點的勘選、安裝、組網(wǎng)建設等工作。在實施過程中,中心在Linux操作系統(tǒng)上,采用Earthworm技術(shù)系統(tǒng)搭建了簡易烈度計數(shù)據(jù)處理平臺。為了更好的監(jiān)控系統(tǒng)運行狀態(tài),減輕值班人員工作量,采用Python語言編寫了系統(tǒng)運行狀態(tài)監(jiān)控與信息發(fā)布程序。

Python是一門簡單易學且功能強大的編程語言。它由荷蘭人Guido van Rossum于1989年發(fā)明,第一個公開發(fā)行版發(fā)行于1991年。Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協(xié)議。它擁有高效的高級數(shù)據(jù)結(jié)構(gòu),并且能夠用簡單而又高效的方式進行面向?qū)ο缶幊獭ython簡單易學,并具有跨平臺特性,雖然運行效率不高,但并不成為瓶頸,不影響系統(tǒng)表現(xiàn),但開發(fā)效率極高,能夠幫助運維人員快速達成開發(fā)目標。

在開發(fā)的過程中,主要使用了Python中的Numpy、Matplotlib、Bsemap和Obspy等擴展包。

2 在烈度計系統(tǒng)運維中的應用

2.1 運維信息使用微信企業(yè)號推送

#定制并獲取用戶關(guān)心的內(nèi)容content,通過企業(yè)號發(fā)送出去

#gettoken和senddata兩個函數(shù)內(nèi)容略,可直接復用

corpid = 'qiyehaoID'

corpsecret = 'qiyehaoMIYAO'

#獲取token

accesstoken = gettoken(corpid,corpsecret)

#系統(tǒng)通知相關(guān)變量

user = '1|2|21|zlj|35|36|37|62|63|64|zsp'

#給user發(fā)送

contents=getcontent()

senddata(accesstoken,user,contents)

2.2 烈度計數(shù)據(jù)處理

2.2.1 OBSPY.EARTHWORM.CLIENT應用

#實時獲取Earthworm服務器中臺站數(shù)據(jù)當前的延時

from obspy.clients.earthworm import Client

from obspy import UTCDateTime

clientZ = Client("10.35.176.14", 16022, timeout=5)

t = UTCDateTime()

print("Process started at:", t)

responses =clientZ.get_availability(network="FJ")

delays=()

for response in responses:

delays += (response[1],response[5],t-response[5])

print('site:',response[1],'last received:',response[5],'delay is:',float(t-response[5]))

delayinseconds=delays[2::3]

delaymax=max(delayinseconds)

delaymin=min(delayinseconds)

print('current time is',t,'.processed',len(delays)/3,'sites.')

print('max delay of above is:',delaymax,'and min is:',delaymin)

2.2.2 OBSPY-SCAN應用

我們經(jīng)常會有一堆數(shù)據(jù),但是要處理的事件只是其中幾分鐘,我們想看看其中有哪些臺站是可以用的,或者,我們想知道這段時間整個臺網(wǎng)運行的情況。ObsPy提供了obspy-scan腳本可供使用。它在文件頭中檢數(shù)據(jù)文件格式(支持MiniSEED、SAC、SACXY、GSE2、SH-ASC、SH-Q、SEISAN等等),通過計算,以紅色豎線繪制出斷記,以小叉表示數(shù)據(jù)起始點,將整個數(shù)據(jù)文件的有效性直觀的展現(xiàn)出來。這個腳本工具可以一次性掃描超過1000個文件(實際上已經(jīng)在超過30000個文件的序列中運用過,計算持續(xù)時間45分鐘)。它能夠自動的將數(shù)據(jù)文件對應的年份月份繪制出來。對于繪制結(jié)果,我們還可以對關(guān)心的片段進行放大。

如下簡單的一個指令即可進行數(shù)據(jù)文件掃描:

$obspy-scan /home/xmzk/357/*HLZ.mseed -o 357report.png

圖1 obspy-scan的結(jié)果

2.2.3 波形按震中距排序分布圖的繪制

以2016年10月31日16:26分廣東梅州3.6級地震事件中,福建省漳州市境內(nèi)128個簡易烈度計的數(shù)據(jù)記錄,做簡單的震中距排序分布圖為例:endprint

#在列表中查詢臺站經(jīng)緯度,計算震中距,0.1-10Hz帶通濾波,做震中距排序分布圖

#關(guān)鍵部分代碼

for sta in stas:

y,x=os.popen("grep "+sta+" /root/allstation | awk '{print $2,$3}'").read().split()

stZs.select(station=sta)[0].stats.stla=float(x)

stZs.select(station=sta)[0].stats.stlo=float(y)

for sts in stZs:

sts.stats.distance=gps2dist_azimuth(sts.stats.stla,sts.stats.stlo,eq_lat,eq_lon)[0]

Zstf=stZs.filter('bandpass',freqmin=0.1,freqmax=10)

Zstf.plot(type='section')

plt.savefig('/root/imgs/Z-section-'+et+'.png')

2.2.4 數(shù)據(jù)文件的抽取和格式的轉(zhuǎn)換

#對給定的miniseed文件,抽取指定時間的數(shù)據(jù)片段,并轉(zhuǎn)換為SAC格式

from obspy import read,Stream,UTCDateTime

import numpy as np

import os,datetime

pa=input("請輸入數(shù)據(jù)文件完整路徑,以'/'結(jié)束( eg. /home/xmzk/mseed/FJ/2016/305/,當前目錄 ./ ):")

et=input("請輸入有效起始UTC時刻,格式Y(jié)YYYMMDD-HHMM( eg. 20161030-0826 ):")

drt=input("請輸入需要取出的時間長度,單位整數(shù)秒( eg. 300 ):")

dt=UTCDateTime(datetime.datetime.strptime(et,'%Y%m%d-%H%M'))

stZs=read(pa+"*HLZ*.mseed",starttime=dt,endtime=dt+int(drt)).merge().sort()

for sts in stZs:

if hasattr(sts.data,'mask'):

sts.data=sts.data.filled(0)

for sts in stZs:

sts.write('./'+sts.id+'.SAC',format='SAC')

3 小結(jié)與展望

采用Python語言及相應的擴展包能夠提高地震學項目的開發(fā)效率,能夠減少在計算機編程語言方面的學習時間,成倍的提升數(shù)據(jù)處理工作效率,能夠提供豐富的圖形可視化結(jié)果,具有光明的前景,是值得學習并使用的高級計算機語言之一。

參考文獻:

[1]Python Tutorial.http://www.pythondoc.com/pythontutorial3/index.html.

[2]TIOBE.http://www.tiobe.com/.

[3]Numpy.http://www.numpy.org/.

[4]Matplotlib.http://matplotlib.org/.

[5]Basemap.http://matplotlib.org/basemap/.

[6]ObsPy Tutorial.http://docs.obspy.org/tutorial/.endprint

主站蜘蛛池模板: 999在线免费视频| 亚洲三级视频在线观看| 国产亚洲欧美在线专区| 国产va在线观看| 内射人妻无套中出无码| 一级成人欧美一区在线观看| 日韩人妻无码制服丝袜视频| 国产精品成人观看视频国产 | 激情视频综合网| 国产黄色爱视频| 国产精品分类视频分类一区| 久久精品aⅴ无码中文字幕| AV天堂资源福利在线观看| 婷婷成人综合| 国产高清又黄又嫩的免费视频网站| 伊人蕉久影院| 午夜人性色福利无码视频在线观看| 久久永久视频| 啪啪永久免费av| 激情無極限的亚洲一区免费| 国产欧美日韩91| 国产精品.com| 国产精品成人啪精品视频| 国产啪在线| 国产一区二区三区在线观看视频| 久久久久亚洲精品成人网| 三上悠亚精品二区在线观看| 最新无码专区超级碰碰碰| 国产综合欧美| 国产区免费| 国产国产人成免费视频77777| 亚洲成人黄色在线| 美女啪啪无遮挡| 中日无码在线观看| 国产精品爽爽va在线无码观看| 中文字幕中文字字幕码一二区| 久久一本日韩精品中文字幕屁孩| 日韩av在线直播| 欧美在线免费| 亚洲成A人V欧美综合天堂| 免费无遮挡AV| 欧美a级完整在线观看| 91在线精品免费免费播放| 成人福利在线观看| 亚洲欧美在线综合一区二区三区| 国产成人亚洲精品无码电影| 国产91精品调教在线播放| 成人午夜亚洲影视在线观看| 亚洲成a人在线播放www| 乱色熟女综合一区二区| 999福利激情视频| 亚洲一级毛片在线观播放| 亚洲第一成年人网站| 一本色道久久88亚洲综合| 欧美午夜小视频| 婷婷综合缴情亚洲五月伊| 九九热精品视频在线| 亚洲Aⅴ无码专区在线观看q| 97国产精品视频自在拍| 久久精品国产999大香线焦| 久视频免费精品6| 亚洲国产AV无码综合原创| 一级做a爰片久久免费| 幺女国产一级毛片| 亚洲欧美日韩另类在线一| 666精品国产精品亚洲| 黄色网页在线播放| 青青草原国产精品啪啪视频| 久久青草精品一区二区三区| 九九热在线视频| 国产成人做受免费视频| 农村乱人伦一区二区| 亚洲欧美在线综合一区二区三区| 久久青草免费91线频观看不卡| 国产在线日本| 免费精品一区二区h| 亚洲另类色| 99在线视频网站| 一区二区三区国产| 国产精品亚洲日韩AⅤ在线观看| 欧美高清三区| 成人免费午夜视频|