【发布时间】:2023-04-11 06:37:01
【问题描述】:
我每天下载 600MB netcdf-4 具有这种结构的文件:
netcdf 我的文件 { 方面: time_counter = 18 ; 深度 = 50 ; 纬度 = 361 ; 经度 = 601 ; 变量: 盐度 温度等我正在寻找一种更好的方法将 time_counter 维度从固定大小 (18) 转换为无限维度。
我找到了一种使用 netcdf 命令和 sed 的方法。像这样:
ncdump myfile.nc | sed -e "s#^.time_counter = 18 ;#time_counter = UNLIMITED ; // (当前为 18)#" | ncgen -o myfileunlimited.nc这对我来说适用于小文件,但是在转储 600 MB netcdf 文件时,会占用大量内存和时间。
有人知道完成此任务的另一种方法吗?
【问题讨论】:
-
对于你正在做的替换,
sed和管道链的效率差不多。除非您使用hadoop类型的解决方案,否则会将文件分成几部分,将这些部分发送到多个服务器,执行操作,然后将文件“粘合”在一起。我看不出内存如何成为问题,sed一次处理一行。我对nc工具套件一无所知,所以也许有一些选项可以让ncgen更有效地运行? (可能不是)您的计算机是否适合此任务?是时候让老板买新的了!是的!!祝你好运! -
多少时间和内存是“太多”?如果内存使用呈线性增长,我认为您不需要超过几十 GB。