import rastereasy

Split images into tiles (useful for generating training data)

You can open an image and split it using the function rastereasy.im2tiles

help(rastereasy.im2tiles)
Help on function im2tiles in module rastereasy.rastereasy:

im2tiles(source_name, dest_name, nb_row, nb_col, overlap=0, type_name='sequence', verbose=0, name_tile=None)
    Split a geotif image into tiles.

    Parameters
    ----------
    source_name : str
        A tif file to be split.
    dest_name : str
        Destination directory for tiled images.
    nb_row : int
        Number of rows in each tiled image.
    nb_col : int
        Number of columns in each tiled image.
    overlap : int, optional
        Overlap between tiles in pixels. Default is 0.
    type_name : str, optional
        Naming convention for output tiles. Either "sequence" or "coord".
        Default is "sequence".
    verbose : int, optional
        If 1, prints information about processed images. Default is 0.
    name_tile : str, optional
        Generic name for output tiles. If None, uses source_name without extension.
        Default is None.

    Raises
    ------
    ValueError
        If type_name is not "sequence" or "coord".

    Examples
    --------
    >>> im2tiles(
    >>>      source_name="input.tif",
    >>>      dest_name="/path/to/destination",
    >>>      nb_row=256,
    >>>      nb_col=256,
    >>>      overlap=10,
    >>>      type_name="sequence")

1) Split an image in (512 x 512) windows with an overlap of 10 pixels and name snippets sequentially

# name of the image to split
name_im='./data/demo/sentinel.tif'
# name of the folder to store image
name_folder_snippets = './data/snippets_1'
size_row  = 128
size_col = 128
overlap = 10
rastereasy.im2tiles(name_im, name_folder_snippets, size_row, size_col, overlap=overlap)
creation of folder  ./data/snippets_1

This will create snippets entitled sentinel_tiles_00001.tif, sentinel_tiles_00002.tif, … (format : name_of_image_tiles_number.tif)

2) Split an image in (384 x 512) windows with an overlap of 0 pixels and name snippets with coordinates

# name of the image to split
name_im='./data/demo/sentinel.tif'
# name of the folder to store image
name_folder_snippets = './data/snippets_2'
size_row  = 384
size_col = 512
overlap = 0
rastereasy.im2tiles(name_im, name_folder_snippets, size_row, size_col, overlap=overlap,type_name="coord")

This will create snippets entitled sentinel_tiles_00000-00000.tif, sentinel_tiles_00000-00384.tif, … (format : name_of_image_coord_i-coord_j.tif)

3) Split an image in (32 x 16) windows with an overlap of 4 pixels and name snippets with coordinates and new generic name

# name of the image to split
name_im='./data/demo/sentinel.tif'
# name of the folder to store image
name_folder_snippets = './data/snippets_3'
size_row  = 32
size_col = 16
overlap = 4
name_tile = 'mytiles' # generic name
rastereasy.im2tiles(name_im, name_folder_snippets, size_row, size_col, overlap=overlap,type_name="coord",name_tile=name_tile)

This will create snippets entitled mytiles_tiles_00043-00030.tif, mytiles_tiles_00043-00064.tif, … (format : name_tile_coord_i-coord_j.tif)