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