Determine if variable name exists in netcdf file.

16 vues (au cours des 30 derniers jours)
Jason
Jason le 27 Juil 2012
Commenté : Vijay Sagar le 23 Juil 2020
I need to check if a variable name exist in a netcdf file. Is there a way to do this without creating a list variable names and searching it entry by entry in a loop?
I think I can catch it with the warnings produced:
>> a=netcdf.inqVarID(ncid,'u_d')
Error using netcdflib
The NetCDF library encountered an error during execution of 'inqVarID' function - 'Variable not found (NC_ENOTVAR)'.
Error in netcdf.inqVarID (line 22)
varid = netcdflib('inqVarID', ncid, varname);
but Im not familiar with warnings.

Réponse acceptée

Jason
Jason le 27 Juil 2012
Not sure if this is the best way but it works and its fast:
file = 'C:\Users\Jason\Documents\MATLAB\sgData\sg135\p1350050.nc';
ncid = netcdf.open(file,'nowrite');
str = 'good';
var = 'u_da';
try
ID = netcdf.inqVarID(ncid,var);
catch exception
if strcmp(exception.identifier,'MATLAB:imagesci:netcdf:libraryFailure')
str = 'bad';
end
end
netcdf.close(ncid)
disp(str)

Plus de réponses (1)

francisco
francisco le 14 Mai 2013
Hello Jason
I have the same problem, can you help me on this please.
  1 commentaire
Vijay Sagar
Vijay Sagar le 23 Juil 2020
The above solution by @Jason worked for me. I had a different 'exception' for my files. I have repaced with that after that it worked successfuly for me.

Connectez-vous pour commenter.

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by