2012-07-11 74 views
3

我想通過h5py將科學數據導出爲HDF5容器格式,以供其他軟件讀取。如何在h5py中將比例(或物理尺寸)分配給HDF5數據集?

我有一個7維numpy數組,我通過h5py.File.create_dataset()創建了一個數據集。這工作正常。

但是,我找不到任何方法來爲h5py中的這7個維度指定任何物理比例(比如米,公斤,角度等)。我找不到有關如何執行此操作的任何文檔。

這是根據HDF5 reference可能的。

這是在h5py中實現的嗎?我知道HDF5是可能的。

感謝您的幫助!

回答

0

你可能需要一個屬性:

http://code.google.com/p/h5py/wiki/HowTo#Reading_and_writing_attributes 
+2

HDF5文件表明,有做這種特殊的方式,在這裏看到:http://www.hdfgroup.org /HDF5/Tutor/h5dimscale.html – PiHalbe 2012-07-11 12:43:11

7

在HDF5維度量表只是與您的第一個數據集相關聯的其他數據集。例如,它們可以用來定義空間座標。如果要指示特定維度具有某些物理單位,則可以使用HDF5尺寸標註API對維度進行標註:H5DSset_label()

Dimension scales可能在h5py中,使用h5py.dims.create_scale()h5py.dims.attach_scale()h5py.dims.label來設置標籤。

例如,以指示的foo.dat:/data第一尺寸是以kg和以米爲第二,可以按如下方式設置的標籤(帶f作爲HDF5文件):

f['data'].dims[0].label = 'kg' 
f['data'].dims[1].label = 'm' 

要添加數據集作爲一個高度規模,第二個維度,您首先需要創建一個規模,然後再連接數據集:

f['data'].dims.create_scale(f['h'], 'height') 
f['data'].dims[1].attach_scale(f['h']) 

可以再用

訪問標籤3210
[dim.label for dim in f['data'].dims] 

和維度量表自己與

f['data'].dims[1][0] 

f['data'].dims[1]['height'] 
+0

@PiHalbe這是你想要做的嗎? – Yossarian 2013-04-25 15:39:24

+0

我沒有找到時間來測試它,但它看起來非常有前途。 – PiHalbe 2013-05-08 14:00:33

+0

在C++中執行此操作的命令是什麼? – Gabriel 2015-10-07 14:26:34