Brussels / 3 & 4 February 2018


Blink Raster: A C++ library for Map Algebra

The Blink 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, zonal and global 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 Blink Raster library aims to overcome this and provides an efficient computational framework that allows local, focal, zonal and global operations using user-specified functions.

The library uses GDAL to access and write raster data. A central concept the library is the Raster, which is essentially a Range that iterates over the cells in a matrix of values. The core focal and zonal operations produce Expression Templates that model the Range concept. Therefore the outcome of zonal or focal operations on one or more Rasters is another Raster that does not hold data itself but directs 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 parallellization.


Alex Hagen-Zanker