如何解决从 HDF5 文件填充 ROOT TTree
我必须将 hdf5 文件转换为 ROOT TTree。 (超过100个数据集) 每个数据集有 (30000 x 2) float64 我试图分支一个表格,但最后我的树全是零...... 这是我的代码:
import h5py
from ROOT import TFile,TTree,AddressOf
import numpy as np
filename="THE_file.h5"
f = h5py.File(filename,'r')
the_list_of_key=[]
for el in list(f.keys()):
the_list_of_key.append(el)
myfile = TFile( 'convert_h5_to_root.root','RECREATE' )
t1 = TTree("t1","a simple Tree with fake data")
tmp_data =np.zeros((1),dtype="float64")
list_of_data=[tmp_data]*len( the_list_of_key)
### Here I branch the list_of_data ###
for i in range(len(the_list_of_key)):
tmp=the_list_of_key[i]+"/C"
t1.Branch(the_list_of_key[i],list_of_data[i],tmp)
### for 300 entries foreach dataset,I fill the branch
for j in range(300):
for i in range(len(the_list_of_key)):
data=f[the_list_of_key[i]] ###--> I can print on screen the right values
val = data[j][1]
list_of_data[i][0] = val
t1.Fill()
myfile.Write()
myfile.Close()
谢谢你的帮助! 是
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。