xingjinshuang
2025-02-20 0890b7861feae74bdcfd1851e577db6b9f31d484
src/main/java/com/se/simu/service/Hdf5Service.java
@@ -5,11 +5,11 @@
import com.se.simu.domain.dto.LayerDto;
import com.se.simu.domain.dto.ResultDto;
import com.se.simu.domain.po.DataPo;
import lombok.extern.slf4j.Slf4j;
import ncsa.hdf.hdf5lib.H5;
import ncsa.hdf.hdf5lib.HDF5Constants;
import org.springframework.stereotype.Service;
import hdf.hdf5lib.H5;
import hdf.hdf5lib.HDF5Constants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.File;
@@ -35,6 +35,7 @@
        process(dto, layer);
    }
    // https://blog.51cto.com/u_16213355/12235346
    private void process(ResultDto dto, LayerDto layer) throws Exception {
        int fileId = 0;
        int datasetId = 0;
@@ -44,7 +45,18 @@
            fileId = H5.H5Fopen(dto.getH5Path(), HDF5Constants.H5F_ACC_RDONLY, HDF5Constants.H5P_DEFAULT);
            if (fileId == 0) return;
            datasetId = H5.H5Dopen(fileId, "data");
            // H5F_OBJ_DATASET,H5E_DATASET,H5G_DATASET=1,
            //int dsCount = H5.H5Fget_obj_count(fileId, HDF5Constants.H5G_DATASET);
            //for (int i = 0; i < dsCount; i++) {
            //    System.out.println("Dataset: " + "");
            //}
            //datasetId = H5.H5Dopen(fileId, "", HDF5Constants.H5P_DEFAULT);
            int groupId = H5.H5Gopen(fileId, "data");
            if (groupId == 0) return;
            /*datasetId = H5.H5Dopen(fileId, "data", HDF5Constants.H5P_DEFAULT);
            if (datasetId == 0) return;
            // 获取数据集的维度
@@ -57,11 +69,12 @@
            int herr = H5.H5Dread(datasetId, HDF5Constants.H5T_NATIVE_INT, HDF5Constants.H5S_ALL, HDF5Constants.H5S_ALL, HDF5Constants.H5P_DEFAULT, buffer);
            // 输出读取到的数据
            System.out.println(buffer[0]);
            System.out.println(buffer[0]);*/
            H5.H5Dclose(groupId);
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            if (datasetId > 0) H5.H5Dclose(datasetId);
            if (fileId > 0) H5.H5Dclose(fileId);
        }
    }