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
)