[gdal-dev] gdal2tiles 3.11.3 dies when source files have transparency

Stefan Gofferje lists at home.gofferje.net
Tue Sep 30 23:25:59 PDT 2025


Mh, works if I turn off PNG compression...

-- 
  (o_   Stefan Gofferje            | SCLT, MCP, CCSA
  //\   Reg'd Linux User #247167   | VCP #2263
  V_/_  https://www.gofferje.net   | https://www.saakeskus.fi

On 9/29/25 19:03, Scott via gdal-dev wrote:
> Hey Stefan,
> 
> I don't have a direct answer to your question. But, I noticed you are 
> using gdal 3.11.3. I would encourage you to try the gdal cli version. It 
> doesn't rely on python and has a whole bunch of options. Something like:
> 
> echo "Creating complete.gdalg.json..."
> gdal raster mosaic \
>     --input="cache/*.tif" \
>     --output="complete.gdalg.json" \
>     --resolution=highest \
>     --overwrite
> 
> echo "Creating tiles..."
> gdal raster tile \
>     --input=complete.gdalg.json \
>     --min-zoom=12 --max-zoom=14 \
>     --skip-blank --overview-resampling=cubic \
>     --co ZLEVEL=9 --add-alpha \
>     --output=tilesDir \
>     --progress
> 
> Documentation can be found here:
> https://gdal.org/en/stable/programs/gdal_raster_tile.html#gdal-raster-tile
> 
> Hope that helps!
> Scott
> 
> 
> On 9/29/25 08:41, Stefan Gofferje via gdal-dev wrote:
>> Hi all,
>>
>> I have 4 large GeoTIFF files from which I want to create XYZ tiles. I 
>> have tried various combinations with gdal_merge, gdalbuildvrt and 
>> gdal_translate and the result is the same:
>>
>> When the source file contains transparency such as
>>
>> gdalbuildvrt -srcnodata 0 VVVH.vrt ${LIST}
>> gdal_merge -n 0 -a_nodata 0 -o VVVH.tif ${LIST}
>>
>> etc...
>>
>> gdal2tiles dies complaining that the source file cannot be found in 
>> the /tmp directory.
>>
>> I call gdal2tiles like this:
>> /usr/bin/gdal2tiles -x --processes 8 --xyz -z 8-14 VVVH.vrt tiles
>> or
>> /usr/bin/gdal2tiles -x --processes 8 --xyz -z 8-14 VVVH.tif tiles
>> depending on what source file I created.
>>
>> I really would like to have tiles which are transparent where the 
>> source files are instead of black.
>>
>> Example output:
>>
>> 0multiprocessing.pool.RemoteTraceback:
>> """
>> Traceback (most recent call last):
>>    File "/usr/lib/python3.12/multiprocessing/pool.py", line 125, in 
>> worker
>>      result = (True, func(*args, **kwds))
>>                      ^^^^^^^^^^^^^^^^^^^
>>    File "/usr/lib/python3.12/multiprocessing/pool.py", line 48, in 
>> mapstar
>>      return list(map(*args))
>>             ^^^^^^^^^^^^^^^^
>>    File "/usr/lib/python3/dist-packages/osgeo_utils/gdal2tiles.py", 
>> line 1335, in create_base_tile
>>      alpha = alphaband.ReadRaster(rx, ry, rxsize, rysize, wxsize, wysize)
>>              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>    File "/usr/lib/python3/dist-packages/osgeo/gdal.py", line 8756, in 
>> ReadRaster
>>      return _gdal.Band_ReadRaster1(self, xoff, yoff, xsize, ysize,
>>             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> RuntimeError: /tmp/tmpg8iuy420/VVVH.tif: No such file or directory
>> May be caused by: /tmp/tmpg8iuy420/VVVH.tif: No such file or directory
>> """
>>
>> The above exception was the direct cause of the following exception:
>>
>> Traceback (most recent call last):
>>    File "/usr/bin/gdal2tiles", line 33, in <module>
>>      sys.exit(load_entry_point('GDAL==3.11.3', 'console_scripts', 
>> 'gdal2tiles')())
>>
>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>    File "/usr/lib/python3/dist-packages/osgeo_utils/gdal2tiles.py", 
>> line 4625, in main
>>      return submain(argv, called_from_main=called_from_main)
>>             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>    File "/usr/lib/python3/dist-packages/osgeo_utils/auxiliary/ 
>> util.py", line 46, in enable_exceptions_wrapper
>>      return fun(*args, **kwargs)
>>             ^^^^^^^^^^^^^^^^^^^^
>>    File "/usr/lib/python3/dist-packages/osgeo_utils/gdal2tiles.py", 
>> line 4655, in submain
>>      multi_threaded_tiling(input_file, output_folder, options, pool)
>>    File "/usr/lib/python3/dist-packages/osgeo_utils/auxiliary/ 
>> util.py", line 46, in enable_exceptions_wrapper
>>      return fun(*args, **kwargs)
>>             ^^^^^^^^^^^^^^^^^^^^
>>    File "/usr/lib/python3/dist-packages/osgeo_utils/gdal2tiles.py", 
>> line 4549, in multi_threaded_tiling
>>      for _ in pool.imap_unordered(
>>    File "/usr/lib/python3.12/multiprocessing/pool.py", line 451, in 
>> <genexpr>
>>      return (item for chunk in result for item in chunk)
>>             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>    File "/usr/lib/python3.12/multiprocessing/pool.py", line 873, in next
>>      raise value
>> RuntimeError: /tmp/tmpg8iuy420/VVVH.tif: No such file or directory
>> May be caused by: /tmp/tmpg8iuy420/VVVH.tif: No such file or directory
>>
>>
>>
> 
> _______________________________________________
> 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