首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改netCDF文件中的块块形状

更改netCDF文件中的块块形状
EN

Stack Overflow用户
提问于 2022-07-07 06:43:58
回答 1查看 90关注 0票数 2

我有几个~100 GB的NetCDF文件。在每个NetCDF文件中,都有一个变量a,我必须从其中提取几个数据序列--维度是(1440,721,6,8760)。我需要从每个(1,1,1,8760)文件中提取~20k片维NetCDF。因为提取一个片段(几分钟)非常慢,所以我读到了如何优化这个过程。最有可能的是,这些块的设置并不是最优的。因此,我的目标是将块大小更改为(1,1,1,8760),以获得更有效的I/O。

然而,我很难理解如何才能最好地重新块这个NetCDF变量。首先,通过运行ncdump -k file.nc,我发现类型是64-bit offset。根据我的研究,我认为这是不支持定义块大小的NetCDF3。因此,我使用NetCDF4将其复制为nccopy -k 3 source.nc dest.nc格式。ncdump -k file.nc现在返回netCDF-4。不过,现在我被困住了。我不知道该怎么做。

如果在python、matlab或使用nccopy中有合适的解决方案,请共享它。我现在要做的是:

代码语言:javascript
复制
nccopy -k 3 -w -c latitude/1,longitude/1,level/1,time/8760 source.nc dest.nc

这是理论上正确的做法吗?不幸的是,在24小时后,它仍然没有在一个有更多内存(250 80)和许多CPU (80)的强大服务器上完成。

EN

回答 1

Stack Overflow用户

发布于 2022-07-14 23:30:10

你的命令似乎是正确的。重新分块需要时间。

代码语言:javascript
复制
ncks -4 --cnk_dmn latitude,1 --cnk_dmn longitude,1 --cnk_dmn level,1 --cnk_dmn time,8760 in.nc out.nc

看看这是否更快。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72893340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档