jingxu00212027的个人博客分享 http://blog.sciencenet.cn/u/jingxu00212027

博文

ObsPy中仪器响应的修改

已有 621 次阅读 2019-12-2 21:55 |系统分类:科研笔记

        使用ObsPy从台湾宽频地震观测网(Broadband Array of Taiwan for Seismology, BATS)

下载了920集集地震的余震记录。在去除仪器响应时,程序报错,于是循环挨个print了每个

trace的stats。发现台站名称为TATO(台北)内channel名为BHE的仪器响应中的(response)里

stage7的gain显示为UNKNOWN,如下图所示:

TATO_response.jpg

        看了一下同一台站中channel BHN的仪器响应,没有这个问题,于是想用BHN的respnse

替换BHE的response。翻了半天ObsPy的教程,没找到相关的方法。晚上吃完饭以后,

休息了一会儿,接着查ObsPy的文档,发现response是obspy.core.inventory.response.Response

类的实例。想当然的在Ipython里面的response对象后面加".", 然后按Tab,才知道Response

类是ObsPy中定义的基本类,没法修改。

        所以只能退而求其次,观察Stats类的方法,发现Stats类是采用Python的基本数据类型

中的dictionary来实现的。继承了special method中的__setattr__(key, value)。至此,问题的

解决终于水到渠成了。

```

tr = st[21]; tr1 = st[22] # response of st[22] is correct
resp = tr1.stats.response
tr.stats.__setattr__('response', resp)

```



http://blog.sciencenet.cn/blog-873750-1208548.html

上一篇:强地震动数据格式和转换
下一篇:地震危险性分析开源软件OpenQuake-Engine使用手册中文翻译

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2020-2-20 19:38

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部