爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3804|回复: 1

[netcdf] 按时间维度合并nc文件的两种高效方法(cdo和ncrcat)及对比

[复制链接]

新浪微博达人勋

发表于 2023-5-31 22:41:26 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
nc文件的处理, 之前一直用MATLAB预处理, 比如读取, 插值等, 但终究感觉不是那么方便(文件格式, 大文件执行效率, 没有针对的优化等等), 现在觉得还是用专门的工具预处理才是王道, 希望后来人少走点弯路吧. 主流的处理有NetCDF Operators (NCO)和cdo, cdo的用法介绍可以见https://mp.weixin.qq.com/s/Fxqptcwj0Ix7akN-tqgQFw.

这里主要介绍按时间维度合并nc文件的两种方法: cdo mergetime 和 ncrcat 的区别


cdo 处理大文件时经常出现错误:
Error (cdf_put_vara_double): NetCDF: Numeric conversion not representable
解决办法是加上-b F64, 但这样文件会变得非常大, 因此还是推荐用ncrcat, 下面是gpt列出他俩的区别以及优劣势:
  1. ncrcat和cdo mergetime都是用于将多个netCDF文件合并成一个的命令行工具,它们的主要区别在于它们的功能和使用方式略有不同。


  2. ncrcat是NetCDF Operators (NCO)工具集的一部分,它可以沿着指定的维度连接多个netCDF文件,并且还可以在连接过程中执行计算。ncrcat的优点是它可以很方便地处理非常大的netCDF文件,因为它只需要在内存中处理一小部分文件,然后将它们写入输出文件。


  3. cdo mergetime是Climate Data Operators (CDO)工具集的一部分,它可以将多个netCDF文件按时间维度连接成一个文件。与ncrcat不同,cdo mergetime还可以处理不同时间间隔的文件,例如小时、天、月和年。此外,cdo mergetime还可以执行一些其他的操作,例如计算时间平均值和时间积分。


  4. 因此,如果您需要按时间维度连接多个具有不同时间间隔的netCDF文件,则应该使用cdo mergetime。如果您只需要连接具有相同时间间隔的文件,则可以使用ncrcat。
复制代码
此外cdo用于插值还是很方便的, 还有很多运算工具在shell环境也可以方便的进行并行计算. 总之是目前遇到工具中效率最高的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2023-8-25 09:31:10 | 显示全部楼层
谢谢博主,处理era5的时候,出现Error (cdf_put_vara_double): NetCDF: Numeric conversion not representabl都不知道是为啥
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表