conference logo

Playlist "FOSS4G 2019"

Mapchete - tile-based geodata processing

Joachim Ungar

Mapchete (https://github.com/ungarj/mapchete) is a tool written in Python which helps processing large amounts of geodata such as global high resolution datasets. It does so by executing a user-defined Python function on smaller chunks of data (tiles).

The standard tiling schemes follow the well-known tile pyramid schemes used by WMTS which also enable mapchete to let the user easily preview process outputs using a built-in development server (Flask) hosting an OpenLayers page.

By processing large areas through their much smaller tiles or metatiles, possible memory errors can be avoided. Furthermore, tiles can be processed on multiple CPU cores in parallel which speeds up the processing time.

All geospatial data (i.e. raster and feature data) are internally handled and exposed to the user-defined process function either as NumPy arrays (raster) or GeoJSON-like dictionaries (features) which can easily be edited with well-known Python packages like shapely or scipy.

For I/O operations mapchete makes heavy use of rasterio (https://github.com/mapbox/rasterio) and Fiona (https://github.com/Toblerity/Fiona). It can read data formats supported by these packages and can currently write outputs into WMTS-like tile directories of GeoTIF

None