SeisComP3 文档

scwfparam

波形参量化模块

描述

scwfparam 用于实时或离线计算:

  • 峰值地面加速度(PGA)
  • 峰值地面速度(PGV)
  • 相对位移的弹性反应谱(DRS)
  • 伪绝对加速度的弹性反应谱(PSA)

调度

在模块进入离线模式前,事件的处理将按照配置规则进行调度。影响调度的参数有:

  • wfparam.cron.wakeupInterval
  • wfparam.cron.updateDelay
  • wfparam.cron.delayTimes

将处理程序添加至调度,模块需判别两种情形:

  1. 处理程序创建(首次看到新事件或更新事件)
  2. 处理程序更新(处理程序创建后的事件更新)

处理程序创建

当收到一个新事件或更新事件,且该事件尚未关联处理程序,新的处理程序将被创建。

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

处理程序

处理程序可分为以下步骤:

  • 采集最大距离内的所有台站
  • 移除已处理过的通道
  • 查找包含最高采样频率的速度和加速度流
    • 检测单位以分辨速度流和加速度流(M/S, M/S**2)
  • 使用每个流所允许的所有分量
  • 如果无有效拾取,计算预期 P 波到时
  • 启动波形采集
  • 如果一个流的时间窗口已完成,执行(斜体为可选)
    • 检查饱和因子
    • 检索最大原值
    • 应用增益
    • 在 P 波到达 5 秒后检查 STA/LTA 阈值
    • 若是速度,分化数据为加速度
    • 计算预设事件截止是否允许
    • 计算预设事件时间窗口的偏移
    • 计算信号持续时间,检测余震
    • 使用 FFT 波谱分法和传递函数进行去卷积
    • 应用可选灵敏度校正过滤器
    • 应用可选低通、高通或带通过滤器
    • 计算 PGA 或 PGV
    • 计算响应频谱
  • 如果采集结束,那么
    • 采集所有的值
    • 生成 ShakeMap 事件和台站 XML
    • 调用 ShakeMap 脚本,传递事件ID及其路径

波形归档

如果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

ShakeMaps

事件 XML

<?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

<?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>

示例

  1. 离线运行 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
    
  2. 运行,给定允许调度的事件。仅处理给定的事件。

     scwfparam -I arclink://localhost:18001 -E gfz2011oeej \
           -d mysql://sysop:sysop@localhost/seiscomp3
    
  3. 运行,使用远程 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"
    
  4. 运行,使用远程 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