failure to CLOBBER an netcdf4 file

4 visualizaciones (últimos 30 días)
James
James el 24 de Mayo de 2011
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
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
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

Community Treasure Hunt

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

Start Hunting!

Translated by