Simple Feature Access
Autor: Dr. Joan Nunes. Universitat Autònoma de Barcelona
Promotor: Institut Cartogràfic de Catalunya, 2013
Simple feature access (SFA), de vegades anomenat només Simple Features, és l'especificació estàndard d'Open Geospatial Consortium, adoptada també per ISO amb el nom de ISO/TC21119125: Geographic information - Simple Feature Access (SFA) (ISO/TC211, 2003b), que descriu l'arquitectura comuna per a implementar la geometria d'elements simples en dues dimensions en bases de dades espacials (OGC, 2011a). En particular, per a la implementació de bases de dades espacials mitjançant l'opció del llenguatge SQL ampliat espacialment (OGC, 2011b).
D'acord amb el model Simple Feature Access, un element geomètric en dues dimensions es considera simple quan no presenta interseccions amb ell mateix, d'aquí el nom del model. D'altra banda, els elements geomètrics de l'estàndard Simple Feature Access es poden considerar elements simples en comparació amb els d'altres models de dades vectorials com per exemple el model vectorial topològic, en el sentit que cada element és independent de la resta i no emmagatzema informació topològica sobre relacions amb altres elements. En aquest sentit, la geometria dels objectes espacials de l'estàndard Simple Feature Access és comparable, amb algunes diferències, a la dels elements geomètrics d'altres formats vectorials simples (per exemple, el popular format shapefile o el dels elements de les geobases de dades d'ArcGIS, ambdós d'ESRI), en el ben entès que els models de dades en conjunt són diferents. Simple Feature Access és un model de dades exclusivament per a dades espacials de tipus vectorial.
Elements simples segons l'estàndard Simple Feature Access. Els casos a) i c) són elements simples perquè les polilínies oberta o tancada (LineStrings, segons la terminologia del model Simple Feature Access) no intersequen amb si mateixes. Els casos b) i d) no són elements simples perquè presenten intersecció i per tant no són geometries vàlides en el model estàndard Simple Feature Access. Font: OGC, 2011a
Simple Feature Access especifica un model de dades estàndard orientat a objectes, que defineix l'emmagatzematge comú per a la geometria de les dades espacials, mitjançant formats de text (well-known text, WKT) o binari (well-known binary, WKB), juntament amb propietats, mètodes i predicats espacials, basats en el model de nou interseccions estès dimensionalment (DE-9IM), que són aplicables als objectes espacials reconeguts dins del tipus geometria (punt, línia, polígon, multipunt, multilínia, multipolígon, etc.). Simple Featue Access defineix a més un conjunt d'operadors espacials per a derivar o construir nous objectes espacials a partir dels emmagatzemats. El model de dades estàndard Simple Feature Access troba la seva implementació natural en sistemes orientats a objectes (per exemple, OLE/COM o CORBA) i encara més especialment en bases de dades espacials per mitjà de sistemes de gestió de bases de dades relacionals orientades a objectes que, gràcies a l'orientació a objectes, permeten l'ús de l'extensió espacial del llenguatge SQL. De fet, aquesta última és l'opció actualment adoptada per Open Geospatial Consortium (OGC, 2011b), que ha abandonat, o si més no ha deixat en suspens i fora de l'última versió de l'especificació, les opcions d'implementació mitjançant OLE/COM i CORBA.
SUMARI
- Origen
- Model de dades orientat a objectes
- Representació de la geometria
- Mètodes d'operacions espacials
- Implementacions
- Temes relacionats
- Referències
- Lectures recomanades
Origen
L'interès per definir i establir un model de dades estàndard i interoperable per a la informació geoespacial és una de les principals motivacions per a la creació tant d'Open Geospatial Consortium (OGC, inicialment OpenGIS Consortium) com del comitè tècnic ISO/TC 211 Geographic Information / Geomatics d'International Organization for Standardization (ISO) a mitjan dècada de 1990. Ambdues organitzacions dedicaren bona part dels esforços inicials a establir el marc conceptual per a la representació de la informació geoespacial. Així, el 1996 OGC publicaria ja la primera versió de l'especificació abstracta del model d'objectes (OGC, 1996) en què basar les posteriors especificacions d'implementació d'estàndards geoespacials interoperables, que es pot considerar l'antecedent més remot de l'actual model de dades Simple Feature Access. En els mateixos anys, el comitè ISO/TC 211 començà a desenvolupar els primers estàndards internacionals per a les dades geoespacials, entre els quals l'esquema d'aplicació per a la informació espacial ISO/TC 211 19107, la versió final del qual apareixeria el 2003 (ISO/TC, 2003a), però que va circular com esborrany des de 2000. El 1998, ambdues organitzacions establiren els acords de coordinació pels quals, especificacions desenvolupades per una serien adoptats després de revisió com a estàndards per l'altra i viceversa. Així, OGC adoptaria l'estàndard ISO/TC 19107 com a model d'objectes abstracte, i l'especificació Simple Feature Access seria adoptat per ISO/TC 211 i esdevindria estàndard, sota el nom de ISO/TC 211 19125 Simple Feature Access (SFA), després de l'adaptació al marc previ d'ISO TC/211
La primera versió del model Simple Feature Access fou publicada el 1999 per OGC com a especificació per estendre el llenguatge SQL per a aplicacions geoespacials (OGC, 1999). A més de l'arquitectura bàsica per a la implementació d'un model de dades orientat a objectes basat en elements geomètrics simples (Simple Features), OGC publicà també el mateix any les especificacions d'implementació mitjançant objectes CORBA o OLE/COM o bé per mitjà del llenguatge SQL. Posteriorment el 2003 es publicaria l'especificació de l'estàndard ISO/TC 211 19125 Simple Feature Access (SFA), elaborat i adoptat conjuntament amb OGC (vegeu OGC, 2011a per a l'última versió), del qual les especificacions CORBA, OLE/COM i SQL esmentades serien versions d'implementació, si bé des de 2011 OGC només manté l'especificació d'implementació SQL com a part de l'estàndard (OGC 2011b).
Paral·lelament, des de l'àmbit dels sistemes de gestió de bases de dades a finals de la dècada de 1990 i principis de la de 2000 s'estava elaborant la nova versió del llenguatge de consulta de bases de dades Structured Query Language (SQL), que finalment aparegué el 2006 com a estàndard ISO/IEC 9075, el qual es complementà amb l'estàndard ISO/IEC 13249 SQL Multimedia and Application Packages - Part 3. Spatial, que defineix extensions per al maneig d'altres tipus de dades, entre les quals les espacials (ISO/IEC, 2006). Versions oficioses de l'esborrany de l'estàndard van circular, però, des de 2002.
A partir de la publicació de l'estàndard Simple Feature Access (SAF) d'ISO i OGC, que resol, per si mateix o a partir de les aportacions que recull, bona part de les necessitats per a implementar tipus de dades, predicats i operadors espacials i llenguatges de consulta espacial, així com de l'ampliació espacial del llenguatge estàndard de consulta SQL han aparegut nombroses extensions espacials de la majoria de sistemes de gestió de bases de dades existents, tant comercials (Oracle Spatial d'Oracle, Spatial Extender en el cas de DB2 d'IBM; SQL Server de Microsoft des de 2008 o Spatial Query Server per a Sybase, entre d'altres) com de programari lliure (PostGIS en el cas de PostgreSQL, SpatiaLite per a Sqlite o MySQL encara que en aquest no de forma estàndard). Així mateix, s'han creat nous sistemes de gestió de bases de dades directament espacials (per exemple, SpaceBase) i els programes de SIG que implementen programari intermediari de gestió de bases de dades espacials s'han mantingut (ArcGIS Server d'ESRI o Smallworld VMDS) o ampliat. No tot el programari de bases de dades espacials o de sistemes d'informació geogràfica, però, implementa el model Simple Feature Access, per bè que és el més difós
Model de dades orientat a objectes
El model de dades Simple Feature Access per a la representació i emmagatzematge de la informació espacial en bases de dades és un model de dades orientat a objectes, i per tant gaudeix dels avantatges d'encapsulació, herència, modularitat i polimorfisme. En aquest sentit, gràcies a l'encapsulació pròpia de l'orientació a objectes, la definició dels diferents objectes espacials o tipus de geometries, com sovint hi ha el costum de dir-ne, inclou tant la definició d'estructures de dades com la dels mètodes (les operacions) aplicables a cada classe d'objecte. Des del punt de vista dels sistemes de gestió de bases de dades, la definició orientada a objectes es tradueix en la possibilitat de definir un tipus de dades espacial amb els seus operadors corresponents.
Aixi mateix, l'herència permet especificar els diferents tipus de geometries o d'elements espacials com classes d'objectes organitzats jeràrquicament, de manera que les classes més generals tenen ja definides les propietats i els mètodes comuns a totes les classes que en depenen, de manera que les classes més especialitzades hereten les propietats i mètodes de les classes generals i tan sols tenen com a pròpies les propietats i mètodes que els són particulars i els diferencien de la resta.
Per últim el polimorfisme fa possible definir els mètodes o operacions de manera abstracta per a totes les classes d'objectes a què és aplicable, i fer servir les mateixes convencions i interfícies per a usar-los, mentre que la realització concreta de l'operació depèn de cada classe d'objectes particular. Per exemple, tots els tipus d'elements espacials o geometries del model Simple Feature Access tenen els mètodes corresponents a les operacions espacials d'àrea d'influència, intersecció o diferència, però la funció actua diferent per a calcular el resultat segons si els elements que intervenen són línies o polígons.
Model de dades orientat a objectes de l'estàndard Simple Feature Access: Jerarquia de classes d'objectes espacials (tipus de geometries) del model Simple Feature Access i relacions d'agregació (composició) que permeten formar algunes de les classes d'objectes espacials a partir d'altres. El model inclou també l'associació entre la classe general geometria i diferents sistemes de referència (espacial, per mitjà de coordenades, o basat en mesures per al cas de la referenciació lineal). Font: OGC, 2011a
Simple Feature Access defineix disset classes d'objectes espacials o tipus de geometries, algunes de les quals no són directament instanciables (és a dir, no poden existir-ne elements individuals). Només es poden instanciar a través de les subclasses en què s'especialitzen.
La classe bàsica Geometry (Geometria) és abstracta, no instanciable, i serveix per a definir les propietats i mètodes comuns a tots els tipus d'objectes espacials. Geometry té com a subclasses Point (Punt), Curve (Corba), Surface (Superfície) i GeometryCollection (Col·lecció de geometries).
Point és una primitiva geomètrica (tipus d'element geomètric elemental o tipus de geometria 'atòmic', que no és una col·lecció o un compost, segons la terminologia de l'estàndard Simple Feature Access). Concretament, Point és l'element geomètric bàsic de dimensió 0, i no té especialitzacions. Tots els altres tipus d'elements geomètrics es poden construir a partir de Point, com a agregats.
Curve és la classe general per a tot tipus d'elements geomètrics de dimensió 1, és a dir lineals. Curve és una classe abstracta pensada per poder especialitzar-se en subclasses corresponents als diferents tipus d'elements lineals, per exemple recta, cercle, el·lipse, etc., definits segons el mètode d'interpolació entre punts o funció que defineix el tipus de corba. L'estàndard Simple Feature Access actualment només contempla una subclasse de Curve: LineString. Altres estàndards com SQL-MM Spatial permeten definir altres subclasses de corbes, essencialment circulars.
LineString (Cadena lineal) correspon als elements lineals formats per seqüències de punts que defineixen segments de recta (e.g., s'utilitza la funció de la recta per a interpolar punts entre els punts emmagatzemats). LineString en si és una altra primitiva geomètrica, de dimensió 1, definida com una agregació de punts (els vèrtexs) i és present en qualsevol model de dades vectorial. LineString, a part del cas general, presenta dues especialitzacions: Line i LinearRing. Line (Línia) és un LineString format per només dos punts. LinearRing (Contorn lineal) és un LineString en què el punt inicial i final són iguals i per tant defineix una forma tancada que correspon al contorn d'un polígon.
Surface (Superfície) és la classe general per als elements geomètrics de dimensió 2, és a dir poligonals. Surface també és una classe abstracta que s'especialitza en dues subclasses: Polygon i PolyhedralSurface.
Polygon (Polígon) és l'element superficial bàsic, o primitiva geomètrica, de dimensió 2, definit per un cert nombre de contorns, un d'exterior i cap o diversos d'interiors. Conseqüentment apareix com una agregació de LinearRing. Polygon té una especialització particular, Triangle, que mitjançant agregació servei per a formar un tipus particular de PolyhedralSurface, el TIN (xarxa irregular de triangles, TIN).
PolyhedralSurface (SuperfíciePolièdrica) és un agregat de Polygon que permet modelitzar una superfície formada per facetes planes (polígons) en un espai de tres dimensions. És a dir, un conjunt de facetes planes amb diferents orientacions que formen una superfície polièdrica. Una subclasse particular de PolyhedralSurface és TIN, formada per facetes triangulars (agregació de Triangle).
GeometryCollection (Col·lecció de geometries), per últim, és la classe que permet representar elements geomètrics multipart, és a dir col·leccions d'elements geomètrics individuals que es comporten com un tot (per exemple un grup de polígons que representa un arxipèlag). GeometryCollection a més de ser la classe general per als elements multipart, es pot instanciar ella mateixa en el cas de col·leccions heterogènies d'objectes geomètrics (per exemple, un grup de punts i de línies, que en conjunt representen una mateixa entitat). GeometryCollection s'especialitza en tres subclasses: MultiPoint, MultiCurve, MultiSurface.
MultiPoint (Multipunt) és un conjunt (agregat) de punts. MultiCurve (Multicorba) i MultiSurface (Multisuperfície), en canvi, són superclasses que generalitzen les classes realment instanciables que són, respectivament, MultiLineString (Multicadena lineal), col·lecció de línies, i MultiPolygon (Multipolígon), col·lecció de polígons. MultiCurve i MultiSurface, igual que Curve i Surface, són classes generals que serveixen per a definir especialitzacions, les actuals o d'altres possibles en futures revisions.
Representació de la geometria
Tipus de geometries bàsiques
Les classes d'objectes del model de dades Simple Feature Access es poden diferenciar en tres grups:
- classes abstractes (no instanciables directament):
- Geometry
- Curve, MultiCurve
- Surface, MultiSurface
- classes bàsiques (les més implementades i utilitzades):
- Point, MultiPoint
- LineString, MultiLineString
- Polygon, MultiPolygon
- GeometryCollection
- classes especials (per a modelitzar superfícies complexes):
- TIN, PolyhedralSurface
- Triangle
A part, les classes Line i LinearRing, són especialitzacions òbvies, que es defineixen per coherència conceptual, però que tampoc són instanciables en el model estàndard. A la pràctica, doncs, els tipus de geometries disponibles a totes les implementacions de l'estàndard són les set classes bàsiques d'objectes geomètrics. En qualsevol cas, per a totes les classes d'objectes geomètrics del model Simple Feature Access:
- els objectes geomètrics han de ser simples, sense interseccions amb si mateixos, conforme al principi de definició del model.
- els objectes geomètrics compleixen el principi de tancament topològic. És a dir, contenen el seu interior més el seu límit. Això vol dir, per exemple, que un punt sobre la vora d'un polígon pertany al polígon, o que els punts inicial i final de les línies pertanyen a les línies, etc.
- els objectes geomètrics són de 2 dimensions en espais de 2, 3 o 4 dimensions. En el cas d'espais 2D, les coordenades dels punts són x i y. En el cas 3D, les coordenades són x, y i z, o bé x, y i m. En el cas 4D, les coordenades són x, y, z i m. La coordenada z correspon sovint a l'elevació, en el cas de dades geoespacials, però no únicament. La coordenada m correspon a una mesura al llarg d'un element lineal, atès que el model Simple Feature Access contempla el posicionament mitjançant referenciació lineal.
- cada classe concreta (instància) d'objectes geomètrics té associat un sistema de referència espacial (projecció cartogràfica, sistema de coordenades i dàtums horitzontal i vertical), per a les coordenades x, y i z, i un sistema de referència de mesures de referenciació lineal per a la coordenada m.
L'emmagatzematge físic intern d'aquests tipus d'objectes geomètrics en bases de dades espacials depèn de la implementació de cada programa. A efectes, però, d'intercanvi de dades entre aplicacions, càrrega de la geometria en taules i comprensió per part de l'usuari, l'estàndard Simple Feature Access especifica també el format de text Well Known Text (WKT) i el format binari Well Known Binary (WKB),
Format Well Known Text (WKT)
La darrera versió de l'especificació del format WKT és la indicada l'estàndard ISO/IEC 13249 SQL Multimedia and Application Packages - Part 3. Spatial (ISO/IEC, 2006). En aquesta darrera versió, tal com s'ha indicat, es defineixen tipus de geometries, bàsicament corbes (CircularString, CompoundCurve i CurvePolygon), només contemplades en el model Simple Feature Access com a possibles opcions futures, però no incloses en el model.
D'altra banda, algunes implementacions, com per exemple PosGIS, ofereixen versions esteses dels formats WKT i WKB, anomenades EWKT i EWKB, també amb un major nombre de tipus de geometries, tot mantenint el compliment de l'estàndard. En aquests casos, les versions esteses són un superconjunt que inclou l'estàndard, per la qual cosa el compliment i compatibilitat estan garantides.
Simple Feature AccessWell Known TextWKT
Font: http://en.wikipedia.org/wiki/Well_Known_Text
El format Well Known Text (WKT) és senzill. Cada objecte geomètric s'expressa indicant el tipus de geometria seguit dels parells (triplets o quartets en 3D i 4D, respectivament) de coordenades separats per comes dins d'un parèntesi. En el cas dels objectes geomètrics compostos simplement s'enumeren dins del parèntesi cada un dels objectes geomètrics elementals, separats per comes. El mateix procediment es segueix en el cas de l'objecte geomètric Polygon quan està format per més d'un contorn (polígon amb forats). La indicació explícita del tipus d'objecte, Polygon o Multipolygon, desfa qualsevol possible ambigüitat respecte a si es tracta d'un polígon amb forats o d'un multipolígon (polígon amb múltiples parts).
En el cas d'objectes geomètrics amb tercera dimensió i/o mesures, el format Well Known Text (WKT) indica el tipus de coordenades addicional (Z per a la tercera dimensió, M per a mesures), a continuació del tipus de geometria i afegeix les coordenades extra darrera de les coordenades x i y. Per exemple:
POINT Z (1 1 5)
POINT M (1 1 80)
POINT ZM (1 1 5 80)
Finalment, el format WKT proporciona un valor EMPTY per a indicar el conjunt buit, útil per a expressar el resultat d'operacions espacials que no retornen cap geometria, o per a indicar aquest resultat com a condició en una consulta espacial. Per exemple:
POINT EMPTY
POLYGON EMPTY
El format Well Known Text (WKT) serveix també per a especificar canvis de sistema de referència espacial. Des de l'aparició d'estàndards d'OGC o d'ISO/TC 211 per a la informació geoespacial, els sistemes de referència espacial s'identifiquen i es defineixen segons la base de dades Geodetic Parameter DatasetEPSG, compilada i distribuïda per European Petroleum Survey Group (EPSG, actualment Surveying and Positioning Committee, de la International Association of Oil and Gas Producers), que compleix l'estàndard ISO 19111-2:2:2009 Geographic information - Spatial referencing by coordinates. Un exemple de canvi de sistema de referència espacial, amb indicació de la projecció cartogràfica i paràmetres necessaris, podria ser el següent:
PARAM_MT["Mercator_2SP",
PARAMETER["semi_major",6370997.0],
PARAMETER["semi_minor",6370997.0],
PARAMETER["central_meridian",180.0],
PARAMETER["false_easting",-500000.0],
PARAMETER["false_northing",-1000000.0],
PARAMETER["standard parallel 1",60.0]]
Format Well Known Binary (WKB)
La versió binària del format, anomenada Well Known Binary (WKB), representa els objectes geomètrics com una seqüència de valors numèrics de tipus Unsigned Integer o Double. Els valors de tipus Unsigned Integer indiquen codis que serveixen per expressar el tipus d'objecte geomètric, el nombre de components o el nombre de punts. Els valors de tipus Double serveixen per a expressar cada coordenada individual. El primer valor de la seqüència és sempre un byte, amb valor 0 o 1, que serveix per a indicar el tipus de codificació binària; és a dir l'ordre en què cal interpretar el grup de bytes que formen cada valor Unsigned Integer o Double. Els dos tipus de codificació binària, XDR (ordre directe, Big Endian) o NDR (ordre invers, Little Endian) s'ndiquen respectivament mitjançant 0 o 1.
Així, per exemple, per a representar un objecte geomètric de tipus Polygon en 2D, format per dos contorns de 3 i 4 parells de coordenades respectivament, la seqüència numèrica seria la de la figura següent:
B=1 | T=3 | NR=2 | NP=3 | x1 | y1 | x2 | y2 | x3 | y3 | NP=4 | x1 | y1 | x2 | y2 | x3 | y3 | x4 | y4 |
on
B és un byte que indica el tipus de codificació binària, en aquest cas NDR
T és un Unsigned Integer que indica el tipus de geometria, en aquest cas Polygon
NR és un Unsigned Integer que indica el nombre de components, aquí 2 contorns
NP és un Unsigned Integer que indica el nombre de punts de cada contorn, 3 i 4
xi és un Double (real de doble precisió) que expressa la coordenada x del punt i
yi és un Double (real de doble precisió) que expressa la coordenada y del punt i
Donada la necessitat d'indicar cada tipus d'objecte geomètric mitjançant un codi numèric, l'estàndard Simple Feature Access específica el llistat de codis per a cada tipus de geometria en 2D, 3D (z o m) i 4D (z i m).
Tipus de geometria | 2D | Z | M | ZM |
---|---|---|---|---|
Geometry | 0000 | 1000 | 2000 | 3000 |
Point | 0001 | 1001 | 2001 | 3001 |
LineString | 0002 | 1002 | 2002 | 3002 |
Polygon | 0003 | 1003 | 2003 | 3003 |
MultiPoint | 0004 | 1004 | 2004 | 3004 |
MultiLineString | 0005 | 1005 | 2005 | 3005 |
MultiPolygon | 0006 | 1006 | 2006 | 3006 |
GeometryCollection | 0007 | 1007 | 2007 | 3007 |
CircularString | 0008 | 1008 | 2008 | 3008 |
CompoundCurve | 0009 | 1009 | 2009 | 3009 |
CurvePolygon | 0010 | 1010 | 2010 | 3010 |
MultiCurve | 0011 | 1011 | 2011 | 3011 |
MultiSurface | 0012 | 1012 | 2012 | 3012 |
Curve | 0013 | 1013 | 2013 | 3013 |
Surface | 0014 | 1014 | 2014 | 3014 |
PolyhedralSurface | 0015 | 1015 | 2015 | 3015 |
TIN | 0016 | 1016 | 2016 | 3016 |
Triangle | 0017 | 1017 | 2017 | 3017 |
Les classes CircularString, CompoundCurve i CurvePolygon només es contemplen en el model de dades de l'estàndard Simple Feature Access com a possibles opcions futures. L'estàndard ISO/IEC 13249 SQL Multimedia and Application Packages - Part 3. Spatial (ISO/IEC, 2006), però, i altres implementacions sí que inclouen aquests tipus d'objectes geomètrics i n'especifiquen la representació en els formats WKT i WKB.
Mètodes d'operacions espacials
Pel fet de ser un model de dades orientat a objectes, Simple Feature Access no sols especifica l'estructura de les dades espacials i la representació de la geometria mitjançant els diferents tipus d'objectes geomètrics. També permet especificar operacions espacials, mitjançant mètodes associats als objectes geomètrics.
Tots els mètodes d'operacions espacials bàsiques són comuns a tots els tipus d'objectes geomètrics i per tant es defineixen per al tipus d'objecte abstracte Geometry. La resta de tipus d'objectes geomètrics hereten els mètodes d'operacions espacials a partir de la classe Geometry i poden tenir alguns mètodes propis diferenciats, en general de poca importància en comparació amb els mètodes generals.
A grans trets els mètodes d'operacions espacials comunes es poden diferenciar en tres grups: operacions de mesura i altres propietats espacials, operacions de consulta espacial basades en predicats espacials i funcions espacials d'anàlisi.
Mesures i altres propietats espacials
Un primer grup de mètodes definits per als objectes geomètrics del model de dades estàndard Simple Feature Access corresponen a propietats espacials de caràcter general i per tant es defineixen a nivell de la classe abstracta Geometry. Dintre d'aquests es troben els que proporcionen característiques espacials generals de l'objecte, com és ara la dimensió, el tipus d'objecte geomètric, la dimensió de les coordenades o el sistema de referència espacial (SRID). Altres mètodes dins d'aquest grup general permeten validar la geometria efectuant comprovacions en relació a si és buida (e.g., no conté cap espai o punt), si és simple, si conté mesures o si és 3D. També inclou els mètodes que calculen a partir de la geometria un objecte descriptiu d'aquesta, és a dir un resultat que també és geometria, com és ara el rectangle envoltant mínim o el límit de l'objecte geomètric. Finalment, contempla els mètodes per a exportar la geometria de l'objecte geomètric en format de text WKT o binari WKB.
A més dels mètodes de propietats espacials definits a nivell de la classe abstracta Geometry, cada subclasse d'objecte geomètric (tipus de geometria) te definits mètodes de mesura apropiats segons la seva dimensió. Per exemple, longitud en el cas de les línies o dels contorns dels polígons, superfície en el cas dels polígons, etc. També a nivell de cada tipus de geometria hi ha definits mètodes per a obtenir el límit de cada objecte geomètric, com per exemple els punts inicial i final d'una línia o el contorn exterior i cada un dels contorns interiors d'un polígon. Els objectes geomètrics multipart disposen, a més, de mètodes per obtenir el nombre de components (parts) que formen la col·lecció i per a recuperar cada un dels components (parts) individuals integrants de l'objecte.
Mètodes d'operacions espacials definides per a l'objecte abstracte Geometry, comunes per a tots els tipus d'objectes geomètrics (tipus de geometries) del model de dades estàndard Simple Feature Access. Font: OGC, 2011a
Predicats espacials
Un segon grup de mètodes generals són els que permeten avaluar relacions espacials d'un objecte geomètric en relació a un altre. Són mètodes comuns per a tots els tipus d'objectes geomètrics, definits per tant a nivell de la classe abstracta Geometry, que es basen en el model de nou interseccions estès dimensionalment (DE-9IM), definit per Egenhofer (Egenhofer et al., 1994) i Clementini (Clementini et al., 1993; 1994).
El model de nou interseccions estès dimensionalment (DE-9IM) és un model topològic que permet calcular i descriure les relacions espacials entre dos objectes geomètrics en l'espai de dues dimensions mitjançant la dimensió (0, 1 o 2; o bé el conjunt buit) del resultat de les nou possibles interseccions entre interior, límit i exterior dels objectes geomètrics.
La matriu de nou interseccions es pot escriure com una seqüència de valors que és característica de cada relació espacial i que permet implementar predicats de consulta espacial en les bases de dades espacials. Per exemple, la matriu expressada per la seqüència (212101212) indica una relació de cavalcament entre dos polígons, atès que la intersecció dels dos interiors (primer dígit de la seqüència) és un objecte de dimensió 2, és a dir una àrea.
En base als patrons característics de les diferents relacions espacials entre objectes de dimensions 0 (punts), 1 (línies) i 2 (polígons) que proporciona el model de nou interseccions estès dimensionalment (DE-9IM), el model de dades estàndard Simple Feature Access defineix mètodes per a avaluar si es dóna cada una de les relacions espacials entre dos objectes geomètrics (o entre dos conjunts d'objectes geomètrics) següents: equals (igual), disjoint (disjunt), intersects (interseca), touches (toca), crosses (creua), within (dins), contains (conté), overlaps (cavalca), més el mètode genèric relate (relaciona) que avalua si la relació espacial entre dos objectes geomètrics és igual a una determinada matriu d'interseccions. En tots els casos el valor retornat per aquests mètodes de consulta espacial és de tipus booleà, cert o fals. És a dir, no calculen geometries derivades corresponents a aspectes (interseccions) de la relació espacial, només avaluen quina relació espacial es dóna entre els dos objectes.
La implementació per mitjà d'un llenguatge de consulta espacial, com és ara SQL-MM Part 3 Spatial, permet efectuar les consultes en ambdós sentits. És a dir, determinar si la matriu de nou interseccions entre dos objectes geomètrics és igual a un patró característic determinat (e.g., saber si es dóna una relació espacial concreta), o bé obtenir els valors de la matriu de nou interseccions donats dos objectes (e.g., saber quina relació espacial es dóna).
Dins d'aquest bloc de mètodes de relació i consulta espacial el model de dades estàndard Simple Feature Access afegeix dos mètodes més, que no avaluen relacions espacials, sino que serveixen per a generar geometries a partir de mesures de referenciació lineal. Es tracta dels mètodes locateAlong (localitzar al llarg) i locateBetween (localitzar entre), que generen respectivament l'element lineal d'una determinada mesura des de l'origen al llarg d'un element lineal amb mesures i l'element lineal entre dues mesures al llarg d'un element lineal amb mesures.
Exemples de la relació espacial touches (toca), que segons el model de nou interseccions estès dimensionalment (DE-9IM) es caracteritza per una matriu d'interseccions igual a (F**T*****) o (FT*******) o (F***T****). Font: OGC, 2011a
Funcions espacials
El tercer bloc de mètodes d'operacions espacials definits per als objectes geomètrics del model de dades estàndard Simple Feature Access correspon a funcions espacials d'anàlisi, que calculen nous objectes geomètrics a partir dels objectes geomètrics emmagatzemats. Aquests mètodes són comuns a tots els objectes geomètrics (tipus de geometries) del model i per tant es defineixen a nivell de la classe abstracta Geometry, de la qual l'hereten els diferents tipus d'objectes geomètrics, essent la realització diferenciada en cada cas gràcies al polimorfisme.
En general es tracta de la majoria de les operacions espacials d'anàlisi bàsiques dels sistemes d'informació geogràfica, que es coneixen globalment com a operacions d'anàlisi cartogràfica. Entre aquestes, el model de dades estàndard Simple Feature Access, defineix les funcions de distància entre dos objectes (distance), àrea d'influència d'un objecte (buffer), polígon convex mínim d'un conjunt de punts o d'objectes (convexHull), la intersecció espacial de dos objectes (intersection), la unió de dos objectes (union), la diferència (difference) i la diferència simètrica (symDifference).
Exemples de funcions espacials definides en el model de dades estàndard Simple Feature Acces: a. distance (distància); b. buffer (àrea d'influència); c. convexHull (polígon convex mínim); e. union (unió); f. intersection (intersecció); g / h. difference (diferència); i. symDifference (diferència simètrica). Font: Strobl, 2008.
Implementacions
El model de dades estàndard Simple Feature Access ha estat ràpidament acceptat i difós en pocs anys. El nombre de sistemes de gestió de bases de dades que l'han implementat, de forma més o menys completa i amb més o menys extensions, com a extensió espacial per a oferir un sistema de gestió de bases de dades espacials és molt gran. Igualment pel costat del client són nombrosos els programes de SIG de sobretaula, servidors de mapes web i biblioteques de tractament d'informació geoespacial que poden llegir, escriure i operar amb dades segons el model Simple Feature Access. La següent és una relació no exhaustiva, a tall d'exemple:
- sistemes de gestió de bases de dades de codi obert:
- PostgreSQL (versions 8, 9): PostGIS
- MySQL (versió 4.1)
- SpatiaLite
- Ingres: GeoSpatial
- sistemes de gestió de bases de dades comercials:
- Oracle (versions 9i, 10g, 11g): Oracle Spatial
- IBM DB2 (versions 9, 10): Spatial Extender i Spatial Support
- IBM Netezza: Netezza Spatial
- IBM Informix (versions 9, 10, 11): Spatial datablade
- Microsoft SQL Server 2008 R
- Teradata (versions 12, 13)
- biblioteques de funcions geoespacials de codi obert:
- Java Topology Suite, JTS
- GDAL
- GEO
- OpenLayers
- biblioteques de funcions geoespacials comercials:
- Feature Manipulation Engine, FME
- programari servidor de mapes web de codi obert:
- deegree
- GeoServer
- GeoTool
- MapServer
- programari de SIG de sobretaula de codi obert:
- GRASS
- gvSIG
- OpenJUMP
- Quantum GI
- uDig
- programari de SIG de sobretaula comercial:
- ArcGIS (per mitjà d'ArcSDE o d'Interoperability Extension)
- Cadcorp SIS
Temes relacionats
- Base de dades espacial.
- Model de dades vectorial.
- Model de nou interseccions estès dimensionalment.
- Sistema de referència espacial.
- Xarxa irregular de triangles.
Referències
Clementini, E.; Di Felice, P. and van Oosterom, P. (1993) "A small set of formal topological relationships suitable for end-user interaction", In Abel, D. and Ooi, B. C. (eds.) Advances in Spatial Databases: Proceedings Third International Symposium, SSD '93 Singapore. Lecture Notes in Computer Science. 692. New York: Springer.
Clementini, E.; Sharma, J. and Egenhofer, M. (1994) "Modelling topological spatial relations: Strategies for query processing", Computers & Graphics, 18(6), 815–822.
Egenhofer, M.; Clementini, E. and di Felice, P.A. (1994) "Topological relations between regions with holes", International Journal of Geographical Information Systems, 8(2), 129-142.
ISO/TC211 (2003a) ISO 19107: Geographic information - Spatial schema, Geneva, Switzerland: International Organization for Standardization (ISO).
ISO/TC211 (2003b) ISO 19125: Geographic information - Simple Feature Access (SFA), Geneva, Switzerland: International Organization for Standardization (ISO).
ISO/IEC (2006) ISO/IEC 13249-3:2006(E) – Text for FDIS Ballot Information technology - Database languages - SQL Multimedia and Application Packages - Part 3: Spatial, Geneva, Switzerland: International Organization for Standardization (ISO).
OGC (1996) The OpenGIS Abstract Specification: An Object Model for Interoperable Geoprocessing, Revision 1, OpenGIS Project Document Number 96-015R1 Wayland, MA: OpenGIS Consortium Inc.
OGC (1999) OpenGIS Simple Features Specification for SQL (Revision 1.1). Wayland, MA: OpenGIS Consortium Inc.
OGC (2011a) OpenGIS Implementation Standard for Geographic information - Simple feature access - Part 1: Common architecture (Version 1.2.1). Wayland, MA: Open Geospatial Consortium.
OGC (2011b) OpenGIS Implementation Standard for Geographic information - Simple feature access - Part 2: SQL option (Version 1.2.1). Wayland, MA: Open Geospatial Consortium.
Lectures recomanades
OGC (2011a) OpenGIS Implementation Standard for Geographic information - Simple feature access - Part 1: Common architecture (Version 1.2.1). Wayland, MA: Open Geospatial Consortium.
PostGIS Project (2012) PostGIS 2.0.1SVN Manual, Chapter 4.
http://postgis.org/documentation/manual-svn/using_postgis_dbmanagement.html#DE-9IM> [Consulta: 16 maig 2012].
Strobl, C. (2008) "PostGIS" in Shekar, S. and Xiong, H. (eds.) Encyclopedia of GIS, New York: Springer.