Error reading .nc4 file: 'Unknown file format (NC_ENOTNC)' (MATLAB Version 2022b)

조회 수: 25 (최근 30일)
Kasi
Kasi 2023년 5월 24일
댓글: Walter Roberson 2023년 5월 31일
Hello, I've encountered a problem with NetCDF (.nc4) files extraction using MATLAB Version 2022b, I would be very grateful for any tips how to solve it.
dinfo = dir( fullfile('*.nc4'));
num_files = length(dinfo);
filename = fullfile({dinfo.name});
d = filename{1};
ncdisp(d)
ncid = netcdf.open(d, 'NC_WRITE');
[dimname, dimlen] = netcdf.inqVar(ncid,28);
lon = netcdf.getVar(ncid,2);
lat = netcdf.getVar(ncid,3);
[LAT LON] = meshgrid(lat, lon);
LAT = LAT(:);
LON = LON(:);
IMD_cord_all = [LON LAT];
alldata = [];
for i = 1:1 %upto number of files
file_name = filename{i};
ncid = netcdf.open(file_name , 'NC_WRITE');
SM = netcdf.getVar(ncid,28);
sm = [];
for j = 1:size(SM,3);
P = SM(:,:,j);
sm1 = P(:);
sm = [sm,sm1];
end
alldata = [alldata, sm];
end
%%
Error using matlab.internal.imagesci.netcdflib
The NetCDF library encountered an error during execution of 'open' function - 'Unknown file format (NC_ENOTNC)'.
Error in netcdf.open (line 77)
[varargout{:}] = matlab.internal.imagesci.netcdflib('open', ...
  댓글 수: 1
Walter Roberson
Walter Roberson 2023년 5월 31일
Those fullfile() waste a bit of time but do not contribute anything in the form they are now. I suggest
ncfiledir = '.'; %adjust to path where the nc4 files are
dinfo = dir( fullfile(ncfiledir, '*.nc4'));
num_files = length(dinfo);
filename = fullfile({dinfo.folder}, {dinfo.name});

댓글을 달려면 로그인하십시오.

답변 (1개)

Swaraj
Swaraj 2023년 5월 31일
Hi Kasi,
I understand that you are getting an error while reading .nc4 file. This error normally occurs when the file is corrupted.
The error message "Error reading .nc4 file: 'Unknown file format (NC_ENOTNC)'" suggests that MATLAB is unable to recognize the file format of the file you are trying to read. This can occur if the file is of an unsupported version or if the file extension is not correctly associated with the file format. Just check once if the file that you are trying to read has the correct extension and file format. If it does not solve the issue, make sure that the file you are trying to read is not corrupted.
Hope it helps!!

Community Treasure Hunt

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

Start Hunting!

Translated by