首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >绘制H5PY/HDF5 5数据

绘制H5PY/HDF5 5数据
EN

Stack Overflow用户
提问于 2022-10-27 16:06:57
回答 1查看 19关注 0票数 0

下午好!我试图绘制以下HDF5数据:

https://www.gw-openscience.org/eventapi/html/GWTC-1-confident/GW150914/v3/H-H1_GWOSC_4KHZ_R1-1126259447-32.hdf5

这将返回时间(以秒为单位)和应变(没有单位),而绘图是时间的函数。

但是,到目前为止,代码不起作用:

(我已将文件改名为"Hanford")。我该怎么做?

我尝试过的代码,但表示t是未定义的。不确定我是否成功地上传了h5py文件。

代码语言:javascript
运行
复制
代码语言:javascript
运行
复制
import matplotlib.pyplot as plt
import numpy as np
import h5py as h5py

def loadLIGOdata(Hanford):
    f = h5py.File(Hanford, "r")
    strain = f['strain/Strain'][...]
    t0 = f['strain/Strain'].attrs['Xstart'] 
    dt = f['strain/Strain'].attrs['Xspacing'] 
    t = t0 + dt * np.arange(strain.shape[0]) 
    f.close()
    return t, strain

plt.plot(t, strain)
plt.show()
代码语言:javascript
运行
复制
EN

回答 1

Stack Overflow用户

发布于 2022-10-27 16:50:12

您需要通过调用loadLIGOdata()函数来定义't‘和’应变‘变量。从您发布的内容来看,Hanford还需要定义为文件路径。在将文件路径更改为Hanford位于计算机上的位置后,以下内容应该可以工作。

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt
import numpy as np
import h5py as h5py

## Change to the path of your Hanford file ##
Hanford = '/path/to/Hanford'

def loadLIGOdata(Hanford):
    f = h5py.File(Hanford, "r")
    strain = f['strain/Strain'][...]
    t0 = f['strain/Strain'].attrs['Xstart'] 
    dt = f['strain/Strain'].attrs['Xspacing'] 
    t = t0 + dt * np.arange(strain.shape[0]) 
    f.close()
    return t, strain

t, strain = loadLIGOdata(Hanford)

plt.plot(t, strain)
plt.show()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74225069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档