Guest User

Untitled

a guest
Oct 17th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. import h5py
  2. filename = 'exp1.h5'
  3.  
  4. ###############################################################
  5. ## Este programa realiza una exploración de un hd5,
  6. ## devolviendo todos los posibles group y dataset
  7. ## Esta pensado para utilizarse de la siguiente manera:
  8. ## - Se localiza el dataset requerido
  9. ## - Se localiza en que group esta ubicado
  10. ## - Con esto ya puede ser cargada la traza
  11. ###############################################################
  12.  
  13. ###############################################################
  14. ## Al abrid un hdf5 este nos devuelve un diccionario
  15. ## Cada elemento alamacenado puede ser:
  16. ## a) HDF5 group (podemos considerar la raiz como uno de estos)
  17. ## Para los grupos se nos indican su numero de miembros
  18. ## b) HDF5 dataset
  19. ## Datos en si
  20. ###############################################################
  21.  
  22. ######################################################
  23. ## Si queremos entrar en un group debemos contar con:
  24. ## - El group anterior para acceder
  25. ## - Conocer su nombre o el indice en el group padre
  26. ######################################################
  27.  
  28. ###############################################################
  29. ## Para cada grupo imprimimos sus dataset
  30. ## Tras esto se exploran recursivamente sus group
  31. ###############################################################
  32. def explore_group(f, key, value, p):
  33. print ('\n\033[91m', p, value, '\033[0m')
  34. # Exploramos datasets
  35. for elem in value:
  36. if 'HDF5 dataset' in str(f[str(key)+'/'+str(elem)]):
  37. print (p+' "'+str(f[str(key)+'/'+str(elem)]))
  38. # Continuamos a subgrupos
  39. for elem in value:
  40. if 'HDF5 group' in str(f[str(key)+'/'+str(elem)]):
  41. key_new = key+'/'+elem
  42. explore_group(f, key_new, f[key_new], p+' ')
  43.  
  44. ###############################################################
  45. ## La raiz de un HDF5 es de tipo HDF5
  46. ## *creo* que solo debería tener groups
  47. ###############################################################
  48. f = h5py.File(filename, 'r')
  49. print('\n'+str(f))
  50. for elem in f:
  51. p = ' '
  52. explore_group(f, elem, f[elem], p)
  53. print()
Add Comment
Please, Sign In to add comment