dcb
2025-06-26 3d878bfb28e155c41c5b44c918c123dcdc382633
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package com.se.nsl.controller;
 
import com.se.nsl.domain.vo.R;
import com.se.nsl.service.IBizH5FileParserService;
import hdf.hdf5lib.exceptions.HDF5LibraryException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
 
/**
 * Bize H5 文件解析器控制器
 *
 * @author xingjinshuang@smartearth.cn
 * @date 2024/12/06
 */
//@Api(tags = "05-H5文件解析器控制器")
@Slf4j
@CrossOrigin(origins = "*", maxAge = 3600)
//@RestController
//@RequestMapping("/h5")
public class BizH5FileParserController extends BaseController {
 
 
    @Resource
    private IBizH5FileParserService bizH5FileParserService;
 
    /**
     * HDF5文件 说明
     */
    @ApiOperation("HDF5文件 说明")
    @GetMapping("/hdf5-illustrate")
    public R<Object> hdf5FileIllustrate() throws HDF5LibraryException {
        String content = "HDF5(Hierarchical Data Format version 5)是一种用于存储和组织大量数据的文件格式,它支持高效地存储和处理大规模科学数据的能力。HDF5 是一种灵活的数据模型,可以存储多种数据类型,包括数值数据、图像、表格等等,并且可以按照层级结构组织数据。\n" +
                "HDF5 文件(通常使用 .h5 扩展名)是一种二进制文件格式,它具有以下特点:\n" +
                "1.灵活性: HDF5 文件格式非常灵活,可以存储各种不同类型和大小的数据,从简单的数值数组到复杂的多维数据集合。\n" +
                "2.层级结构: HDF5 文件是以层级结构组织的,可以在文件中创建多个数据集(Datasets)和组(Groups),允许用户根据需求组织和管理数据。\n" +
                "3.多种数据类型: HDF5 支持多种数据类型,包括标量、数组、字符串、表格等等,并且可以使用不同的压缩技术对数据进行压缩。\n" +
                "4.高效性能: HDF5 文件格式被设计用于高效存储和处理大型数据集,具有高效的数据访问和读写性能。\n" +
                "5.跨平台兼容性: HDF5 文件可以在不同的操作系统上使用,具有良好的跨平台兼容性。\n" +
                "HDF5 文件通常由科学计算、数据分析、机器学习等领域的应用广泛使用,用于存储大规模数据集,例如图像数据、传感器数据、模拟数据等。通过使用各种编程语言的 HDF5 库和工具,可以方便地读写和处理 HDF5 格式的文件。";
        log.info("HDF5文件 说明:{}", content);
        return success(content);
    }
 
    /**
     * 打开HDF5文件
     *
     * @param filePath 文件路径
     * @return 文件ID
     */
    @ApiOperation("打开HDF5文件")
    @PostMapping("/open-hdf5-file")
    public R<Object> openHdf5File(String filePath)  {
        return success(bizH5FileParserService.openH5File(filePath));
    }
 
    /**
     * 解析HD5文件
     */
    @ApiOperation("解析HD5文件")
    @PostMapping("/parse-hdf5-file")
    public R<Object> parseHdf5File(String filePath) throws HDF5LibraryException {
        filePath = "/Users/zhangshan/Desktop/hdf5/data.h5";
        log.info("解析HD5文件:{}", filePath);
        return success(bizH5FileParserService.parseH5File(filePath));
    }
 
}