failure to CLOBBER an netcdf4 file

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".

 Respuesta aceptada

Walter Roberson
Walter Roberson el 26 de Mayo de 2011

2 votos

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

Más respuestas (1)

John
John el 25 de Mayo de 2011

0 votos

I cannot reproduce your issue, James, what platform and release are you running.

1 comentario

James
James el 26 de Mayo de 2011
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

Iniciar sesión para comentar.

Etiquetas

Preguntada:

el 24 de Mayo de 2011

Community Treasure Hunt

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

Start Hunting!

Translated by