Importing NetCDF files: Script stops when a variable is missing from a file.
12 次查看(过去 30 天)
显示 更早的评论
Found this script that I'm running when importing NetCDF files. It seems to work fine, but whenever a variabel is missing from a file the script will stop(or atleast i believe this to be the reason). It's seems that the salinty variabel is mostly related to the problem. Is there any way i can skip over these files?
ncvars = {'LATITUDE', 'LONGITUDE', 'PSAL', 'PRES'};
projectdir = 'C:\some\location';
dinfo = dir( fullfile(projectdir, '*.nc') );
num_files = length(dinfo);
filenames = fullfile( projectdir, {dinfo.name} );
lats = cell(num_files, 1);
lons = cell(num_files, 1);
salinity = cell(num_files, 1);
times = cell(num_files, 1);
for K = 1 : num_files
this_file = filenames{K};
lats{K} = ncread(this_file, ncvars{1});
lons{K} = ncread(this_file, ncvars{2});
salinity{K} = ncread(this_file, ncvars{3});
times{K} = ncread(this_file, ncvars{4});
end
Here's there error messages:
Error using internal.matlab.imagesci.nc/getGroupAndVarid (line 2096)
Could not find variable or group 'PSAL' in file.
Error in internal.matlab.imagesci.nc/read (line 593)
[gid, varid] = getGroupAndVarid(this, location);
Error in ncread (line 66)
vardata = ncObj.read(varName, varargin{:});
Error in Hydropraphy (line 14)
sal{K} = ncread(filen, variabler{3});
Any help would be greatly appreciated!
0 个评论
采纳的回答
Sean de Wolski
2020-4-4
Use ncinfo to determine if the variable exists in the file before you to try to read it.
3 个评论
Sean de Wolski
2020-4-6
info = ncinfo(file(K))
names = {info.Variables.Name}
if ismember('your_name', names)
process_file_K
else
dont_process_file_K
end
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 NetCDF 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!