Selon Peter Freimuth <[email protected]>:

> Hi,
>
> I have a 5 band, 16-bit orthorectified GeoTIFF from a satellite image that
> contains a significant amount of blackfill and has a file size of over 21GB.
> I would like to decrease the file size by eliminating or negating the
> blackfill. I have attempted to use the SPARSE_OK option in GDAL as such:
>
> gdal_translate -of GTiff -co "BIGTIFF=YES" -co "SPARSE_OK=TRUE" -co
> "TILED=YES" input.tif output.tif
>
> This has had no effect on the file size. Is my understanding of how SPARSE_OK
> works incorrect or is there a potential problem with the SPARSE_OK option?

Peter,

Yes, SPARSE_OK works but as not you intend it to. SPARSE_OK is usefull only when
you create a file with the Create() API. With SPARSE_OK, at dataset closing, it
will not try to instanciate tiles that have not been written. But with
gdal_translate, the CreateCopy() API is used and it will write each block of the
target datasets, so SPARSE_OK is useless.


> Is
> there a better way of reducing the file size? I have tried
> "COMPRESS=DEFLATE", which works, but then the product is veryyyy slow
> loading into the viewing software.

I've not really a ready-made solution for you, but I'm thinking of a possible
evolution where the GTiff driver would detect the tiles at 0 (or nodata value)
and would not write them physically (like SPARSE_OK does on a newly Create()'d
dataset), or would point them all on the same physical tile (but the later would
cause interesting issues in case of update).

Best regards,

Even
_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to