1 |
roquet |
1.1 |
function [FillVal]=ncgetFillVal(ncid,varname); |
2 |
|
|
% [FillVal]=ncgetFillVal(ncid,varname) |
3 |
|
|
% return the missing_value or _FillValue of varname |
4 |
|
|
|
5 |
|
|
global useNativeMatlabNetcdf; |
6 |
|
|
if isempty(useNativeMatlabNetcdf); useNativeMatlabNetcdf = ~isempty(which('netcdf.open')); end; |
7 |
|
|
|
8 |
|
|
FillVal=[]; |
9 |
|
|
if useNativeMatlabNetcdf; |
10 |
|
|
varid = netcdf.inqVarID(ncid,varname); |
11 |
roquet |
1.2 |
[varname,xtype,dimids,natts] = netcdf.inqVar(ncid,varid); |
12 |
roquet |
1.1 |
[atts]=ncatts(ncid,varid); |
13 |
|
|
if any(ismember(atts,'missing_value')) |
14 |
roquet |
1.2 |
FillVal = netcdf.getAtt(ncid,varid,'missing_value'); |
15 |
roquet |
1.1 |
elseif any(ismember(atts,'_FillValue')) |
16 |
roquet |
1.2 |
FillVal = netcdf.getAtt(ncid,varid,'_FillValue'); |
17 |
|
|
end |
18 |
|
|
if strcmp(xtype,'single') | strcmp(xtype,'double') |
19 |
|
|
FillVal=double(FillVal); |
20 |
|
|
end |
21 |
roquet |
1.1 |
else |
22 |
roquet |
1.3 |
eval(['FillVal = ncid{''' varname '''}.missing_value(:);']); |
23 |
roquet |
1.1 |
if isempty(FillVal); |
24 |
roquet |
1.3 |
eval(['FillVal = ncid{''' varname '''}.FillValue_(:);']); |
25 |
roquet |
1.1 |
end |
26 |
|
|
end |
27 |
|
|
|