FOSS4G NA 2024

Introducing Raster Tools
09-11, 10:30–11:00 (America/Chicago), Grand H

We introduce Raster Tools, an open source, Python package that leverages GDAL bindings and Python’s rich data processing stack to streamline raster processing and GIS work. Raster Tools enables fully parallel processing and automatically scales to available hardware.


Python has a rich, general purpose, data processing stack built on tools like Numpy, Xarray, and Dask. With the use of the GDAL bindings like Rasterio, this stack can be leveraged to carry out raster processing and GIS work. It can still be cumbersome and time consuming, however, to develop pipelines that scale from small to extremely large raster datasets.

We introduce Raster Tools, an open source, Python package for building scalable and fully parallel raster processing pipelines. Raster Tools takes care of the implementation details so that the user can focus on their model logic. Raster Tools also provides a suite of common raster processing functions including focal, zonal, clipping, and distance operations.

Raster Tools uses Dask under the hood for all operations. This allows pipelines built with Raster Tools to automatically scale. Rasters that are too large to fit in memory can easily be processed in parallel on hardware ranging from small laptops to large servers when using Raster Tools.

Xarray is used for managing data inside Raster Tools. This allows for easy interoperability with other workflows in Python using Xarray objects.

Finally, the suite of provided raster processing functions are accelerated using Numba. The result is functions that run at native compiled speeds, when computation is triggered.

This presentation will cover how Raster Tools works, its interoperability with the wider Python ecosystem, and a roadmap for its future.

The project is available on GitHub (https://github.com/UM-RMRS/raster_tools).