我正在尝试使用Python中的xarray从每小时到6小时重新采样降水数据,PET数据和温度数据。完成此步骤后,我们的想法是将这三个数据集合并为一个netCDF4文件。在此合并之前,xarray执行速度相当快(大约40秒),但保存到netcdf需要两天然后崩溃。 数据在一起~25GB。
我看到这个问题经常发生,但我还没有找到任何解决方案..
提前感谢您的帮助!
在我用过的代码下面:
import xarray
import datetime
from datetime import *
import time
start = time.time()`
# Rhine
P = xarray.open_dataset("D:\P_Rhine_total.nc", decode_times=True, chunks={'time':500})
P = P.sel(time=slice(datetime(2010, 1, 1, 1), datetime(2015, 12, 31, 0)))
Pnew = P.precipitation_thickness.rename("P")
Pagg = Pnew.resample('6H','time',how='sum', closed='right', label='right')
PET = xarray.open_dataset("D:\PET_Rhine_total.nc", decode_times=True, chunks={'time':500})
PET = PET.sel(time=slice(datetime(2010, 1, 1, 1), datetime(2015, 12, 31, 0)))
PETnew = PET.makkink_potential_evaporation.rename("PET")
PETagg = PETnew.resample('6H','time',how='sum', closed='right', label='right')
T = xarray.open_dataset("D: \T_Rhine_total.nc", decode_times=True, chunks={'time':500})
T = T.sel(time=slice(datetime(2010, 1, 1, 1), datetime(2015, 12, 31, 0)))
Tnew = T.air_temperature.rename("TEMP")
Tagg = Tnew.resample('6H','time',how='mean', closed='right', label='right')
New = xarray.merge((Pagg,PETagg,Tagg))
New.chunk(chunks={'time':500})
New.to_netcdf(path="D:\\forcing_Rhine.nc",mode="w",format="NETCDF4", encoding={'P': {'dtype': 'float32', 'scale_factor': 0.001, '_FillValue': -9999}, 'PET': {'dtype': 'float32', 'scale_factor': 0.001, '_FillValue': -9999}, 'TEMP': {'dtype': 'float32', 'scale_factor': 0.001, '_FillValue': -9999}})
End = time.time()
print End-start