Importing NetCDF files: Script stops when a variable is missing from a file.
조회 수: 18 (최근 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!