diff --git a/matlab/IMAS/read_hdf5_simple.m b/matlab/IMAS/read_hdf5_simple.m new file mode 100644 index 0000000000000000000000000000000000000000..f72da13bf989474d31b18710ade2b425ec954359 --- /dev/null +++ b/matlab/IMAS/read_hdf5_simple.m @@ -0,0 +1,35 @@ +function h5_struct = read_hdf5_simple(ids_h5_file,varargin) +% +% h5_struct = read_hdf5_simple(ids_h5_file,varargin) +% +% on spcimas need to do: +% export LD_PRELOAD_previous=$LD_PRELOAD +% unset LD_PRELOAD +% matlab +% >> h5disp('/tmp/yildiz//imasdb/tcv/3/80000/999/summary.h5') +% (to reset: export LD_PRELOAD=$LD_PRELOAD_previous ) + +try + aa=hdf5info(ids_h5_file); +catch + error('could not hdf5info(file)') +end + +[a1,ids_name,a3]=fileparts(aa.Filename); +h5_struct.ids_name = ids_name; +h5_struct.Filename = aa.GroupHierarchy.Filename; + +if isfield(aa.GroupHierarchy.Groups,'Datasets') + for i=1:numel(aa.GroupHierarchy.Groups.Datasets) + if strcmp(aa.GroupHierarchy.Groups.Datasets(i).Name(1),'/') + istart = 2; + else + istart = 1; + end + struct_flatname = regexprep(lower(regexprep(aa.GroupHierarchy.Groups.Datasets(i).Name(istart:end),'[/&[]]','.')),'\.+','_'); + struct_flatname = regexprep(struct_flatname,[h5_struct.ids_name '_'],''); + h5_struct.(struct_flatname) = h5read(aa.GroupHierarchy.Groups.Datasets(i).Filename,aa.GroupHierarchy.Groups.Datasets(i).Name); + end +else + disp(sprintf('\n*************\nno Datasets\n*************\n')); +end