How can I write missing value ncwriteatt

8 次查看(过去 30 天)
I created a netcdf file with attributes correctly, but I tried to add also missing value (1.0000e+20) as number to variabel attribute part, I encountering with error. Does anyone know where my mistake is so that I can correct it. I tried below command.
missing_value = 1.0000e+20;
missing = string(missing_value);
ncwriteatt(outputfile,'salinity','missing_value','missing')
Error using netcdflib
The NetCDF library encountered an error during execution of 'putAttText'
function - 'Not a valid data type or missing_value type mismatch (NC_EBADTYPE)'.
Thanks!
  2 个评论
Walter Roberson
Walter Roberson 2024-2-3
ncwriteatt(outputfile,'salinity','missing_value',missing)
would be more likely.
... But I suspect that you want
ncwriteatt(outputfile,'salinity','missing_value',single(missing_value))
Farshid Daryabor
Farshid Daryabor 2024-2-3
Thanks!
What about 'NaN' value as missing_value, it should be;
ncwriteatt(outputfile,'salinity','missing_value',single(NaN))

请先登录,再进行评论。

回答(1 个)

Walter Roberson
Walter Roberson 2024-2-6
You cannot set the _FillValue of a variable after the variable is created.
FillValueReplacement value for missing values
scalar | "disable"
Replacement value for missing values, specified as a scalar or "disable". The default value is supplied by the netCDF library. To disable replacement values, specify a value of "disable". You cannot disable FillValue when writing string data to files with format netcdf4.
Note
The nccreate function assigns the value of FillValue to the _FillValue attribute of the new netCDF variable varname. You cannot change the value of this attribute after you have created the variable.
This argument is available only for files with format netcdf4 or netcdf4_classic.

Community Treasure Hunt

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

Start Hunting!

Translated by