首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ncks为多个小型netcdf文件追加较慢的

ncks为多个小型netcdf文件追加较慢的
EN

Stack Overflow用户
提问于 2016-04-26 09:41:10
回答 1查看 1.1K关注 0票数 2

我的模型为每个时间步骤和每个变量生成一个netcdf文件,名为DDDDDDD.VVV.nc,其中DDDDDDD是date,VVV是变量名。

对于每个时间步骤,我使用nco来追加对应于不同变量的文件,以便每个时间步骤获得一个文件。

代码语言:javascript
复制
#! /bin/bash  
# looping on timesteps to merge all variables 
# I use one variable 'O2o' to get the list of timesteps                                                                                                                                                                    
for timesteps in *.O2o.nc;
do
  timestep=$(echo $timesteps| cut -b -21)
  echo $timestep
   for var in $timestep*.nc;
   do
     ncks -Ah  $var 'F1_'$timestep.nc
   done
done

大约有432个输出变量,每个文件大约是6,4K或1,1K (变量没有相同的维数)。

我发现这个过程很慢。15秒),虽然文件非常小。你知道我该怎么优化剧本吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-27 11:08:17

缓慢的原因可能是打开、移动数据、添加数据和关闭432次文件。要优化这一点,请减少文件操作的数量,特别是附加(这将导致)。尝试一次(分组)将所有数据写入一个netCDF4文件,然后将该文件压缩到netCDF3中。对于每个时间步骤,它将如下所示:

代码语言:javascript
复制
ncecat --gag in*.nc all_group.nc
ncks -3 -G : all_group.nc all_flat.nc

两个命令而不是432。如果在多个输入文件中出现任何变量,您将收到一个错误,说明变量将在all_flat.nc中被多个定义。通过删除重复的输入来避免这一点。

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

https://stackoverflow.com/questions/36861083

复制
相关文章

相似问题

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