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