Hi Even, Thanks for all the work. I looked at the new pull request, it seems good but what do you think about adding support for case where nc_inq_var_fill() returns no_fill=1? In this case the current code uses fillvalue=zero by default (if I'm not wrong) which is not ideal, I think it is better to set bGotNoData to false. And in creation mode do you confirm that it is not possible to create a variable without nodata value? What do you think about call nc_def_var_fill(NC_NOFILL) when creating the band and add a nc_def_var_fill(NC_FILL) call in SetNoDataValue()?
Julien -----Message d'origine----- De : Even Rouault <[email protected]> Envoyé : mardi 5 novembre 2019 11:19 À : Julien Demaria <[email protected]> Cc : [email protected] Objet : Re: [gdal-dev] Removing default nodata value from netCDF driver ? On mardi 5 novembre 2019 01:18:35 CET Julien Demaria wrote: > Hi Even, > > Are you sure that the driver uses a default fill value if the > attribute is not present? Yes, the raster band constructor systematically called SetNoDataValue() even if the bGotNoData flag was not set before. Thanks a lot for your very valuable feedback on this! I've issued in https://github.com/OSGeo/gdal/pull/1983 a less radical change which follows your suggestions (and solves the issue that triggered this discussion), that is: - for char/byte/ubyte data types, do not set a NoData value if there's no explicit _FillValue or missing_value attribute - for other data types, use nc_inq_var_fill() to get the default value, and fallback to the hard-coded NC_FILL_xxx constants Even -- Spatialys - Geospatial professional services http://www.spatialys.com _______________________________________________ gdal-dev mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/gdal-dev
