TypechoJoeTheme

MetMan's Blog

网站页面
文章目录

netCDF文件创建模式介绍

MetMan博 主神仙
2025-03-22
/
0 评论
/
16 阅读
/
343 个字
/
百度已收录
03/22
本文最后更新于 2025年03月22日,已超过 13天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

netCDF库中通过n*_create函数(nc_create/nf_create/nf90_create)实现NETCDF文件的创建。函数需要指定创建模式flag参数,理解不同参数设置含义对正确生成netCDF文件非常有必要。

下面以netCDF Fortran90函数接口为例介绍。

function nf90_create(path, cmode, ncid, initialsize, bufrsize, cache_size, cache_nelems, cache_preemption, comm, info)
  implicit none
  character (len = *), intent(in) :: path
  integer, intent(in) :: cmode
  integer, intent(out) :: ncid
  integer, optional, intent(in) :: initialsize
  integer, optional, intent(inout) :: bufrsize
  integer, optional, intent(in) :: cache_size, cache_nelems
  real, optional, intent(in) :: cache_preemption
  integer, optional, intent(in) :: comm, info
  integer :: nf90_create

其中cmode参数即为要设置的创建模式,用于确定是否覆盖已有相同文件名的文件和是否共享访问。

cmode支持的模式(常量)包括:

  • NF90_CLOBBER
  • NF90_NOCLOBBER
  • NF90_SHARE
  • NF90_64BIT_OFFSET
  • NF90_NETCDF4
  • NF90_CLASSIC_MODEL

通过常量命名大致能猜出其含义。

  • NF90_CLOBBER vs NF90_NOCLOBBER

在计算机领域中,"clobber" 可以指代覆盖或清除某些数据或信息。NF90_CLOBBER(库实现中定义为0)指定:如果已存在相同名称的文件,新文件覆盖旧文件,并且支持buffer和cache访问优化。但要注意的是,**创建的文件格式是Classic格式。

而NF90_NOCLOBBER指定不覆盖相同名称旧文件,代之以返回错误码(NF90_EEXIST)。

  • NF90_CLASSIC_MODEL vs NF90_64BIT_OFFSET vs NF90_NETCDF4

分别是指定创建的netCDF文件是classic、64-bit offset、netcdf-4/hdf-5格式。

  • NF90_SHARE

涉及多进程并发读写netCDF文件,通常用不到。

以上模式flag支持位或运算(Fortran中可以使用加法或者ior函数),比如

  • NF90_NOCLOBBER + NF90_NETCDF4

创建netCDF4格式文件,如已存在相同名称文件,返回错误码。

  • NF90_CLASSIC + NF90_NETCDF4

创建netCDF-4 classic model格式文件,只支持classic格式功能,netCDF-4新功能(比如groups或自定义类型)不支持。

如果对netCDF格式不太了解的话,可以点击阅读下面文章。

参考资料

https://docs.unidata.ucar.edu/netcdf-fortran/current/f90_datasets.html

netcdf
朗读
赞(0)
赞赏
感谢您的支持,我会继续努力哒!
版权属于:

MetMan's Blog

本文链接:

https://blog.metman.top/index.php/archives/193/(转载时请注明本文出处及文章链接)

评论 (0)

互动读者

标签云

最新回复

  1. tqymnonccc打酱油
    2024-09-27
  2. toibdpojay打酱油
    2024-09-22
  3. yvctxyevvw打酱油
    2024-09-22
  4. frezhwzwuq打酱油
    2024-09-22
登录
X
用户名
密码