Bisakah GDAL melaporkan jika .tiff di-tile atau tidak?

9

Sepotong perangkat lunak tertentu yang saya gunakan tidak mendukung .iff DEM's yang ubin. Apakah ada cara dengan utilitas GDAL untuk menentukan apakah DEM .tiff adalah ubin atau tidak?

gdalinfo dem.tif 

akan melaporkan tipe kompresi dan tipe interleave (band / pixel), tetapi sejauh yang saya tahu, tipe interleave tidak ada hubungannya dengan ubin.

Anda dapat menerjemahkan tiff DEM dengan flag opsi kreasi untuk membuat DEM yang dulunya ditangguhkan, tetapi itu membutuhkan terjemahan dan bukan hanya laporan.

gdal_translate -co TILED=NO dem.tif dem_notile.tif
jamierob
sumber

Jawaban:

11

Saya belum menemukan utilitas commandline khusus yang dapat melaporkan jika tiff di-tile atau bergaris-garis. Setidaknya tidak secara langsung atau dalam bentuk seperti grepable TILED=YES.

Namun, harus ada informasi yang cukup gdalinfountuk membuat keputusan itu.

Saya memiliki adegan landsat, masing-masing dibuat dengan gdal_translate:

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

Jadi jelas bahwa tiffs ubin memiliki ukuran blok Y lebih besar dari 1. Tiff bergaris memiliki ukuran blok X sama dengan XSize dan ukuran blok Y sama dengan 1.

Ini harus cukup untuk menentukan apakah mereka bergaris (bukan ubin).

gdalinfo landsat_notiled.tif | grep -o 'Block=.*x1\s'
>>Block=7621x1

Jika panggilan itu mengembalikan apa pun, Anda dapat yakin itu TIDAK ubin.

Ini tidak membahas tiff yang sangat kecil, yang dapat membuat seluruh array raster disimpan dalam satu blok. Jadi YMMV pada mereka ..

Logan Byers
sumber
2
Saya baru saja membuat tiff 50x1 dengan gdal_translate -srcwin 0 0 50 1 -co tiled=YES input.tif test_tiled.tif. gdalinfomasih melaporkan Block=256x256sehingga metode Anda akan bekerja untuk tiff kecil juga.
user2856