Esempio n. 1
0
        private void createHD5GroupObject(H5GroupId id, String name, ref HDF5GroupObject hdf5Obj)
        {
            hdf5Obj.GroupID   = id;
            hdf5Obj.GroupName = name;

            long num = H5G.getNumObjects(hdf5Obj.GroupID);

            // the items under the group
            for (ulong i = 0; i < (ulong)num; i++)
            {
                String objName = H5G.getObjectNameByIndex(hdf5Obj.GroupID, i);

                // get the link info.
                //linfo = H5L.getInfo(groupID, objName);

                ObjectInfo objInfo = H5G.getObjectInfo(hdf5Obj.GroupID, objName, true);
                if (objInfo.objectType == H5GType.GROUP)
                {
                    String pathName = "/" + name + "/" + objName;
                    if (name.CompareTo("/") == 0)
                    {
                        pathName = "/" + objName;
                    }
                    H5GroupId groupID = null;
                    try
                    {
                        groupID = H5G.open(hdf5Obj.GroupID, pathName);
                        HDF5GroupObject subObj = new HDF5GroupObject();
                        subObj.ShortName = objName;
                        createHD5GroupObject(groupID, pathName, ref subObj);
                        hdf5Obj.SubGroups.Add(subObj);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        if (groupID != null)
                        {
                            H5G.close(groupID);
                        }
                    }
                }
                else
                if (objInfo.objectType == H5GType.DATASET)
                {
                    String           pathName   = "/" + name + "/" + objName;
                    HD5DataSetObject dataObject = new HD5DataSetObject();
                    dataObject.ShortName = objName;
                    createHD5DataObject(hdf5Obj.GroupID, pathName, ref dataObject);
                    hdf5Obj.Datasets.Add(dataObject);
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="parentGroupName">immediate parent group/record name</param>
        /// <param name="dataName">the data/record/attribute name</param>
        /// <returns></returns>
        public HD5DataSetObject getHDF5DataObject(String parentGroupName, String dataName)
        {
            HDF5GroupObject parentObj = new HDF5GroupObject();

            getHDF5GroupObject(parentGroupName, ref parentObj);
            if ((parentObj != null) && (parentObj.datasets != null))
            {
                foreach (HD5DataSetObject hdf5Data in parentObj.datasets)
                {
                    if (hdf5Data.ShortName.CompareTo(dataName) == 0)
                    {
                        return(hdf5Data);
                    }
                }
            }
            return(null);
        }
Esempio n. 3
0
 public void  getHDF5GroupObject(String groupName, ref HDF5GroupObject foundGroupObject)
 {
     if (subGroups != null)
     {
         foreach (HDF5GroupObject hdf5Ojb in subGroups)
         {
             if (hdf5Ojb.ShortName.CompareTo(groupName) == 0)
             {
                 foundGroupObject = hdf5Ojb;
             }
             else
             {
                 hdf5Ojb.getHDF5GroupObject(groupName, ref foundGroupObject);
             }
             if (foundGroupObject != null)
             {
                 return;
             }
         }
     }
 }
Esempio n. 4
0
 public HDF5GroupObject open(string file)
 {
     if (H5F.is_hdf5(file))
     {
         int result = H5.Open();
         if (result < 0)
         {
             Console.WriteLine("can't open the file!");
         }
         // get fildID.
         H5FileId fileID = H5F.open(file, H5F.OpenMode.ACC_RDONLY);
         //get groupid
         H5GroupId       rootid     = H5G.open(fileID, "/");
         HDF5GroupObject hdf5Object = new HDF5GroupObject();
         createHD5GroupObject(rootid, "/", ref hdf5Object);
         return(hdf5Object);
     }
     else
     {
         Console.WriteLine("this is not HDF5 file! please try open hdf5 file again.");
         return(null);
     }
 }