Hi Sean,
good question.
gdal_create just calls GDALCreate(), and doesn't "burn" any pixel value
by itself, unless you use the -burn switch
Which brings the question to the behavior of GDALCreate() itself. And I
don't think this is specified indeed and behavior will be driver dependant.
I would expect most "raw" drivers to zero initialize the dataset,
typically by seeking to the (size of the file - 1)th byte and writing a
single zero, and relying on sparse file mechanisms of operating systems
to also zero-initialize the areas of the file not explicitly written.
A few "smart" drivers like the GTiff one will write the nodata value (or
0 if no nodata explicitly set). Either physically in default mode, or in
SPARSE_OK=YES mode, the reading side of the driver will consider that
sparse tiles are initialized to nodata. The GPKG raster driver will also
behave like that (it has actually an optimization that if you burn a
tile to the nodata value, it will detect that and will not physically
write it). The ERDAS Imagine one also honours implicitly burning the
nodata value.
Hopefully drivers should implement one of the above 2 behaviors. I'd
consider it a bug of a driver if you get random garbage
Even
Le 07/02/2024 à 18:13, Sean Gillies via gdal-dev a écrit :
Hi all,
I haven't found a specification for the empty pixel value of datasets
created by, say, gdal_create. Is it format specific?
--
Sean Gillies
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev
--
http://www.spatialys.com
My software is free, but my time generally not.
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev