550def calculate_block_size(ds, band_from, band_to):
551 """Size of natural block reported by GDAL for bands of given dataset"""
552
553 block_dims = None
554 for i in range(band_from, band_to):
555 band = ds.GetRasterBand(i)
556 assert band is not None, "Cannot access raster band %d" % i
557 dims = band.GetBlockSize()
558
559
560 if i == band_from:
561 block_dims = dims
562
563
564 if block_dims != dims:
565 logit(
"MSG: Block sizes don't match: %s != %s\n" % (
str(block_dims),
str(dims)))
566
567 assert block_dims is not None, "Failed to calculate block size"
568 return (int(block_dims[0]), int(block_dims[1]))
569