[gdal-dev] new GDAL driver: how to proceed?

Peter Baumann p.baumann at jacobs-university.de
Mon Aug 2 14:50:46 EDT 2010


Dear GDAL maintainers,

we have written a GDAL driver to add the rasdaman database as another 
"data format" that GDAL can read, and we would like to contribute this 
to the GDAL project.

Rasdaman is a raster database middleware offering an SQL-style query 
language on multi-dimensional arrays of unlimited size, stored in a 
relational database. See www.rasdaman.org for the open-source code, 
documentation, etc. Currently rasdaman is under consideration for OSGeo 
incubation.

In our driver implementation, GDAL connects to rasdaman by defining a 
query template which is instantiated with the concrete subsetting box 
upon every access. This allows to deliver 2-D cutouts from n-D data sets 
(such as hyperspectral satellite time series, multi-variable climate 
simulation data, ocean model data, etc.). In particular, virtual imagery 
can be offered which is derived on demand from ground truth data. Some 
more technical details are given below [1].

The code compiles smoothly with the latest GDAL code and is undergoing 
final tests and documentation. For a clean integration with the GDAL 
code base we are asking for further advice. In particular, our Makefile 
structure needs some fine tuning, we need to know intended use of some 
parameters.

We hope that this contribution is of value to the community, any 
comments are highly appreciated.

Thanks in advance for your assistance,
Peter & Constantin


[1] The connect string syntax follows the WKT Raster pattern and goes 
like this:
     rasdaman:
         query='select a[$x_lo:$x_hi,$y_lo:$y_hi] from MyImages as a'
         tileXSize=512 tileYSize=512
         [host='localhost'] [port=7001] [database='RASBASE']
         [user='rasguest'] [password='rasguest']

The rasdaman query language (rasql) string in this case only performs 
subsetting. Upon image access by GDAL, the $ parameters are substituted 
by the concrete bounding box computed from the input tile coordinates.

However, the query provided can include any kind of processing, as long 
as it returns something 2-D. For example, this determines the average of 
red and near-infrared pixels from the oldest image time series:
         query='select ( a.red+a.nir ) /2 [$x_lo:$x_hi,$y_lo:$y_hi, 0 ] 
from SatStack as a'

The further key-value pair parameters in brackets are optional, their 
defaults are listed. BTW, the default user has read-only access to the 
database as per rasdaman convention.

As rasdaman supports concurrent access with parallel query evaluation, 
any number of such connections can be opened.

-- 
Dr. Peter Baumann
  - Professor of Computer Science, Jacobs University Bremen
    www.faculty.jacobs-university.de/pbaumann
    mail: p.baumann at jacobs-university.de
    tel: +49-421-200-3178, fax: +49-421-200-493178
  - Executive Director, rasdaman GmbH Bremen (HRB 147737)
    www.rasdaman.com, mail: baumann at rasdaman.com
    tel: 0800-rasdaman, fax: 0800-rasdafax, mobile: +49-173-5837882
"Si forte in alienas manus oberraverit hec peregrina epistola incertis ventis dimissa, sed Deo commendata, precamur ut ei reddatur cui soli destinata, nec preripiat quisquam non sibi parata." (mail disclaimer, AD 10xx)





More information about the gdal-dev mailing list