Re: [gdal-dev] Raster/vector intersections in PostGIS WKT Raster

Ivan Lucena ivan.lucena at pmldnet.com
Wed Jun 30 08:50:20 EDT 2010


Hi Christian,

I am sorry to spoil this thread. We are suppose to be talking about WKT Raster, but as you mentioned GeoRaster on gdal-dev list I just have to ask you if you have considered or tested using GDAL/GeoRaster. Did you?

There is an ease way to do that, and it works for OSSIM, QGIS, ArcGIS, GRASS or whatever software that uses GDAL. You can build the GDAL/GeoRaster driver as a plugin (you should have ORACLE_HOME environment variable).

% cd <gdal root>/frmts/georaster
% make plugin

OR in Windows

% cd <gdal root>\frmts\georaster
% nmake -f makefile.vc plugin

Copy that plugin to where the GDAL shared library can find it (the subfolder gdalplugins or a folder pointed by GDAL_DRIVER_PATH) and use a GeoRaster object as your raster data source. You can either create a VRT to point to a GeoRaster object or use the GDAL subdataset identification string as your raster data source, e.g. "geor:user/pwd at db,tab,col,where" or "geor:user/pwd at db,rdt,id". 

That technique works for MapServer.

Now, going back to the WKT Raster. I have loaded Raster on PostGIS before using TerraLib and I believe there is a very large project called TerraAmazon using that combination. In terms of query and functionality I know that TerraLib also does raster/vector intersection too but I am wondering how the overall raster performance comparison looks like; loading time, query time, limitations, etc.

Great job!

Regards,

Ivan

