A rio-tiler plugin to create mosaic tiles.
Project description
rio-tiler-mosaic
A rio-tiler plugin for creating tiles from multiple observations.
Install
$ pip install rio-tiler-mosaic
Or
$ git clone http://github.com/cogeotiff/rio-tiler-mosaic
$ cd rio-tiler-mosaic
$ pip install -e .
Rio-tiler + Mosaic
The goal of this rio-tiler plugin is to create tiles from multiple observations.
Because user might want to choose which pixel goes on top of the tile, this plugin comes with 5 differents pixel selection algorithms:
- First: takes the first pixel received
- Highest: loop though all the assets and return the highest value
- Lowest: loop though all the assets and return the lowest value
- Mean: compute the mean value of the whole stack
- Median: compute the median value of the whole stack
API
mosaic_tiler(assets, tile_x, tile_y, tile_z, tiler, pixel_selection=None, chunk_size=5, kwargs)
Inputs:
- assets : list, tuple of rio-tiler compatible assets (url or sceneid)
- tile_x : Mercator tile X index.
- tile_y : Mercator tile Y index.
- tile_z : Mercator tile ZOOM level.
- tiler: Rio-tiler's tiler function (e.g rio_tiler.landsat8.tile)
- pixel_selection : optional pixel selection algorithm (default: "first").
- kwargs: Rio-tiler tiler module specific otions.
Returns:
- tile, mask : tuple of ndarray Return tile and mask data.
Examples
from rio_tiler.main import tile as cogTiler
from rio_tiler_mosaic.mosaic import mosaic_tiler
from rio_tiler_mosaic.methods import defaults
assets = ["mytif1.tif", "mytif2.tif", "mytif3.tif"]
tile = (1000, 1000, 9)
x, y, z = tile
# Use Default First value method
mosaic_tiler(assets, x, y, z, cogTiler)
# Use Highest value: defaults.HighestMethod()
mosaic_tiler(
assets,
x,
y,
z,
cogTiler,
pixel_selection=defaults.HighestMethod()
)
# Use Lowest value: defaults.LowestMethod()
mosaic_tiler(
assets,
x,
y,
z,
cogTiler,
pixel_selection=defaults.LowestMethod()
)
The MosaicMethod interface
the rio-tiler-mosaic.methods.base.MosaicMethodBase class defines an abstract
interface for all pixel selection methods allowed by rio-tiler-mosaic. its methods and properties are:
is_done: property, returns a boolean indicating if the process is done filling the tiledata: property, returns the output tile and mask numpy arraysfeed(tile: numpy.ma.ndarray): method, update the tile
The MosaicMethodBase class is not intended to be used directly but as an abstract base class, a template for concrete implementations.
Writing your own Pixel Selection method
The rules for writing your own pixel selection algorithm class are as follows:
- Must inherit from MosaicMethodBase
- Must provide concrete implementations of all the above methods.
See rio_tiler_mosaic.methods.defaults classes for examples.
Example
See /example
Contribution & Development
Issues and pull requests are more than welcome.
dev install
$ git clone https://github.com/cogeotiff/rio-tiler-mosaic.git
$ cd rio-tiler-mosaic
$ pip install -e .[dev]
Python3.6 only
This repo is set to use pre-commit to run flake8, pydocstring and black ("uncompromising Python code formatter") when commiting new code.
$ pre-commit install