Ich habe kein bestimmtes Befehlszeilenprogramm gefunden, das melden kann, ob ein Tiff gekachelt oder gestreift ist. Zumindest nicht direkt oder in greifbarer Form wie TILED=YES
.
Es sollten jedoch genügend Informationen vorhanden sein gdalinfo
, um diese Entscheidung zu treffen.
Ich habe eine Landsat-Szene, jede mit gdal_translate erstellt:
landsat_tiled.tif
:: -co TILED=YES
landsat_notiled.tif
:: -co TILED=NO
gdalinfo landsat_tiled.tif | grep -E 'Block=|Size is'
>>Size is 7621, 7791
>>Band 1 Block=256x256 Type=UInt16, ColorInterp=Gray
gdalinfo landsat_notiled.tif | grep -E 'Block=|Size is'
>>Size is 7621, 7791
>>Band 1 Block=7621x1 Type=UInt16, ColorInterp=Gray
Es ist also offensichtlich, dass gekachelte Tiffs eine Y-Blockgröße größer als 1 haben. Gestreifte Tiffs haben eine X-Blockgröße gleich XSize und eine Y-Blockgröße gleich 1.
Dies sollte ausreichen, um festzustellen, ob sie gestreift (nicht gekachelt) sind.
gdalinfo landsat_notiled.tif | grep -o 'Block=.*x1\s'
>>Block=7621x1
Wenn dieser Aufruf etwas zurückgibt, können Sie sicher sein, dass er NICHT gekachelt ist.
Dies betrifft nicht sehr kleine Tiffs, bei denen das gesamte Raster-Array in einem einzigen Block gespeichert werden kann. Also YMMV auf denen ..
gdal_translate -srcwin 0 0 50 1 -co tiled=YES input.tif test_tiled.tif
.gdalinfo
meldet immer noch,Block=256x256
damit Ihre Methode auch für kleine Tiffs funktioniert.