Interface for Spatial Operations in Geographical Database

Interface for Spatial Operations in Geographical Database

Interface for spatial operations in geographical database Karine Reis Ferreira João Argemiro Carvalho Paiva Gilberto Câmara GeoInfo2003 Summary • Introduction – New generation of GIS and spatial DBMS – Challenges – TerraLib • Goal • API for spatial operations – Vector and raster data • Conclusion and future works GeoInfo 2003 New generation of GIS • DBMS (Database Management System) to manage spatial data [Rigaux et al, 2002] – Object-relational DBMS and spatial extension • Transition from the monolithic systems to Spatial Information Appliances [Egenhofer, 1999] – Small GIS tailored to specific user needs • Modular and extensible [Voisard and Schweppe,1997] – Support for addition of independent autonomous systems GeoInfo 2003 GIS and DBMS • Use of DBMS to store, manipulate and manage spatial data (descriptive and geometrical data) – Relational DBMS ° Scheme ° Binary long type (BLOB) – Object-relational DBMS GIS ° Spatial data types defined by spatial extensions attributes DBMS GeoInfo 2003 Spatial Extension • Extends object-relational DBMS for treat spatial data: – Data Model: spatial data types (SDTs) – Query language: operations and query on SDTs – Spatial indexing methods (ex. R-Tree) and spatial join • DBMS + spatial extension = Spatial DBMS • Oracle Spatial, IBM DB2 Spatial Extender, Informix Spatial Datablade, PostGIS (PostgreSQL) and Spatial Extension in MySQL (release 4.1) GeoInfo 2003 Spatial Extension • Oracle Spatial: – Spatial data type: SDO_GEOMETRY – Operators and functions ° SDO_RELATE, SDO_BUFFER, SDO_AREA – Spatial indexing: R-Tree e QuadTree CREATE TABLE STATES ( state_id NUMBER, SELECT ES.state_id name VARCHAR2(100) FROM STATES ES, RIVERS RI geometry MDSYS.SDO_GEOMETRY); WHERE RI.gid = 234 AND SDO_RELATE(ES.geometry, RI.geometry, ‘mask=CONTAINS querytype=WINDOW’)= ’TRUE’; GeoInfo 2003 Challenges • Develop small GIS that: – supports different DBMS, relational and object- relational – treats the differences between spatial DBMS – extends necessary spatial data types for geographical applications, ex. raster data – provides spatial operations on spatial data types stored in different DBMS GeoInfo 2003 TerraLib • Open source GIS software library • Provides support for the development of: – Small GIS ° DBMS for manage spatial data • Support for different DBMS – Oracle, Oracle Spatial, MySQL, SQL Server, PostgreSQL GeoInfo 2003 TerraLib • Interface with DBMS TeDatabase TerraLib ADO Driver MySQL Driver OracleSpatial Driver PostgreSQL Driver MySQL Oracle PostgreSQL Access Spatial SQLServer GeoInfo 2003 TerraLib • TerraLib data model TeDatabase createPolygonTable(tableName) MySQL Driver OracleSpatial Driver MySQL Oracle Spatial GeoInfo 2003 Goal Development of a generic programming interface or API (Application Programming Interface) for spatial operations in geographical database in the TerraLib environment. GeoInfo 2003 Challenges • Develop small GIS that: – supports different DBMS, relational and object- relational – treats the differences between spatial DBMS – extends necessary spatial data types for geographical applications, ex. raster data – provides spatial operations on spatial data types stored in different DBMS GeoInfo 2003 API for spatial operations • Function set for spatial operations on geographical data stored in DBMS • Generic API: supports relational and object-relational DBMS • Explores spatial extension functionalities DBMS TerraLib Oracle Access Spatial Spatial Spatial Operations Operations Geographic API for Application Spatial MySQL Operations Postgre SQL GeoInfo 2003 API for spatial operations • Vector and raster data Boolean Scalar Spatial Unary Buffer calculateLength (VD) - ConvexHull calculateArea Centroid Binary Intersection SpatialRelation (VD + VD) calculateDistance Union NearestNeighbors Difference/XOr Binary - Zonal Mask (VD + RD) VD: Vector Data RD: Raster Dada GeoInfo 2003 API – Vector data • DBMS without spatial extension – TeDatabase (1) Get geometries from database (2) Use TerraLib functions to compute operations SELECT * TerraLib FROM geomTable WHERE sigla= “MG” DBMS (1) calculateArea (“MG”) blob TePolygon area (2) double Area (TePolygon poly) GeoInfo 2003 API – Vector data • DBMS with spatial extension – Oracle Spatial Driver ° Use operators and functions of the spatial extension with SQL language ° Operations are computed by spatial DBMS SELECT SDO_GEOM.SDO_AREA( TerraLib geomTable, spatial_data, ...) FROM geomTable WHERE sigla= “MG” DBMS calculateArea (“MG”) Oracle Spatial area GeoInfo 2003 API – Vector data • SpatialRelation Operation – Returns the geographical objects which present a specific topological relation – Topological relation [Egenhofer et al, 1994] ° TeDisjoint ° TeContains ° TeTouches ° TeIntersects ° TeCrosses ° TeEquals ° TeWithin ° TeCovers ° TeCoveredBy ° TeOverlap GeoInfo 2003 API – Vector data • SpatialRelation Operation – DBMS without spatial extension (1) Gets geometries from database based in their minimal boundary rectangle (MBR) (2) Uses TerraLib topological functions GeoInfo 2003 API – Vector data • SpatialRelation Operation – DBMS without spatial extension (1) Gets geometries from database based in their minimal boundary rectangle (MBR) (2) Uses TerraLib topological functions GeoInfo 2003 API – Vector data • SpatialRelation Operation – Oracle Spatial Driver ° Builds a SQL query using the SDO_RELATE operator ° Operation computed by spatial extension SELECT geomTable1.* FROM state_polygons geomTable1, state_polygons geomTable2 WHERE geomTable2.object_id = 'MG' AND SDO_RELATE(geomTable1.spatial_data, geomTable2.spatial_data, 'mask = TOUCH querytype=WINDOW')='TRUE' GeoInfo 2003 API – Vector data • Buffer Operation – Generates a new geometry based on a distance to a specific geographical object – Oracle Spatial Driver SELECT SDO_GEOM.SDO_BUFFER(g.spatial_data, m.diminfo, 1.0) FROM test_Line g, USER_SDO_GEOM_METADATA m WHERE m.table_name = 'test_Line' AND m.column_name = 'spatial_data' AND object_id = '17' Oracle Spatial GeoInfo 2003 API – Vector data • Buffer Operation – Generates a new geometry based on a distance to a specific geographical object – Oracle Spatial Driver SDO_GEOMETRY (2003, NULL, NULL, SDO_ELEM_INFO_ARRAY (1, 1005, 8, 1, 2, 2, 5, 2, 1, ..., 9, 2, 2), SDO_ORDINATE_ARRAY (18, 17, 19, 18, 18, 19, 16.4142136, 19, 14.7071068, 20.7071068, 14, Oracle 21, ..., 20.7071068) Spatial GeoInfo 2003 API – Vector data • Buffer Operation – SDO_GEOMETRY ° Compound polygon: straight line segments (2 points) and circular arcs (3 points). – TePolygon ° straight line segments (2 points) GeoInfo 2003 API – Vector data • Buffer Operation – Generates a TePolygon from a SDO_GEOMETRY ° TeGenerateArc function ∑ Generates an arc through 3 points pt3 pt2 s ptn pt1 r ? C(x0, y0) GeoInfo 2003 API – Raster Data • Zonal Operation • Calculates statistics of a region or zone of a raster data GeoInfo 2003 API – Raster Data • Zonal Operation • Calculates statistics of a region or zone of a raster data GeoInfo 2003 API – Raster Data • Mask Operation – Clips a raster data using a mask GeoInfo 2003 API – Raster Data • Mask Operation – Clips a raster data using a mask GeoInfo 2003 API – Raster Data • Mask Operation – Clips a raster data using a mask GeoInfo 2003 API – Raster Data • Mechanism to traverse a raster data only in a region inside or outside a specific polygon • Developed: – Iterator concept on TeRaster structure ° IteratorPoly – Route strategies GeoInfo 2003 API – Raster Data • Iterator is an abstraction of a pointer to a sequence [Stroustrup, 1999] • Generic programming: disconnect data structures from algorithms Algorithm TeCalculateStatistics(itBegin, itEnd, stat) TeRaster::iteratorPoly itBegin = raster->begin(poly, TeBoxPiIn) Iterator TeRaster::iteratorPoly itEnd = raster->end(poly, TeBoxPixelIn) Data TeRaster* raster Structure GeoInfo 2003 Conclusions • Spatial operations are essential in a geographical application • The developed API: – Provides spatial operations on a high level of abstraction for the developers of geographical application – Explores a new generation of object-relational DBMS that manage geographical data GeoInfo 2003 Future Works • Implement other operations on raster data: – Mathematical Operations – Reclassify – Slice – Weight • Extend the API to support new spatial extensions – Spatial Extension in MySQL (release 4.1) • Use future resources of spatial extensions to treat raster data (ex. Oracle Spacial) GeoInfo 2003.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    33 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us