我正在尝试对netCDF文件中的一些数据应用陆地/海洋掩码。我的代码可以工作,但是会修改磁盘上的文件。我希望能够在内存中执行,但是变量的形状类似于(240, 46, 400, 568)
,甚至只是运行{
with dataset('parameters/masks.nc', 'r') as mask, Dataset('remapped/' + ifile, 'a') as to_mask:
masked_data = np.zeros(to_mask['alk'].shape)
if len(to_mask['alk'].shape) == 4: # The dimensions are time,depth,lat,lon
for i in range(0, to_mask[var].shape[0]):
masked_data[i, :, :, :] = ma.masked_where(
np.logical_not(np.array(mask['tmask'][0, :, :, :], dtype=bool)),
np.array(to_mask[var][i, :, :, :]))[:]
给我一个MemoryError
。这对我来说有点奇怪,因为我可以加载数据并在没有内存问题的情况下使用它。在
我已经开始研究xarray,因为它似乎有一些我想用来处理数据的函数,比如简单的时间平均,但是似乎没有一种直接的方法可以像我尝试的那样应用掩码。在
当前代码:
^{pr2}$
像往常一样,多敲几个小时就可以帮你解决问题了。我的工作代码(请原谅更改变量名ect)如我所想的那样使用xarray。在
相关问题 更多 >
编程相关推荐