# -*- 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=',')

