Brussels / 3 & 4 February 2018


Pronto Raster: A C++ library for Map Algebra

The Pronto Raster library is a C++ library for Map Algebra operations. Map Algebra is a long established conceptual framework for geographical data analysis. It is a versatile and highly generic framework, classifying local, focal, and zonal operations. However existing libraries and tools that implement Map Algebra operations are not as generic and instead of a limited set of specific functions. The Pronto Raster library aims to overcome this and provides an efficient computational framework that allows efficient implementation of local, focal and zonal operations using user-specified functions.

The library uses GDAL to access and write raster data. A central concept of the library is the Raster, which is essentially a Range that iterates over the cells in a raster of values. The core focal and zonal operations produce Expression Templates that model the Raster concept. Therefore the outcome of zonal or focal operations on one or more Rasters is another Raster that does not hold data itself but refers to the data in the input rasters and combines the data lazily once the outcome Raster is iterated over. It thus becomes possible to combine and nest operations on rasters without creating temporary files. An additional benefit is that it is trivial to apply functions to only compute a subsection of the output Raster, which in turn makes the library very amenable to future parallelization.


Alex Hagen-Zanker