failure to CLOBBER an netcdf4 file

4 ビュー (過去 30 日間)
James
James 2011 年 5 月 24 日
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