2016-11-17 91 views
1
    1. 我的学校集群管理员说:如果我们加载netcdf4模块,那么我们就无法加载netcdf3模块。于是,他拒绝更新netcdf4
  • 我有一个.nc文件,这是一个netcdf4文件,我想,我需要将其加载到R.
    1. 在我们集群中的R上,只安装了RNetCDF包。它无法读取上述.nc文件。 ncdf4包不在那里。 (我尝试安装它,它说,它需要的版本4的NetCDF库,当然我没有sudo
  • 在蟒蛇,(我不知道知道为什么)我可以加载netcdf4文件。我不知道我是否可以使用这个(它保存在创建NetCDF 3格式?)帮我加载R.

这样的数据,我应该怎么办?如果我只有netcdf3工具,如何读取netcdf4数据?

  • 管理员不想切换到netcdf4模块,因此它似乎我(或他)不能R.
  • 一些nc数据的安装包ncdf4直接从一些网站上下载,一些nc文件来自python中xarray包的输出(并且xarray的netcdf输出在版本4中)。
+0

HDF5可以阅读netCDF4 ... –

+0

感谢@DavidLeBauer!这有助于。我用google搜索这个帖子:https://www.r-bloggers.com/working-with-hdf-files-in-r-example-pathfinder-sst-data/,它使用R中的rhdf5包来读取nc4文件。 – breezeintopl

回答

2

使用xarray,您可以在调用to_netcdf时通过指定format='NETCDF3_CLASSIC'来控制保存的文件的版本。因此,一个简单的解决办法可能是使用xarray,例如,

ds = xarray.open_dataset(path) 
ds.to_netcdf(dest, format='NETCDF3_CLASSIC') 
+0

好吧,我收到了一条错误消息:RuntimeError:NetCDF:一个或多个变量大小违反格式约束。所以,也许是因为数据集太大(5.2G)? – breezeintopl

+0

事实上,netCDF3是一种非常古老的(32位)文件格式 - 它在任何情况下都不支持大于4GB的可变大小。 – shoyer

+0

谢谢!这是有帮助的,因为即使我可以使用上面的'rhdf5'包加载这些数据,时间(日期)缺失,只显示“0,1,2,3,4,5 ...”,它显示了一些像“使用64位而不会丢失信息”的错误... – breezeintopl

相关问题