【问题标题】:Gravitational Waveform Plot From h5 File来自 h5 文件的引力波形图
【发布时间】:2016-05-17 14:08:46
【问题描述】:

我想绘制来自两个黑洞合并的波形我有一个从公共波形目录中获得的 .h5 文件。我是一个使用python的初学者,所以我真的不知道在这种情况下该怎么做。我有一个 .h5 文件,里面有一个 .dat 文件,我想用它来制作绘图。我从以下公共波形目录中获得了该文件:

http://www.black-holes.org/waveforms/data/DisplayDownloadPage.php/?id=SXS:BBH:0001#

文件的名称是:

rhOverM_Asymptotic_GeometricUnits.h5

它在 Lev5 目录中。 .h5文件的内容描述在:

https://www.black-holes.org/waveforms/docs.html

文件中有一个数据集,我认为它描述了我想要绘制的波形。问题是我不知道如何进入数据集。我已经做到了:

import numpy as np
import h5py
from pylab import plot,show

f = h5.py.File("rhOverM_Asymptotic_GeometricUnits.h5","r")
ks = f.keys()

从这里我不知道如何创建将进入绘图函数的 x 和 y 轴。我假设我需要另一个属于 h5py 模块的属性,但我什至不确定我是否使用了正确的术语。任何帮助将不胜感激。

【问题讨论】:

    标签: python python-3.x plot hdf5


    【解决方案1】:

    试试这个:

    import matplotlib.pyplot as plt
    import h5py
    
    f = h5py.File("rhOverM_Asymptotic_GeometricUnits.h5", "r")
    data = f['Extrapolated_N2.dir/Y_l2_m-1.dat']
    plt.plot(data[:, 0], data[:, 1], label='column1')
    plt.plot(data[:, 0], data[:, 2], label='column2')
    plt.legend()
    plt.show()
    

    【讨论】:

    • 非常感谢!这几天我一直在尝试这样做。你能解释一下你为什么data = f[....]。你是如何确定这是数据集的?此外,从图表上看,似乎有两组不同的数据。是什么表明存在两个不同的数据集?
    • 另外,在Extrapolated_N2.dir/Y_12_m-1.dat 中,您是否可以查看显示 .dat 文件的目录?如果是这样,我怎么能看到它?
    • 您可以使用hdfview查看hdf文件中的所有内容。
    • 所以如果我理解正确,首先 f 等同于 .h5 文件,然后数组 data 等于 Extrapolated_N2.dir 内的 Y_12_m-1.dat 文件目录,然后将数组的元素与数组的列相等,然后显示。这完全正确吗?
    • 是的,完全正确。 “Extrapolated_N2.dir”是组,“Y_12_m-1.dat”是形状为 (27338, 3) 的数据集。
    猜你喜欢
    • 1970-01-01
    • 2017-09-03
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 2012-03-21
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多