帝国cms建站教程,怎么做网站的后台管理系统,官网定制,网站的运作方式一、前言
使用Python中的h5py库实现同一目录下多个mat文件的批量读取功能#xff0c;获取数据、lon、lat等信息#xff0c;其他变量内容可根据自己的mat格式进行更改。
二、代码
def open_matfiles(dir, start_indexNone, end_indexNone,lev_indexNone,lev_valueNone):打开…一、前言
使用Python中的h5py库实现同一目录下多个mat文件的批量读取功能获取数据、lon、lat等信息其他变量内容可根据自己的mat格式进行更改。
二、代码
def open_matfiles(dir, start_indexNone, end_indexNone,lev_indexNone,lev_valueNone):打开一个文件夹下的所有mat文件并返回数据、经度、纬度和层次信息。参数dir (str): 包含.mat文件的文件夹路径。start_index (int, 可选): 要读取的第一个文件的索引默认是0。end_index (int, 可选): 要读取的最后一个文件的索引默认是所有文件。lev_index (int, 可选): 要读取的特定层次的索引默认是None表示读取所有层次。lev_value (float, 可选): 要读取的特定层次的值默认是None表示读取所有层次),针对GPH200、500。返回tuple: 包含以下元素的元组- data (numpy.ndarray): 读取的所有数据。- lon (numpy.ndarray): 经度信息。- lat (numpy.ndarray): 纬度信息。- lev (numpy.ndarray): 层次信息如果存在。异常FileNotFoundError: 如果指定的文件夹不存在。import h5pyimport numpy as npfrom pathlib import Pathdir_path Path(dir)if not dir_path.exists():raise FileNotFoundError(f文件夹{dir}不存在)mat_files sorted(dir_path.glob(*.mat)) # 对文件进行排序if start_index is None:start_index 0if end_index is None:end_index len(mat_files)lon Nonelat Nonelev Nonedata_list []for mat_file in mat_files[start_index:end_index]:with h5py.File(mat_file, r) as mat_data:if lon is None:lon np.array(mat_data[lon])if lat is None:lat np.array(mat_data[lat])if lev is None:lev np.array(mat_data.get(lev, None)) # 使用get方法提供默认值if lev is not None and lev_index is not None:data np.array(mat_data[data])[...,lev_index,:,:] # lev在倒数第三层data_list.append(data)elif lev is not None and lev_value is not None:index np.where(lev lev_value)data np.array(mat_data[data])[...,index,:,:]data_list.append(data)else:data np.array(mat_data[data])data_list.append(data)data np.stack(data_list, axis0)return data, lon, lat, lev