The pyHDF library (distributed with the Enthought Python Distribution) has a simple, clean interface to read the LFM model output.
from pyhdf.SD import SD, SDC
def getData(filename):
hdfFile = SD(filename, SDC.READ)
datasets = ['X_grid','Y_grid','Z_grid',
'vx_','vy_','vz_',
'bi_','bj_','bk_',
'bx_','by_','bz_',
'ei_','ej_','ek_',
'rho_', 'c_']
dataDict = {}
for variable in datasets:
dataDict[variable] = { 'data': hdfFile.select(variable).get() }
return dataDict
if __name__ == '__main__':
dataDict = getData('LTR_mhd_1995-03-21T10-00-00Z.dmp')
# You can now access data in the dictionary via:
x = dataDict['X_grid']['data']
y = dataDict['Y_grid']['data']
z = dataDict['Z_grid']['data']
from pyhdf.SD import SD, SDC
def getData(filename):
hdfFile = SD(filename, SDC.READ)
datasets = ['Grid X', 'Grid Y',
'Potential North [V]','Potential South [V]',
'FAC North [A/m^2]', 'FAC South [A/m^2]',
'Pedersen conductance North [S]', 'Pedersen conductance South [S]',
'Hall conductance North [S]', 'Hall conductance South [S]',
'Average energy North [keV]', 'Average energy South [keV]',
'Number flux North [1/cm^2 s]', 'Number flux South [1/cm^2 s]']
dataDict = {}
for variable in datasets:
dataDict[variable] = { 'data': hdfFile.select(variable).get() }
return dataDict
if __name__ == '__main__':
dataDict = getData('LTR_mix_1995-03-21T10-00-00Z.hdf')
# You can now access data in the dictionary via:
x = dataDict['Grid X']['data']
y = dataDict['Grid Y']['data']
phiNorth = dataDict['Potential North [V]']['data']