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));
|
}
|
|
}
|