基于峰度的P和S波拾取器

ps-picker的Python项目详细描述


用改进峰度法进行地震纵横波拾取

Baillard et al.,2014中描述的Python port of the picker

调试信息保存到本地文件run{datetime}.log

方法论

选取器基于峰度,但也使用能级,极性, 聚类和相位关联分为三步:

步骤1:定义全局拾取窗口

计算所有台站的Kurtosis。全球窗口 围绕着触发器最密集的聚集区域。在

第2步:在每个站点分别选择P和S到达

每个站点:
  • 计算从粗到细尺度上的Kurtosis。在
  • 在粗略的范围内确定候选人,并使用 最后的天平
  • 根据signal-to-noise level选择P-和S-候选者 每一个选择
  • 如果可能,使用波形polarity验证候选对象
    • 极性仅在其中一个截齿倾斜超过30度时使用

第3步:员工选择

  • 根据P-S延迟和 一个简单的速度模型(我可以用一个Vp/Vs值吗?)在
  • 如果至少聚集了3个起始时间,则使用它们的平均起始时间 为了验证所有候选对象,可能会使用未使用的资源库 P和S替补人选
  • 如果不到3倍-P,则拒绝选择 基于P-pick时间、S-pick时间和P-S延迟的聚类

工作流示例

从自动抓取一些事件开始,所有的铃声和口哨声都打开:

/SEISAN/MAYOBS中的数据库中选择一个事件:

fromps_pickerimportPSPickerpicker=PSPicker('parameters_C.yaml','/SEISAN/MAYOBS/WAV/MAYOB','/SEISAN/MAYOBS/REA/MAYOB')picker.run_one('19-0607-59L.S201905',plot_global=True,plot_stations=True,verbose=True)

查看所有的图,并验证picks和association是否为 你期待的。如果没有,请更改参数并再次运行。在

接下来,在

bells和whistles文本将保存到名为 运行{DATETIME}.log

要在同一数据库中选择5月5日至25日的事件:

^{pr2}$

最后,运行整个数据库,而不使用plots

(始终创建run{DATETIME}.log)

选择2019年5月26日至2020年5月1日的活动:

fromps_pickerimportPSPickerpicker=PSPicker('parameters_C.yaml','/SEISAN/MAYOBS/WAV/MAYOB','/SEISAN/MAYOBS/REA/MAYOB')picker.run_many('20190526','20200501')

三种主要方法:

def__init__(self,parm_file,wav_base_path,database_path_in,database_path_out='Sfile_directory',database_format='NORDIC',verbose=True,debug_plots=False):"""
    :param parm_file: path/name of the parameter file
    :param wav_base_path: absolute basepath to the waveform files (just before
                          the YEAR/MONTH subdirectories)
    :param database_path_in: absolute basepath to the database/catalog file(s)
                             (just before the YEAR/MONTH subdirectories)
    :param database_path_out: path to output database files
    :param database_format: 'NORDIC' is the only choice for now
        'NORDIC': Use SEISAN conventions for waveform  and database files
                  (naming, and location in YEAR/MONTH subdirectories)
    :param verbose: output 'verbose' and 'debug' logs to console (will be
                    flagged DEBUG because logging module has no VERBOSE level)
    :param debug_plots: show debugging plots
    """
defrun_one(self,database_filename,plot_global=True,plot_stations=False,assoc=None,verbose=False,debug_plots=None):"""
    Picks P and S arrivals on one waveform, using the Kurtosis

    Information in the database file will be appended with the picks.
    :param database_filename: database file to read
    :param plot_global: show global and overall pick plots
    :param plot_stations: show individual station plots
    :param assoc: Associator object (used by run_many())
    :param verbose: same as in creator
    :param debug_plots: same as in creator
    """
defrun_many(self,start_date,end_date,plot_global=False,plot_stations=False,verbose=False,ignore_fails=False):"""
    Loops over events in a date range

    :param start_date: "YYYYMMDD" or "YYYYMMDDHHMM" of first data to process
    :param end_date: "YYYYMMDD" of last data to process
    :param plot_global: show global and overall pick plots
    :param plot_stations: show individual station plots
    :param ignore_fails: keep going if one run fails

    """

参数和响应文件

Are documented here

待办事项

  • 添加基于事件位置的单独P和S候选者接受
  • 在P-、S-和P-S聚类阶段,允许未使用的候选对象 代替被拒绝的选择
  • 专用To Do file

另请参见profiling file

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
SpringWeb中的java更新/通知其他用户   java Lambda性能测试   java Bukkit插件:空白符号   java在按下按钮后改变彩色正方形的大小   javajavac相当于“D”?   java序列化接口   属性无法从属性文件返回值   java我应该使用什么查询来使用Jsoup从html页面提取符号?   java Android Studio项目结构问题   JAVA方法和返回值/公共变量(基础)   java将NativeQuery映射到POJO   java如何在下面的程序中消除NumberFormatException?   在java中获取链表与数组中的对象   java Android Firebase将用户发送到聊天室