簡體   English   中英

在Python中將基於HDF5的文件讀取為numpy數組

[英]Read HDF5 based file as a numpy array in Python

如何將.hws文件作為numpy數組加載?
基於http://kingler.net/2007/05/22/90中的描述,該描述說它是基於HDF5的格式,因此我找到了https://confluence.slac.stanford.edu/display/PSDM/How+從+ Python到+ access + HDF5 + data + from可能很有用。 但是,按照頁面上描述的說明進行操作:

hdf5_file_name = '/reg/d/psdm/XPP/xppcom10/hdf5/xppcom10-r0546.h5'
dataset_name   = '/Configure:0000/Run:0000/CalibCycle:0000/Camera::FrameV1/XppSb4Pim.1:Tm6740.1/image'
event_number   = 5
file    = h5py.File(hdf5_file_name, 'r')  
dataset = file[dataset_name]
arr1ev  = dataset[event_number]
file.close()

我將前三行固定為我的情況后,在第六行出現錯誤:

file_name = '~/Desktop/audioData_A.hws'
item = h5py.File(file_name, 'r')
print item.name 
ds = item['/']
print len(ds)
arr1ev = ds[1]

返回:

<HDF5 group "/" (1 members)>
1
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-59-b33014aeccc8> in <module>()
      4 ds = item['/']
      5 print len(ds)
----> 6 arr1ev = ds[1]

/usr/local/lib/python2.7/site-packages/h5py/_objects.so in     h5py._objects.with_phil.wrapper (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/_objects.c:2405)()

/usr/local/lib/python2.7/site-packages/h5py/_objects.so in   h5py._objects.with_phil.wrapper (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/_objects.c:2362)()

/usr/local/lib/python2.7/site-packages/h5py/_hl/group.pyc in __getitem__(self,  name)
    158                 raise ValueError("Invalid HDF5 object reference")
    159         else:
--> 160             oid = h5o.open(self.id, self._e(name), lapl=self._lapl)  
    161 
    162         otype = h5i.get_type(oid) 

/usr/local/lib/python2.7/site-packages/h5py/_hl/base.pyc in _e(self, name, lcpl)
    119         else:
    120             try:
--> 121                 name = name.encode('ascii')
    122                 coding = h5t.CSET_ASCII
    123             except UnicodeEncodeError:

AttributeError: 'int' object has no attribute 'encode'

問題是我不知道如何獲取數據集dataset_nameevent_number的信息。 通過item.parent (在我的情況下,第二行),我想相應的值應為/1 ,這不起作用。

如果需要,請在鏈接中找到文件: https : //drive.google.com/file/d/0B1UyTlIs325wbWhwR3NTVmFpWTg/view?usp=sharing

我下載了您的文件並進行了查看。 讀取.hws文件后,您將獲得一個字典,其中只有一個鍵"wfm_group0" (您可以使用item.keys()查看文件中的鍵)。 該鍵的值再次類似於字典,具有鍵"axes""id""traces""vector"

不知道您要從那里去哪里,但是也許您可以使用這些信息並查看它的去向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM