0

我正在尝试使用 Python 中的 xarray 将降水数据、PET 数据和温度数据从每小时重新采样到每小时 6 小时。在这一步之后,想法是将这三个数据集合并到一个 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 
4

0 回答 0