一、nc文件的批量读取
1. os方法
import os
import xarray as xr
# 定义存储nc文件的文件夹路径
folder_path = 'path/to/your/folder'
# 用于存储合并后的数据
merged_data = None
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
if filename.endswith('.nc'): # 确保文件是以.nc结尾的NetCDF文件
file_path = os.path.join(folder_path, filename)
try:
# 打开NetCDF文件
ds = xr.open_dataset(file_path)
# 读取变量
temperature_data = ds['temperature']
# 合并数据
if merged_data is None:
merged_data = temperature_data
else:
merged_data = xr.concat([merged_data, temperature_data], dim='time')
# 关闭NetCDF文件
ds.close()
except Exception as e:
print(f"读取文件 {filename} 时出现错误:{str(e)}")
# 处理合并后的数据...
print(merged_data)
2. xarray.mfdataset方法
xarray库提供了mfdataset函数方便我们直接实现对气象数据的批量读取。
import os
import xarray as xr
# 定义存储nc文件的文件夹路径
folder_path = 'path/to/your/folder'
# 构建nc文件路径的模式,使用通配符*匹配多个文件
file_pattern = os.path.join(folder_path, '*.nc')
try:
# 打开多个NetCDF文件
ds = xr.open_mfdataset(file_pattern)
# 在这里可以进行你想要的操作,如读取变量、属性等
# 例如,读取一个名为'temperature'的变量
temperature_data = ds['temperature']
# 处理数据...
# 关闭NetCDF文件
ds.close()
except Exception as e:
print(f"读取文件时出现错误:{str(e)}")