HDF5数据存储为Excel表格形式(多级HDF5)

  • 示例代码:
# -*- coding: utf-8 -*-
#使用visitor模式遍历数据集并打印存储为excel文件
import h5py
import numpy as np
import pandas as pd
import os

# 读取hdf5文件
f = h5py.File('water_cloud.hdf', 'r')

#打印层次结构
def print_layer(name, obj):
    # 读取数据集
    '''SUN02 = f['WAVELENGTH=0.670/GROUND_TYPE=Land/GROUND_ALBEDO=0.00/SUN=02']'''
    if isinstance(obj, h5py.Dataset):
     # 创建文件夹
        folder_name = name.replace('/', '_')  # 将斜杠替换为下划线
        if not os.path.exists(folder_name):
            os.makedirs(folder_name)
            # 遍历三维数据集的每一层,并存储为不同的 Excel 文件
        for i in range(obj.shape[2]):
            layer_data = obj[:, :, i]  # 读取当前层的数据
            df = pd.DataFrame(layer_data)

            # 修改保存 Excel 文件的文件名,根据层次命名
            excel_file_name = f'{folder_name}/{folder_name}_{i}.xlsx'
            df.to_excel(excel_file_name, index=False)

# 使用 visitor 模式遍历数据集
f.visititems(print_layer)

# 每个层的数据都会存储为一个单独的 Excel 文件
# 将数据集存为excel文件
#np.savetxt('test.csv', data, delimiter=',')

  • 结果(部分展示):

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值