问题标签 [obspy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2796 浏览

python - Python - How to transform counts in to m/s using the obspy module

I have a miniseed file with a singlechannel trace and I assume the data is in counts (how can i check the units of the trace?). I need to transform this in to m/s. I already checked the obspy tutorial and my main problem is that i dont know how to access the poles and zeros and amplification factor from the miniseed file. Also, do I need the calibration file for this?

Here is my code:

Thanks in advance, Guilherme

EDIT: I finally understood how to convert the data. Obspy has different ways to achieve this, but it all comes down to removing the instrument response from the waveform data. Like @Robert Barsch said, I needed another file to get the instrument response metadata. So I came up with the following code:

Im using the seisSim function to convert the data. My problem now is that the output dosen't look right (but i cant seem to post the image)

0 投票
1 回答
390 浏览

python - 从 mod_python apache 模块调用 Obspy.read() 时不起作用

我正在尝试制作一个简单的 Web 服务,它可以读取 MSEED 文件并输出一些相关信息。

最合理的选择似乎是使用Python与优秀的obspy模块(A Python Toolbox for seismology/seismological observatories),它在地震学界被广泛使用。

我使用这个简单的 python 代码成功地读取了一个文件并从中获取了一些信息:

现在,如果我想将它实现为 Web 服务,在几个不同的选择中,我可以在 Apache 上安装 mod_python,并以不同的方式调用这样的脚本。

我执行以下操作(脚本位于名为 的文件中test.py):

发生的情况是,它在最后一行挂起而没有给出任何错误。 从我的服务器 http://localhost.my/cgi-bin/test.py调用脚本时, 它运行良好,直到最后一行,然后它甚至不打印任何东西,但再次没有输出错误

更奇怪的是,如果我改变最后一行

然后它工作。

我尝试了什么:

  1. 更改文件/文件夹的权限。脚本和文件位于我的 /var/www/cgi-bin 目录中。将每个人都可读分配给文件和目录不起作用
  2. 将文件移动到不同的文件夹
  3. 更改文件/目录的所有者(到 www-data)

但它仍然不起作用。

我不明白这是 obspy 模块的问题还是 apache mod_python 的一些限制。

关于如何解决这个问题的任何想法?

0 投票
1 回答
1060 浏览

python - 需要更高的精度才能使用 ObsPy 保存到 SEG-Y

我正在尝试使用 Python 的 ObsPy 以 SEG-Y 格式保存数据。我在数据类型方面遇到问题。我需要比 float32 更高的精度,因为我的采样率非常高(10 MSamples/sec),所以时间间隔只有 0.1 微秒。同样,我的 high_cut_frequency 为 20MHz,超出了 float32(20000000)的容量。当我编写标题信息时,这些值会被默认值(1.0 或 0.0)覆盖。这适用于 SEG-Y 标头和通用 ObsPy 标头。是否可以保存在 float64 中?或者,是否有其他技巧可以让我使用 SEG-Y 获得所需的精度?据我所知,数据编码只允许float32。

下面是基本代码,在产生错误的行上有注释:

0 投票
1 回答
726 浏览

python - ObsPy 在时间序列中绘制沙滩球

我正在尝试在时间序列中绘制 ObsPy(或任何 python)地震震源机制。

当对 x 使用整数/浮点数系列时,它工作正常,但时间序列在这里失败:

源代码中的函数 xy2patch试图通过浮点值来缩放时间。

有任何想法吗?破解源码?其他套餐?谢谢。

0 投票
1 回答
501 浏览

python - Obspy,从 SDS 文件结构中读取文件

我正在使用 obspy 模块将 miniseed 文件从本地 SDS 文件结构读取到 obspy 流对象中。我根据SeisComP 格式化指令将我的文件组织成本地 SDS 文件结构,初始化obspy 客户端并使用client.get_waveforms函数,但返回的流对象为空。对于处理文件导入的代码部分,我在 python 中没有收到任何错误。

这是我的文件结构示例,它代表 YEAR-2011、Day-315、Network-OZLLOC1、Station-6F20、Location-B、Channel-E、Type-D:

“SDS_root”/2011/OZLLOC1/6F20/ED/OZLLOC1.6F20.BED2011.022.msd

任何我的文件导入代码:

print 语句给出“0 Trace(s) in Stream:”

正如您所看到的,我已经广泛使用通配符来在我的文件上投下一个大网,但是仍然没有任何内容被读入流(st 变量)。有没有人有过使用 obspy 阅读 SDS 的经验,或者可以发现我的问题?

0 投票
1 回答
655 浏览

filter - 调用 Obspy 跟踪过滤功能的正确方法是什么?

我正在尝试使用带通滤波器(正确加载)

不幸的是,这会返回:

Traceback (most recent call last): File "nm_data_analysis.py", line 44, in <module> tr.filter('bandpass', freqmin, freqmax, df, corners=corners, zerophase=False) # Bandpass filter data TypeError: filter() takes 2 positional arguments but 5 were given

相关文档可以在这里找到

如果您能看到我哪里出错了,请告诉我。

非常感谢!

0 投票
2 回答
2961 浏览

python - 在 Python 中使用沙滩球图(焦点机制)

我对焦点机制(沙滩球)非常陌生,并想使用 Python 将它们绘制到全球地图上。

我已经安装了 Anaconda 套件,想知道是否需要安装任何其他模块才能使其正常工作(即 Anaconda 套件中是否包含 obspy 模块?

我不会使用任何特定的地震学文件作为输入,而只是想通过手动插入相应的参数来创建这些沙滩球。到目前为止,我遇到了两个不同的代码示例:

和...

我不清楚这些值分别指的是什么。我有一个网站示例,我想从中检索相关信息,然后将这些值用作沙滩球的输入:

http://earthquake.usgs.gov/earthquakes/eventpage/us20005ysu#moment-tensor

提前致谢。

0 投票
1 回答
107 浏览

python - 更改底图投影会导致沙滩球/数据消失(obspy)

这里有一个与我的问题非常相似的问题,但是此页面上推荐的解决方案不适用于我的情况。对于投影“cyl”,绘制了沙滩球。将此投影更改为 'robin' (robinson) 会创建没有数据的投影(沙滩球)。其他类似问题的建议是使用:

为了将坐标转换为适用的投影,但这也包含在我的代码中(见下文):

0 投票
1 回答
358 浏览

python - 使用 obspy 通过 fdsn 访问地震数据(使用网络、台站、位置、通道)

我想下载 vulcano Tungurahua 周围地区的地震数据。在 obspy.clients.fdsn 函数的 obspy 文档中,描述了下载数据的步骤:

这里 get_waveforms 方法有参数

  • 网络 = "IU"
  • 站=“安模”
  • 位置 = "00"
  • 频道 = "LHZ"

使用函数client.get_stations我发现了我感兴趣的网络和站点名称:

  • 网络=“哟”
  • 站=“TBAG”

但是我不知道传递给函数所需的位置/通道字符串get_waveforms


我试过的:

返回:

所以似乎没有渠道存在。然而,当尝试

我明白了

所以这里没有列出频道“LHZ”,尽管它显然存在。

0 投票
1 回答
352 浏览

python - 在 Obspy 中,如何获取特定时间的幅度值?

假设我已经有一个对象 Trace,比如 trace,并且我想在 30 秒时获得一个幅度数据。

我想我可以像下面那样做,为了简单起见,假设开始时间为 0,

他们准备好方法了吗?就像是....