波形参量化模块
scwfparam 用于实时或离线计算:
在模块进入离线模式前,事件的处理将按照配置规则进行调度。影响调度的参数有:
将处理程序添加至调度,模块需判别两种情形:
当收到一个新事件或更新事件,且该事件尚未关联处理程序,新的处理程序将被创建。
for each time in wfparam.cron.delayTimes:
add_cron_job(process, Origin[Event.preferredOriginID].time + time)
如果事件的处理程序已经存在,那么该处理程序下次运行时间就是当前时间加上wfparam.cron.updateDelay
。
event_updated(event):
p = process_for_event(event)
# The schedule for process p could be {T1,T2,T3,T4}
now = get_current_time()
next_run = now + wfparam.cron.updateDelay
# Process currently suspended?
if isEmpty(p.schedule):
p.schedule.add(next_run)
elif (p.schedule[0] - next_run) > wfparam.cron.updateDelay:
p.schedule.prepend(next_run)
else:
# Do nothing, ignore the event update
pass
处理程序可分为以下步骤:
如果wfparam.output.waveforms.enable
设置为真,所有处理的波形将保存至wfparam.output.waveforms.path
。通道 MiniSEED 文件命名规范:
[EventDateTime]_[net]_[sta]_[loc][cha]_[filter][order]_[freqs].mseed
如果wfparam.output.waveforms.withEventDirectory
设置为真,将创建事件文件夹,用于保存通道文件
/path/to/waveforms/file1.mseed
/path/to/waveforms/file2.mseed
...
或
/path/to/waveforms/eventid/file1.mseed
/path/to/waveforms/eventid/file2.mseed
...
MiniSEED 文件包含未压缩 4096 字节的浮点记录。
示例:
项目 | 内容 |
---|---|
事件时间 | 2011-11-21 08:30:00 Network: CH |
台站 | SNIB |
位置 | _ _ |
通道 | HGZ |
过滤器 | hi-pass |
顺序 | 2 |
拐点频率 | 0.025 |
文件名 | 20111121083000_CH_SNIB_HGZ_HP2_0.025.mseed |
数据库模式安装至share/db/wfparam/*.sql
。登录数据库后台,可查看相关 .sql 文件源码。
要允许 scmaster 处理包含强位移参数对象的消息,请在scmaster.cfg
中加载 dmsm 插件:
plugins = ${plugins}, dmsm
scmaster 必须重启以激活插件。
欲使 scwfparam 发送包含强位移对象的消息,在scwfparam.cfg
中设置:
wfparam.output.messaging = true
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE earthquake SYSTEM "earthquake.dtd">
<earthquake id="gfz2011oasp" lat="38.916" lon="40.0711"
depth="10.3249" mag="5.80361" year="2011"
month="7" day="19" hour="14" minute="54"
second="21" timezone="GMT"
locstring="tst2011oasp / 38.916 / 40.0711"
/>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE earthquake SYSTEM "stationlist.dtd">
<stationlist created="" xmlns="ch.ethz.sed.shakemap.usgs.xml">
<station code="JMB" name="JMB" lat="42.467" lon="26.583">
<comp name="BHZ">
<acc value="0.0175823522" flag="0"/>
<vel value="0.0265134476" flag="0"/>
<psa03 value="0.0177551343" flag="0"/>
<psa10 value="0.0179450342" flag="0"/>
<psa30 value="0.0507100318" flag="0"/>
</comp>
</station>
<station code="BUD" name="BUD" insttype="STS-2/N"
lat="47.4836" lon="19.0239">
<comp name="BHZ">
<acc value="0.0018418704" flag="0"/>
<vel value="0.0012123935" flag="0"/>
<psa03 value="0.0019287320" flag="0"/>
<psa10 value="0.0033152716" flag="0"/>
<psa30 value="0.0027636448" flag="0"/>
</comp>
</station>
<station code="ANTO" name="ANTO" lat="39.868" lon="32.7934">
<comp name="BHZ">
<acc value="0.0322238962" flag="0"/>
<vel value="0.0250842840" flag="0"/>
<psa03 value="0.0326696355" flag="0"/>
<psa10 value="0.0621788884" flag="0"/>
<psa30 value="0.0903777107" flag="0"/>
</comp>
</station>
<station code="GNI" name="GNI" lat="40.148" lon="44.741">
<comp name="BHZ">
<acc value="0.0760558909" flag="0"/>
<vel value="0.0273735691" flag="0"/>
<psa03 value="0.0818660133" flag="0"/>
<psa10 value="0.1230812588" flag="0"/>
<psa30 value="0.1682284546" flag="0"/>
</comp>
</station>
</stationlist>
离线运行 scwfparam,提供一个 MiniSEED 卷,一个事件 XML 文件和编目 XML 文件,一个低通过滤器。处理程序立即启动,处理完成后结束应用。不允许调度器。
scwfparam --offline -I vallorcine.mseed \
--inventory-db vallorcine_inv.xml \
--ep vallorcine.xml -E "Vallorcine.2005.09.08" \
--lo-filter 0.1 --hi-filter 0
运行,给定允许调度的事件。仅处理给定的事件。
scwfparam -I arclink://localhost:18001 -E gfz2011oeej \
-d mysql://sysop:sysop@localhost/seiscomp3
运行,使用远程 ArcLink 服务器。
scwfparam --offline -I vallorcine.mseed \
--inventory-db vallorcine_inv.xml \
--ep vallorcine.xml -E "Vallorcine.2005.09.08" \
-I "arclink://arclink.ethz.ch:18002"
运行,使用远程 SeedLink 服务器。
scwfparam --offline -I vallorcine.mseed \
--inventory-db vallorcine_inv.xml \
--ep vallorcine.xml -E "Vallorcine.2005.09.08" \
-I "slink://geofon.gfz-potsdam.de:18000"
etc/defaults/global.cfg
etc/defaults/scwfparam.cfg
etc/global.cfg
etc/scwfparam.cfg
~/.seiscomp3/global.cfg
~/.seiscomp3/scwfparam.cfg