python - 解码 SEGD 文件并绘制其中的任何轨迹

标签 python physics geo petrel

有一个 SEGD 文件,其中包含一些地震数据。如何解码任何跟踪?

Python 脚本可以根据 SEGD Rev 2.1 文档读取和解码 header 。如何解码和绘制任何迹线。曾尝试使用1字节四位指数数据记录方法。但结果错误。 数据主体:

'10111110', '00101001', '11001111', '00010010', '10111101', '10100110', '00110010', '00100100', '10111100', '10010000', '10000100', '10010101', '00111101', '10101001', '00010110', '00100010', '00111110', '00001000', '10010001', '11011010', '00111101', '10101001', '00010110', '00100010', '00111100', '10011100', '00010100', '10001011',

期望得到类似的东西

    1.000e+00,  1.000e+00,  1.000e+00,  1.000e+00,  3.125e-02,
    1.000e+00,  1.000e+00,  1.000e+00,  1.000e+00,  1.000e+00,
    1.000e+00,  1.000e+00,  1.000e+00,  3.125e-02,  3.125e-02,
    3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,
    3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,
    3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,
    3.125e-02,  3.125e-02, -1.000e+00, -1.000e+00, -1.000e+00,
   -1.000e+00, -1.000e+00, -1.000e+00, -1.000e+00, -1.000e+00,
    3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,  7.000e+00,
    2.600e+01,  4.100e+01,  6.100e+01,  7.500e+01,  7.400e+01,
    5.900e+01,  3.600e+01,  1.500e+01,  1.000e+00, -7.000e+00,
   -1.200e+01, -1.300e+01, -1.400e+01, -1.200e+01, -1.000e+01,

最佳答案

使用结构体。创建一种格式,并使用它在跟踪开始处读取文件,即。

    tracedataformat = '!' + str('f' * ns)
    f.seek(pos)
    tr = np.zeros(ns, np.float)
    tr = np.array(struct.unpack(format, f.read(4 * ns)))
  • 读取 IEEE 格式的 32 位 float
  • ns - 要读取的样本数(从 channel 描述符中获取)
  • pos - 相对于跟踪开头的文件开头的位置(以字节为单位)。

关于python - 解码 SEGD 文件并绘制其中的任何轨迹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58573857/

相关文章:

python - 使用 Django 和 python 迁移模型时出现错误

c# - Unity 为什么 WheelCollider 扭矩这么慢?

javascript - 开放层 : Attaching an ground layer image over an large building

python - 使用 basemap 获取城市 map 的最佳方式?

javascript - d3.geoEquirectangular() 对 map 的渲染不一致

python - 覆盖保存方法迫使我在管理中保存两次

python - 什么是 Yahoo openid 发现端点

java - 无法实现二维机构的运动

physics - Modelica 中的七体机构

java - hadoop streaming,使用-libjars 包含jar 文件