failure to CLOBBER an netcdf4 file

3 次查看(过去 30 天)
using netcdf4 format I can't seem to overwrite existing files - works ok with classic. I get the following - any ideas?
nc = netcdf.create('tmp.nc','CLOBBER') ??? Error using ==> netcdflib Library failure "Can't add HDF5 file metadata".

采纳的回答

Walter Roberson
Walter Roberson 2011-5-26
James, don't let your function exit prematurely: use try/catch blocks. Or, since you are using a very new version, use onCleanup()

更多回答(1 个)

John
John 2011-5-25
I cannot reproduce your issue, James, what platform and release are you running.
  1 个评论
James
James 2011-5-26
Hi John,
Linux 64bit, Centos5, MatlabR2011a
I've played a little more with my code and found the following - I guess it comes down to should the netcdf bits be cleaned up automatically if my function exists prematurely or am I stuck with the fact that I'll just have to delete the file manually if this happens. Hope the following makes sense:
% this code works
netcdf.setDefaultFormat('FORMAT_NETCDF4') ;
mode = netcdf.getConstant('CLOBBER') ;
ncid = netcdf.create('tmp.nc',mode) ;
netcdf.close(ncid)
ncid = netcdf.create('tmp.nc',mode) ;
netcdf.close(ncid)
% it successfully overwrites, but in my case
% the call is in a function so if the function
% exits prematurely before the netcdf.close statement
% I get something similar to the following if
% I try to re-call the function:
%first pass
netcdf.setDefaultFormat('FORMAT_NETCDF4') ;
mode = netcdf.getConstant('CLOBBER') ;
ncid = netcdf.create('tmp.nc',mode) ;
% exit before end
% second call:
ncid = netcdf.create('tmp.nc',mode) ;
% should get HDF5 error here

请先登录,再进行评论。

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by