wiki:WKTRasterGSoC

Version 18 (modified by pracine, 13 years ago) ( diff )

--

Google Summer of Code 2011 PostGIS Raster Ideas

1) Implement write support for the PostGIS raster GDAL driver.

Mentor: Jorge Arevalo (jorge.arevalo at deimos-space.com)

A GDAL driver allows reading/writing of raster (or images) data from/to formats like TIFF, PNG or JPEG.

The current GDAL PostGIS raster driver supports reading of PostGIS rasters objects from a PostgreSQL/PostGIS database but does not support writing. The project includes proposing a driver writer design and implementing it. You will familiarize yourself with GDAL-OGR development (one of the most used open source geospatial package), geospatial imagery concepts, open source development tools and code in C.

2) Two rasters version of the ST_MapAlgebra SQL function

Mentor: Pierre Racine (pierre.racine at sbf.ulaval.ca)

Map algebra allows the creation of a new raster as a mathematical (or logical) function of one or two other rasters. e.g. raster3 = (raster1 + raster2) / 2. This is a very common raster operation in the GIS world.

A two rasters version of the ST_MapAlgebra SQL function would allow a PostGIS user to create a new raster coverage as a function of two existing one with a simple SQL query. e.g.: SELECT ST_MapAlgebra(rast1, rast2, "(rast1 + rast2) / 2") FROM coverage1, coverage2 WHERE ST_Intersects(rast1, rast2)

A one raster version of ST_MapAlgebra already exist in PostGIS. To have a complete set of operators, we now need a two raster version. This version is much more complicated to implement as it must not only takes into account nodata values but also on-the-fly reprojection of non aligned rasters and multiple possibilities for the resulting extent when the two rasters do not have the same extent. It is also possible, but complicated, to optimize the algorythm in order to fill many areas as a chunck of data instead of pixel by pixel. The project includes reviewing the proposed algorythm and implementing it. You will familiarize yourself with PostGIS development (the most used open source geospatial database), geospatial imagery concepts, open source development tools and code in C and PL/pgSQL.

3) Implement a set of geometry to raster functions

Mentor: Pierre Racine (pierre.racine at sbf.ulaval.ca)

With the ability to store geometries and rasters in postgis, there is now a gap to fill by implementing geometry to raster algorithms to allow transition from one type to the other.

1) ST_AsRaster takes a geometry and converts it to a raster.

2) ST_Interpolate takes a point (e.g. filtered lidar points) or line geometry (e.g. digitized topo lines) coverage to interpolate pixels values between geometries. There are numerous methods of interpolation and it would nice to have a generic method so we can use all of them, but we’re first targeting bilinear interpolation, which will fill most needs and lay the ground for other methods. For reference, you might want to check an implementation in Numerical Recipes (chap. 3) or in CGAL. Converting a point table to a TIN and then to a raster is also a way to go. A Delaunay triangulation can be produced with the Triangle library (copyright issues should be checked first).

3) ST_AsDensity takes a point or line geometry coverage and first assign a count of those features to every pixels of a raster coverage and then apply a smoothing filter (using the existing one raster version of neighbour ST_MapAlgebra). Density functions allow summarizing or simplifying a point or line dataset.

Want more details? Check the OSGeo GSoC 2011 page or write to the PostGIS developer list.

Back to the PostGIS raster project Home Page.

Note: See TracWiki for help on using the wiki.