>  -------Original Message-------
>  From: christian.mueller at nvoe.at
>  To: Ivan Lucena <ivan.lucena at pmldnet.com>
>  Cc: Pierre Racine <Pierre.Racine at sbf.ulaval.ca>, gdal-dev at lists.osgeo.org <gdal-dev at lists.osgeo.org>
>  Subject: Re: [gdal-dev] Raster/vector intersections in PostGIS WKT Raster
>  Sent: Jun 30 '10 05:42
>  
>  Hi, the documentation for the GeoRaster geotools plugin is here
>  
>  http://docs.codehaus.org/display/GEOTDOC/Oracle+GeoRaster+Plugin
>  
>  For geoserver look here
>  
>  http://docs.geoserver.org/stable/en/user/data/oraclegeoraster.html
>  
>  Technically , I investigated int the Oralce Java API.   2 problems occurred.
>  
>  1) we cannot redistribute the oracle jar files (license issues). As a  
>  consequence, the module would have broken the geotools build or I  
>  would have to code the whole stuff using  the java reflection api.
>  
>  2)  Even worse, the GeoRaster Java API is not stable, the API for  
>  10.1, 10.2 and 11.x differ making it necessary to write a plugin  
>  version for each Oracle version.
>  
>  At the end, I kept it simple doing the whole stuff using Oracle SQL  
>  syntax which should be stable.
>  
>  
>  
>  
>  
>  
>  Quoting Ivan Lucena <ivan.lucena at pmldnet.com>:
>  
>  > Christian,
>  >
>  > How did you added support for Oracle GeoRaster on  
>  > GeoTools/GeoServer? Did you use the Oracle GeoRaster Java API or  
>  > GDAL? Is that available?
>  >
>  > I am looking forward to use it.
>  >
>  > Regards,
>  >
>  > Ivan
>  >
>  >
>  >>  -------Original Message-------
>  >>  From: christian.mueller at nvoe.at
>  >>  To: Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
>  >>  Cc: gdal-dev at lists.osgeo.org <gdal-dev at lists.osgeo.org>
>  >>  Subject: Re: [gdal-dev] Raster/vector intersections in PostGIS WKT Raster
>  >>  Sent: Jun 29 '10 11:46
>  >>
>  >>  Hi, superb job. Congratulations.
>  >>
>  >>  I am a geotools/geoserver developer and one of my jobs is fetching  
>  >>  image tiles  or the corresponding pyramid tiles from jdbc data  
>  >>  sources. Some weeks ago, I added support for Oracle Georaster and I  
>  >>  want to support WKT Georaster too.
>  >>
>  >>  wktraster makes it quite simple to achieve this. Is there any database  
>  >>  layout you recommend. (A table for the image and one for each pyramid,  
>  >>  or put all the tiles into one table having an attribute "level",.....).
>  >>
>  >>  I have seen "gdal2wktraster.py", is this the recommended way to import  
>  >>  tiles into postgis ?
>  >>  What is the table layout created/needed by this utility ?
>  >>
>  >>  Cheers
>  >>  Christian
>  >>
>  >>
>  >>
>  >>  Quoting Pierre Racine <Pierre.Racine at sbf.ulaval.ca>:
>  >>
>  >>  > Hi everybody,
>  >>  >
>  >>  > I'm pleased to announce that you can now do intersections between  
>  >>  > rasters and geometries very much like you used to do  
>  >>  > geometry/geometry intersections in PostGIS. For this, PostGIS WKT  
>  >>  > Raster introduces two new functions to PostGIS:  
>  >>  > ST_Intersects(geometry, raster, band) and ST_Intersection(geometry,  
>  >>  > raster, band).
>  >>  >
>  >>  > As its geometry/geometry sister, ST_Intersects(geometry, raster,  
>  >>  > band) returns TRUE if the withvalue area of a raster or a raster  
>  >>  > tile (nodata value are ignored) intersects a geometry and  
>  >>  > ST_Intersection(geometry, raster, band) returns the geometry/value  
>  >>  > set of geometries representing the intersection between the geometry  
>  >>  >  and each polygonized group of pixel sharing a same value from the  
>  >>  > raster and its associated value. Example:
>  >>  >
>  >>  > SELECT polyid,
>  >>  >        (ST_Intersection(the_geom, rast)).geom,
>  >>  >        (ST_Intersection(the_geom, rast)).val
>  >>  > FROM my_polygons, srtm_tiled
>  >>  > WHERE ST_Intersects(rast, the_geom)
>  >>  >
>  >>  > or, a bit more complex, but much faster and returning the same result:
>  >>  >
>  >>  > SELECT polyid, (gv).geom, (gv).val
>  >>  > FROM (SELECT polyid, ST_Intersection(the_geom, rast, 1) AS gv
>  >>  >      FROM my_polygons, srtm_tiled
>  >>  >      WHERE ST_Intersects(rast, the_geom)) foo
>  >>  >
>  >>  > These functions works with any kind of geometry so you can intersect  
>  >>  >  any road, river, polygons or point layer with your favorite  
>  >>  > elevation or land cover raster of any resolution and any size. You  
>  >>  > can also load any number of raster in the database with one command  
>  >>  > line to constitute a unique table raster coverage of any shape (no  
>  >>  > matter if your group of raster do not form a rectangular coverage).
>  >>  >
>  >>  > You will find a complete tutorial on how to use those two new  
>  >>  > functions here:  
>  >>  > http://trac.osgeo.org/postgis/wiki/WKTRasterTutorial01. A reference  
>  >>  > is available here:  
>  >>  >  
>  >> http://postgis.refractions.net/documentation/manual-svn/RT_reference.html  
>  >>  > and chapter 13 of "PostGIS in Action" is also a very good  
>  >>  > introduction to WKT Raster.
>  >>  >
>  >>  > Compilation and installation info are available in the project home  
>  >>  > page: http://trac.osgeo.org/postgis/wiki/WKTRaster
>  >>  >
>  >>  > These features are the result of two years of collaboration between  
>  >>  > many people and companies interested in bringing raster into  
>  >>  > PostGIS. I would like to thanks particularly Steve Cumming who  
>  >>  > initially made all this possible, Sandro Santilli who wrote the base  
>  >>  >  code, Mateusz Loskot who wrote the Python loader, Jorge Arevalo who  
>  >>  >  wrote the GDAL driver and ST_DumpAsPolygons(), Regina and Leo Obe  
>  >>  > who are doing so many things and believed in the project from the  
>  >>  > beginning by adding a chapter about WKT Raster in "PostGIS in  
>  >>  > Action" and also David Zwarg who wrote most of the setter functions.
>  >>  >
>  >>  > This is the first step toward a first complete raster/vector  
>  >>  > analysis and manipulation SQL API. We hope to make of PostGIS with  
>  >>  > WKT Raster the most powerful and complete GIS analysis and  
>  >>  > manipulation high level language ever (!!!). WKT Raster should  
>  >>  > normally be totally integrated into PostGIS in PostGIS release 2.0.  
>  >>  > Upcoming functions should include ST_Reclass, ST_Clip, ST_AsRaster,  
>  >>  > ST_Resample.
>  >>  >
>  >>  > Let us know your need and your experience with WKT Raster.
>  >>  >
>  >>  > Thanks,
>  >>  >
>  >>  > Pierre Racine
>  >>  >
>  >>  > _______________________________________________
>  >>  > gdal-dev mailing list
>  >>  > gdal-dev at lists.osgeo.org
>  >>  > http://lists.osgeo.org/mailman/listinfo/gdal-dev
>  >>  >
>  >>
>  >>
>  >>
>  >>  ----------------------------------------------------------------
>  >>  This message was sent using IMP, the Internet Messaging Program.
>  >>
>  >>
>  >>  _______________________________________________
>  >>  gdal-dev mailing list
>  >>  gdal-dev at lists.osgeo.org
>  >>  http://lists.osgeo.org/mailman/listinfo/gdal-dev
>  >>
>  >
>  
>  
>  
>  ----------------------------------------------------------------
>  This message was sent using IMP, the Internet Messaging Program.
>  
>  
>  


More information about the gdal-dev mailing list