[gdal-dev] How to decrease file size of colored raster bands?

Scott public at postholer.com
Thu Jun 1 09:47:37 PDT 2023


As a test you can skip the whole python debacle and try this:

gdal_translate -f COG -co COMPRESS=DEFLATE -scale 0 255 -ot Byte 
source.tif target.tif


On 6/1/23 07:35, afernandez wrote:
> Hello,
> I'm generating a raster file with GDAL. The pseudo-code (where the 
> raster is loaded as 'var') for the colored version reads:
> # Initial manipulations
>              dims = var.dimensions
>    shape = var.shape
>      driver_name = 'GTIFF'
>          driver = gdal.GetDriverByName(driver_name)
>          np_dtype = var.dtype
>              type_code = gdal_array.NumericTypeCodeToGDALTypeCode(np_dtype)
>              gdal_ds = driver.Create(_my_path_, cols, rows, 1, 
> gdal.GDT_UInt16)
> gdal_ds.SetProjection(_my_projection_)
> gdal_ds.SetGeoTransform(_my_transformation_)
> # Creation of the bands and scaled matrix
>            band = gdal_ds.GetRasterBand(1)
>        data = var[_chosen_index_]
>            data = ma.getdata(data)
>              data_scaled = np.interp(data, (data.min(), data.max()), (0, 
> 255))
>              data_scaled2 = data_scaled.astype(int) # This is to rescale 
> into integers so that it can color the layer
> # *** Lines to set up the color palette ***
> # Write the array to band once everything has been rescaled
>    band.WriteArray(data_scaled2)
>          gdal_ds.FlushCache()
> This works well but the problem is that the generated file becomes too 
> large and difficult to work with. If I change to a black and white 
> representation by simply changing the 7th line to:
>              gdal_ds = driver.Create(out_path, cols, rows, 1, type_code)
> The new file has a size smaller than 1% of the colored one. I was 
> wondering if there is anything intermediate (with colors but generating 
> a smaller size) or if I would need a more radical approach such as using 
> a driver different from GTIFF or something else.
> Thanks.
> 
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev


More information about the gdal-dev mailing list