Thanks again Marc, I now dont get core dump For H5T_STD_U16BE I am able to correctly read and the values that I read match with the h5dump output. However for H5T_STD_U64BE when I read using the H5T_NATIVE_INTEGER my output does not match with h5dump. I am using hdf5-1.8.7. If I use hdf5-1.8.13 it conflicts with the netcdf -gfortran reader that is also a part of my code.
Is the array shape (12,22,26) indicated by the h5dump same as the one in fortran or it gets inverted (26,22,12) ? Gompie On Tue, Aug 4, 2015 at 9:58 PM, Miller, Mark C. <[email protected]> wrote: > So, HDF5 will handle all the 'conversion' from whatever type is used to > store the data in the file to whatever type you are using to store the data > in memory. So, for mem_type arg to h5dread_f, all you need to do is inform > HDF5 what the datatype is of the buffer (data_out) you are reading into. > You have defined data_out as INTEGER in your programming language. So, I > suspect the right thing to do is. . . > > CALL h5dread_f(dset_id,H5T_NATIVE_INTEGER, data_out, data_dims, > error) > > That tells HDF5 that data_out is the caller's *native* integer type and it > will convert from whatever is in the file H5T_STD_I64BE (a 64 bit big > endianne integer) to that type automatically when it reads it. > > Mark > > > > > From: Hdf-forum <[email protected]> on behalf of Richa > Mathur <[email protected]> > Reply-To: HDF Users Discussion List <[email protected]> > Date: Tuesday, August 4, 2015 6:43 PM > > To: HDF Users Discussion List <[email protected]> > Subject: Re: [Hdf-forum] h5dopen returns error > > Hi Marc, > Thanks again. That link is helpful. I was able to read in the data > directly using the path in the h5read_f. I use > > INTEGER, dimension(12,96):: data_out > data_dims(1) = 12, data_dims(2) =96 > CALL h5dread_f(dset_id,H5T_STD_I64BE , data_out, data_dims, > error) as the h5dump indicates DATA_TYPE as H5T_STF_I64BE. > > But it does not read properly ( gives core dump). I compile on a x86_64 > m/c gfortran. > > GROUP "All_Data" { > > GROUP "AMS-SDR_All" { >>> DATASET "BeamTime" { >>> DATATYPE H5T_STD_I64BE >>> >>> Gompie > > > On Tue, Aug 4, 2015 at 4:24 PM, Miller, Mark C. <[email protected]> wrote: > >> Hmm. At this point, I think it may be more productive for everyone if you >> would review the manual, >> https://www.hdfgroup.org/HDF5/doc/RM/RM_H5Front.html, a bit more to be >> sure you are attempting to use the HDF5 interface correctly. >> >> In particular, your 2nd call to h5gopen_f is still specfying 'file_id' >> for first arg when it should be specifing 'grp_id1'. AMS-SDR_All is a group >> that 'lives in' the "All_Data" group (grp_id1), not the root group >> (file_id). >> >> Next, I am pretty certain you can just directly h5dopen_f >> "All_Data/AMS-SDR_All/BeamTime" and avoid all the business with the groups. >> >> Mark >> >> From: Hdf-forum <[email protected]> on behalf of >> Richa Mathur <[email protected]> >> Reply-To: HDF Users Discussion List <[email protected]> >> Date: Tuesday, August 4, 2015 1:06 PM >> >> To: HDF Users Discussion List <[email protected]> >> Subject: Re: [Hdf-forum] h5dopen returns error >> >> Thanks Mark, Christian , the problem was case sensitivety and the first >> level All_Data did not return any error. >> Now since the path to BeamTime is All_Data/AMS-SDR_All/BeamTime I gave >> >> CALL h5gopen_f(file_id,"All_Data" , grp_id1, grp_hdferr) >> print *,"Open Group ID ID ERROR",grp_id1, grp_hdferr >> >> CALL h5gopen_f(file_id,"AMS-SDR_All" , grp_id2, grp_hdferr) [should I >> give the grp_id1 instead of file_id ?] >> print *,"Open Group AMS-SDR ID ERROR",grp_id2, grp_hdferr ( here the >> hdferr is -1) >> >> CALL h5dopen_f(grp_id1,"BeamTime", dset_id, error) >> >> Please help >> >> On Tue, Aug 4, 2015 at 3:53 PM, Christian Oyarzun < >> [email protected]> wrote: >> >>> It is case sensitive. it should be: >>> >>> CALL h5gopen_f(file_id,"All_Data" , grp_id1, grp_hdferr) >>> >>> not: >>> >>> CALL h5gopen_f(file_id,"All_data" , grp_id1, grp_hdferr) >>> >>> —Christian >>> >>> On Aug 4, 2015, at 3:45 PM, Richa Mathur <[email protected]> wrote: >>> >>> Thanks Mark and Corey. >>> >>> after CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file_id, error) >>> I gave CALL h5gopen_f(file_id,"All_data" , grp_id1, grp_hdferr) as the >>> first call to open the group and got grp_hdrerr as -1. >>> I guess there is an error opening the group All_data. >>> >>> >>> the h5dump -n output is >>> >>> HDF5 >>> "SAMS_npp_d20150728_t2359556_e0000273_b19431_c20150729063134831043_nasa_ops.h5" >>> { >>> FILE_CONTENTS { >>> group / >>> group /All_Data >>> group /All_Data/AMS-SDR_All >>> dataset /All_Data/AMS-SDR_All/BeamTime >>> dataset /All_Data/AMS-SDR_All/BrightnessTemperature >>> dataset /All_Data/AMS-SDR_All/BrightnessTemperatureFactors >>> >>> Any help.... >>> >>> >>> On Tue, Aug 4, 2015 at 3:11 PM, Miller, Mark C. <[email protected]> >>> wrote: >>> >>>> yeah, agree. "BeamTime" is in group "All_Data". To get to BeamTime, you >>>> have to H5Gopen the group and use the hid_t you get from that group in >>>> place of 'file_id' arg in h5dopen. Don't forget to close the group (and >>>> dataset) after you're done. >>>> >>>> Mark >>>> >>>> >>>> From: Hdf-forum <[email protected]> on behalf of >>>> Richa Mathur <[email protected]> >>>> Reply-To: HDF Users Discussion List <[email protected]> >>>> Date: Tuesday, August 4, 2015 12:03 PM >>>> To: HDF Users Discussion List <[email protected]> >>>> Subject: Re: [Hdf-forum] h5dopen returns error >>>> >>>> Thanks Mark !!! >>>> Filename is complete. The file_id that is returned from hdfopen_f >>>> (filename, H5F_ACC_RDONLY_F, file_id, error) is 16777217 and >>>> error code is 0. >>>> How do I find if 'BeamTime' is in root group or sub group ? >>>> >>>> The H5Dump is as below I guess the BeamTime is inside a GROUP >>>> "All_Data", >>>> >>>> GROUP "All_Data" { >>>> GROUP "AMS-SDR_All" { >>>> DATASET "BeamTime" { >>>> DATATYPE H5T_STD_I64BE >>>> DATASPACE SIMPLE { ( 12, 96 ) / ( H5S_UNLIMITED, >>>> H5S_UNLIMITED ) } >>>> DATA { >>>> (0,0): 1816819231684734, 1816819231702752, 1816819231720770, >>>> (0,3): 1816819231738788, 1816819231756806, 1816819231774824 >>>> >>>> Gompie >>>> >>>> >>>> On Tue, Aug 4, 2015 at 2:52 PM, Miller, Mark C. <[email protected]> >>>> wrote: >>>> >>>>> Are you sure you are getting a valid file_id back from the h5fopen_f >>>>> call? Are you by chance missing an extension on the filename such as >>>>> 'satfilename.h5' and is the dataset 'BeamTime' in the 'root group' of the >>>>> file or perhaps some sub-group? >>>>> >>>>> Mark >>>>> >>>>> >>>>> From: Hdf-forum <[email protected]> on behalf of >>>>> Richa Mathur <[email protected]> >>>>> Reply-To: HDF Users Discussion List <[email protected]> >>>>> Date: Tuesday, August 4, 2015 10:42 AM >>>>> To: "[email protected]" <[email protected]> >>>>> Subject: [Hdf-forum] h5dopen returns error >>>>> >>>>> >>>>> >>>>> Hi >>>>> I am trying to read a hdf5 file in fortran95 ( gfortran). Peice of >>>>> code is >>>>> >>>>> INTEGER(HID_T) :: file_id ! File identifier >>>>> INTEGER(HID_T) :: dset_id ! Dataset identifier >>>>> >>>>> INTEGER :: error ! Error flag >>>>> INTEGER :: i, j >>>>> >>>>> INTEGER, DIMENSION(96,12) :: dset_data, data_out ! Data buffers >>>>> INTEGER(HSIZE_T), DIMENSION(2) :: data_dims >>>>> >>>>> filename='satfilename' >>>>> >>>>> CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file_id, error) >>>>> >>>>> CALL h5dopen_f(file_id,"BeamTime", dset_id, error) >>>>> >>>>> >>>>> print *,"Data Set(ATMS) ID ERROR",dset_id, error . >>>>> The h5dopen_f returns error as -1. >>>>> >>>>> Later on when I use >>>>> >>>>> CALL h5dread_f(dset_id, H5T_STD_I64BE, data_out, data_dims, error) >>>>> >>>>> error -1 is returned from this function as well and I get incorrect >>>>> values of my variable in data_out. >>>>> >>>>> Can you help >>>>> Gompie >>>>> >>>>> >>>>> >>>>> The h5dump of my hdf5 file has >>>>> >>>>> >>>>> GROUP "All_Data" { >>>>> GROUP "AMS-SDR_All" { >>>>> DATASET "BeamTime" { >>>>> DATATYPE H5T_STD_I64BE >>>>> DATASPACE SIMPLE { ( 12, 96 ) / ( H5S_UNLIMITED, >>>>> H5S_UNLIMITED ) } >>>>> DATA { >>>>> (0,0): 1816819231684734, 1816819231702752, >>>>> 1816819231720770, >>>>> (0,3): 1816819231738788, 1816819231756806, 1816819231774824 >>>>> >>>>> >>>>> _______________________________________________ >>>>> Hdf-forum is for HDF software users discussion. >>>>> [email protected] >>>>> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org >>>>> Twitter: https://twitter.com/hdf5 >>>>> >>>> >>>> >>>> _______________________________________________ >>>> Hdf-forum is for HDF software users discussion. >>>> [email protected] >>>> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org >>>> Twitter: https://twitter.com/hdf5 >>>> >>> >>> _______________________________________________ >>> Hdf-forum is for HDF software users discussion. >>> [email protected] >>> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org >>> Twitter: https://twitter.com/hdf5 >>> >>> >>> >>> _______________________________________________ >>> Hdf-forum is for HDF software users discussion. >>> [email protected] >>> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org >>> Twitter: https://twitter.com/hdf5 >>> >> >> >> _______________________________________________ >> Hdf-forum is for HDF software users discussion. >> [email protected] >> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org >> Twitter: https://twitter.com/hdf5 >> > > > _______________________________________________ > Hdf-forum is for HDF software users discussion. > [email protected] > http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org > Twitter: https://twitter.com/hdf5 >
_______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org Twitter: https://twitter.com/hdf5
