ncread not identifying missing values
2 次查看(过去 30 天)
显示 更早的评论
I'm using ncread to open a netcfd4 file. First, I used ncdisp and ncinfo to determine that my temperature variable of interest has a scale factor and missing value attribute associated with it. However, when I use ncread to read in this temperature variable, the scale factor and missing value attribute are not taken into account. For example, missing values still appear as "-327.6", the missing value ID, rather than NaN. What am I doing wrong? I thought ncread was automatically supposed to use the missing value attribute information and apply it to the dataset when it reads in the variable. How can I do this? Thank you! -Emily
0 个评论
回答(2 个)
Ashish Uthama
2011-11-23
Emily, the replacing fill values and applying scale and offset values is a convention. (i.e its not part of the file format specification), hence they need to have specific names. ncread will honor attributes with these specific names: _FillValue, scale_factor and add_offset: more here.
If your attribute names are not the same as the above convention, your best bet is to use the ncreadatt function to read in those attributes and perform the conversion.
If they have the standard names, and are not being honored, consider contacting tech support or posting a sample file for us to check.
2 个评论
sara niazi
2021-2-6
Dear Ashish Uthama
my problem is :
how wrf_chem model understand missing value?(-9999.0) or NAN in wrfchemistry files as it's input file?
Could you guide me, please? I have made wrfchemistry files for the wrf_chem model as input files. some of my data has a missing value(-9999.0) in wrfchemistry file(wrfchemi_d01_2010-07-16_12:00:00) (here is the link of my file:https://drive.google.com/file/d/1Fk8HPKyiQU1-dFq5yu5Q3XApTIYLJRGR/view?usp=sharing).my question is how to determine the missing value in the wrfchemistry file so that it is understandable for the WRF_Chem model.I want my model(WRF_Chem ) doesn't have any valu on points with 9999.0 value.
how shall I create or describe my attributes in my netcdf file(wrfchemi_d01_2010-07-16_12:00:00)
has my wrfchemi file true attribute:
dimensions:
Time = 1 ;
DateStrLen = 19 ;
south_north = 124 ;
west_east = 173 ;
emissions_zdim = 1 ;
variables:
char Times(Time, DateStrLen) ;
double E_CO2(Time, emissions_zdim, south_north, west_east) ;
E_CO2:FieldType = 104. ;
E_CO2:MemoryOrder = "XYZ" ;
E_CO2:units = "mol km^-2 hr^-1" ;
E_CO2:stagger = "" ;
**E_CO2:missing_value = "-9999.f" ;
E_CO2:FillValue = "-9999.f" ; ** is that true?
E_CO2:coordinates = "XLONG XLAT" ;**
shall I fill the variables in the wrfchemistry file(wrfchemi_d01_2010-07-16_12:00:00) with "NaN" or "-9999.0"?
I always recieve thes Error:
Error using netcdflib
The NetCDF library encountered an error during execution of 'endDef' function - 'Not a valid data type or _FillValue type mismatch (NC_EBADTYPE)'.
Thank you for the response
Walter Roberson
2021-2-6
The fill value and missing value are configured as a string, but the data is configured as numeric.
Lucio
2012-6-15
Hi, I am having exactly the same problem as Emily. But, I am using the right specific names when writing the attributes.
So, for writing the NetCDF I use
ncwriteatt(ncfile,'vr','_FillValue',single(fillval));
where ncfile is the full name of my NetCDF file and 'vr' is the variable of interest. Then, when I read by typing
data.vr = double(ncread(ncfile,'vr'));
I get no NaN and the value of the fill value instead. I have Matlab R2012a on a Linux Debian Squeeze 64 bits. Any guess? Lucio
1 个评论
John
2012-6-15
If your file is netcdf-4, you probably shouldn't do that with fill values. The "fill value" in this case is a dataset creation property in the underlying netCDF/HDF5 file format, and therefore can only be set when the netcdf variable is first created. The "_FillValue" attribute is, in this case, just an attribute. If you change it, then the attribute is out of sync with the real "fill value" of the netCDF/HDF5 file.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 NetCDF 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!