ungarj / mapchete

Tile-based geodata processing using rasterio & Fiona

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

estimate minimum memory usage

ungarj opened this issue · comments

We have at least some information to estimate how much memory the output array will roughly need:

def memory_estimate(bands=3, metatiling=1, pixelbuffer=0, dtype="uint8"):
    
    tile_size = 256
    metatile_size = tile_size * metatiling

    # add pixelbuffer around metatile if defined
    metatile_size = metatile_size + 2 * pixelbuffer

    # calculate number of pixels
    one_band_pixels = metatile_size ** 2
    all_bands_pixels = bands * one_band_pixels

    # footprint of one pixel as datatype
    itemsize = np.dtype(dtype).itemsize

    # total size in bytes
   return all_bands_pixels * itemsize