tiling.const_stride

Class provides tile parameters (offset, extent) to extract data from image.

Generated tile extents starts from an origin, has constant stride and can optionally include nodata paddings. For example, tiling can look like this (origin is negative, include nodata)

   tile 0        tile 2      tile 4
   |<------->|   |<------>|  |<------>|     etc
             tile 1      tile 3      tile 5     tile n-1
   ^      |<------->|  |<------>|  |<------>| |<------>|
   |        |<------------------------------------>|
origin      |                IMAGE                 |
            |                                      |

Another example, tiling can look like this (origin is negative, no nodata, tile size is not constant at boundaries)

           tile 0    tile 2      tile 4
           |<->|   |<------>|  |<------>|     etc
             tile 1      tile 3      tile 5     tile n-1
   ^       |<------>|  |<------>|  |<------>| |<->|
   |       |<------------------------------------>|
origin     |                IMAGE                 |
           |                                      |

Another example, tiling can look like this (origin is postive, no nodata, tile size is not constant at boundaries)

      tile 0        tile 2
    |<------->|   |<------>|      etc
              tile 1      tile 3      tile n-1
    ^      |<------->|  |<------>|  |<-->|
|<-------------------------------------->|
|   |            IMAGE                   |
| origin                                 |

Basic usage:

from tiling import ConstStrideTiles

tiles = ConstStrideTiles(image_size=(500, 500), tile_size=(256, 256), stride=(100, 100))

print("Number of tiles: %i" % len(tiles))
for (x, y, width, height), (out_width, out_height) in tiles:
    data = read_data(x, y, width, height, out_width, out_height)
    print("data.shape: {}".format(data.shape))

# Get a tile params at linear index:
extent, out_size = tiles[len(tiles)//2]
class tiling.const_stride.ConstStrideTiles(image_size, tile_size, stride=(1, 1), scale=1.0, origin=(0, 0), include_nodata=True)[source]

Class provides tile parameters (offset, extent) to extract data from image.

Examples

from tiling import ConstStrideTiles

tiles = ConstStrideTiles(image_size=(500, 500), tile_size=(256, 256), stride=(100, 100),
                         origin=(-100, -100),
                         scale=1.0,
                         include_nodata=True)

print("Number of tiles: %i" % len(tiles))
for extent, out_size in tiles:
    x, y, width, height = extent
    data = read_data(x, y, width, height,
                     out_width=out_size[0],
                     out_height=out_size[1])
    print("data.shape: {}".format(data.shape))
Parameters:
  • image_size (list/tuple of int) – input image size in pixels (width, height)
  • tile_size (int or list/tuple of int) – output tile size in pixels (width, height)
  • stride (list/tuple of int) – horizontal and vertical strides in pixels. Values need to be positive larger than 1 pixel. Stride value is impacted with scale and corresponds to a sliding over scaled image.
  • scale (float) – Scaling applied to the input image parameters before extracting tile’s extent
  • origin (list or tuple of int) – point in pixels in the original image from where to start the tiling. Values can be positive or negative.
  • include_nodata (bool) – Include or not nodata. If nodata is included then tile extents have all the same size, otherwise tiles at boundaries will be reduced
next()

Method to get next tile

Returns:tile data (ndarray), tile extent (list) in the original image, in pixels