rasdaman ("raster data manager") is an Array DBMS, that is: a Database Management System which adds capabilities for storage and retrieval of massive multi-dimensional arrays, such as sensor, image, simulation, and statistics data. A frequently used synonym to arrays is raster data, such as in 2-D raster graphics; this actually has motivated the name rasdaman. However, rasdaman has no limitation in the number of dimensions - it can serve, for example, 1-D measurement data, 2-D satellite imagery, 3-D x/y/t image time series and x/y/z exploration data, 4-D ocean and climate data, and even beyond spatio-temporal dimensions.

History

In 1989, Peter Baumann started a research on database support for images, then at Fraunhofer Computer Graphics Institute. Following an in-depth investigation on raster data formalizations in imaging, in particular the AFATL Image Algebra, he established a database model for multi-dimensional arrays, including a data model and declarative query language. pioneering the field of Array Databases. Today, multi-dimensional arrays are also known as Data Cubes.

Rasdaman

At TU Munich, in the EU funded basic research project RasDaMan, a first prototype was established, on top of the O2 object-oriented DBMS, and tested in Earth and Life science applications. Over further EU funded projects, this system was completed and extended to support relational DBMSs. A dedicated research spin-off, rasdaman GmbH, was established to give commercial support in addition to the research which subsequently has been continued at Jacobs University. Since then, both entities collaborate on the further development and use of the rasdaman technology.

Rasdaman

Concepts

Data model

Based on an array algebra specifically developed for database purposes, rasdaman adds a new attribute type, array, to the relational model. As this array definition is parametrized it constitutes a second-order construct or template; this fact is reflected by the second-order functionals in the algebra and query language.

Rasdaman

For historical reasons, tables are called collections, as initial design emphasized an embedding into the object-oriented database standard, ODMG. Anticipating a full integration with SQL, rasdaman collections represent a binary relation with the first attribute being an object identifier and the second being the array. This allows the establishment of foreign key references between arrays and regular relational tuples.

Raster Query Language

The rasdaman query language, rasql, embeds itself into standard SQL and its set-oriented processing. On the new attribute type, multi-dimensional arrays, a set of extra operations is provided which all are based on a minimal set of algebraically defined core operators, an array constructor (which establishes a new array and fills it with values) and an array condenser (which, similarly to SQL aggregates, derives scalar summary information from an array). The query language is declarative (and, hence, optimizable) and safe in evaluation - that is: every query is guaranteed to return after a finite number of processing steps.

The rasql query guide provides details, here some examples may illustrate its use:

"From all 4-D x/y/z/t climate simulation data cubes, a cutout which contains all in x, a y extract between 100 and 200, all available along z, and a slice at position 42 (effectively resulting in a 3-D x/y/z cube)": select c[ *:*, 100:200, *:*, 42 ] from ClimateSimulations as c

"In all Landsat satellite images, suppress all non-green areas": select img * (img.green > 130) from LandsatArchive as img

Note: this is a very naive phrasing of vegetation search; in practice one would use the NDVI formula, use null values for cloud masking, and several more techniques.

"All MRI images where, in some region defined by the bit masks, intensity exceeds a threshold of 250": select img from MRI as img, Masks as m where some_cells( img > 250 and m )

"A 2-D x/y slice from all 4-D climate simulation data cubes, each one encoded in PNG format": select png( c[ *:*, *:*, 100, 42 ] ) from ClimateSimulations as c