- 积分
- 4240
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-7-23
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
每次做这个都要翻以前的代码,来这里记录一下(我目前只会用python这一种方法,如果有其他行之有效的,求大佬们指点)
#导入需要的库包
import xarray as xr
import os
import numpy as np
path = 'h:/data/olr_1979-2018/' #输入文件存储路径
folder = os.walk(path) #生成器,里面包含三个东西:根目录,根目录下的目录和文件;生成器只能用list读取
files = list(folder)[0][2] #选择文件名集合的list
data_all = []
a=[]
b=[]
for file in files:
f = xr.open_dataset(path+'/'+file)
#读取变量,如果数据过大可以索引,但索引后合成的nc文件无法再索引
lon=f['lon']
lat=f['lat']
time=f['time']
olr=f['olr']
#concat函数按维度合并
for t in time:
a.append(t)
t_al=xr.concat(a,dim='time')
for olr1 in olr:
b.append(olr1)
olr_al=xr.concat(b,dim='time')
print(t_al.shape)
#写成dataarray
OLR=xr.DataArray(data=olr_al,dims=('time','lat','lon'),
coords=dict(time=t_al,lat=lat,lon=lon))
#dataarray转化为dataset
ds=xr.Dataset({'olr':OLR})
#输出成nc文件
ds.to_netcdf(r'h:/data/olr_al.nc')
|
|