Flo*_*ian 1 hdf5 netcdf h5py netcdf4
打开我的netcdf文件时出现此错误。该代码之前工作。 我该如何解决 ?
追溯(最近一次通话):
文件“”,行1,在...
collect_vgt中第71行的文件“ file.py”返回xr.open_dataset(filename)
在open_dataset autoclose = autoclose中的文件“ /.../lib/python3.6/site-packages/xarray/backends/api.py”,行286
在打开的ds = opener()中,文件“ /.../lib/python3.6/site-packages/xarray/backends/netCDF4_.py”,第275行
在_open_netcdf4_group ds = nc4.Dataset中的文件“ /.../lib/python3.6/site-packages/xarray/backends/netCDF4_.py”,第199行ds = nc4.Dataset(文件名,mode = mode,** kwargs)
netCDF4._netCDF4.Dataset中的文件“ netCDF4 / _netCDF4.pyx”,行2015。在里面
netCDF4._netCDF4._ensure_nc_success中的文件“ netCDF4 / _netCDF4.pyx”,行1636
OSError:[Errno -101] NetCDF:HDF错误:b'file.nc'
当我尝试使用h5py打开相同的netcdf文件时,出现此错误:
OSError:无法打开文件(此文件系统上的文件锁定已禁用(使用HDF5_USE_FILE_LOCKING环境变量进行覆盖),errno = 38,错误消息='...')
您必须处于这种情况:
您的HDF5库已更新(1.10.1)(netcdf在后台使用HDF5)
您的文件系统不支持HDF5库使用的文件锁定。
为了读取您的hdf5或netcdf文件,您需要设置以下环境变量:
HDF5_USE_FILE_LOCKING=FALSE
Run Code Online (Sandbox Code Playgroud)
作为参考,它是在HDF5版本1.10.1中引入的,
添加了禁用SWMR文件锁定方案的机制。
当基础文件系统不支持文件
锁定或已禁用锁定时,HDF5 1.10.0(包括patch1)中使用的文件锁定调用将失败。要禁用所有文件
锁定操作,
可以将名为HDF5_USE_FILE_LOCKING 的环境变量设置为五个字符的字符串
“ FALSE”。这从根本上不会改变HDF5库的
操作(除了打开/创建初始文件之外,SWMR是无锁的),
但是用户在打开文件时必须更加小心。
为了避免使用有问题的访问模式(即:多个编写器)>设计了文件锁定来防止访问。此外,更新了将文件锁定
操作将errno设置为ENOSYS 时发出的错误消息(通常在
禁用文件锁定时),以
更好地描述问题和可能的解决方法。(DER,2016/10/26,HDFFV-9918)