Datos espaciales y bases de datos espaciales

05/10/2010 Datos espaciales y bases de datos espaciales Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía - UPM Índice • Clasificación d...
83 downloads 0 Views 750KB Size
05/10/2010

Datos espaciales y bases de datos espaciales Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía - UPM

Índice • Clasificación de los datos espaciales • Aproximaciones de las BBDD relacionales para soportar datos espaciales • Conceptos y técnicas utilizados por los SGBD espaciales • Enfoque práctico de lo presentado

1

05/10/2010

Clasificación de los datos espaciales • Datos geográficos (Geospatial data – spatial data) – Se pueden visualizar, manipular y analizar – Atributo espacial (location), definido por coordenadas – Dos características: • distintos CRS, pero es posible integrarles • distintas escalas, propósitos, simbolización

• Datos referenciados geográficamente (Geographically referenced data – pseudo-spatial data)

– Otros datos que no se pueden utilizar directamente: direcciones postales, datos alfanuméricos, mapas escaneados o imágenes (necesitan pre procesamiento)

Clasificación de los datos (2)

2

05/10/2010

Perspectiva funcional (clasificación) • Capas básicas (topográficas): – MDT, topografía, ortofotografía, hidrología, catastro, vías de comunicación..

• Capas de soporte a las aplicaciones (framework) – Parcelas, direcciones, infraestructuras (facilities: eléctricas, gas, comunicaciones,..)

• Capas para la aplicación (application data layers) – Creadas para dar soporte a las aplicaciones

• Capas de negocio (Business solutions layers) – Soportan las operaciones y tomas de decisiones

Perspectiva funcional (2)

3

05/10/2010

Estructura de los datos espaciales • Conceptos: – Geometría (representación espacial) – Topología (relaciones espaciales)

• Geometry – Campo de la matemática, relaciones y propiedades de los elementos en distintas dimensiones – OGC, define como una estructura jerárquica de tipos de datos para almacenar objetos con una propiedad geométrica en una base de datos – Simple feature specification (OGC) for SQL (1999)

SF (OGC) tipos de datos

4

05/10/2010

Jerarquía (aclaración)

Topología • Relaciones entre las geometrías (2D) • Términos: – Nodos, Arcos(edges, arcs, chains or segments), Polígonos (polygons, topological rings, face or area) – Nodo: espacio dimensión 0 en el que interceptan/conectan dos elementos de tipo edges – Arco: espacio dimensión 1 en el que se secuencian segmentos de línea sin intersección entre nodos origen y destino – Polígono: un conjunto de arcos conectados y dirigidos que cierran en un espacio de dimensión 2

• Topología Arco-Nodo: exige que existan nodos en los extremos e intersecciones de los arcos.

5

05/10/2010

Ejemplo topología

Estructuras NO topológicas • En muchas ocasiones no es necesaria una relación topológica entre los elementos que conforman un modelo de datos • Se pueden establecer consultas a posteriori para obtener las relaciones entre elementos • Ejemplo de formato sin topología: ESRI Shapefile

6

05/10/2010

Modelo Geo-Relacional • Los datos espaciales se modelan (abstraen) en capas (layers) • Cada capa contiene un tipo de elementos (features) • Si existen distintos tipos de geometrías se clasifican por su tipo (puntos, líneas, polígonos) • Los atributos se almacenan en una base de datos relacional • Las relaciones entre objetos se establecen mediante identificadores (FID: FeatureIDentifier)

Ejemplo de modelo Geo-Relacional

7

05/10/2010

Modelo GeoDatabase • Con la aparición de las bases de datos objetorelacional y la capacidad para definir tipos de datos abstractos, aparecen las GeoDatabases • La idea es integrar dentro de la propia base de datos la componente geométrica y topológica

Ejemplo esquema GeoDatabase

8

05/10/2010

Bases de datos espaciales • ¿Qué son las BBDDEE? Güting (1994) – BBDD – Ofrece soporte para datos espaciales en los modelos de datos y en las consultas – Ofrece índices espaciales y algoritmos eficientes para uniones espaciales

Características de las BBDDEE • Tipos de datos espaciales (SDT:SpatialDataType) – Oracle SDO (SDO_GEOMETRY) – BD2 Spatial extender (ST_Geometry + primitivas) – PostGreSQL + PostGIS (geometry & geography) – MySQL (geometry) – Microsoft SQL Server (geometry & geography)

9

05/10/2010

Tipos de datos Oracle (GDO_TYPE) • Tipos de datos – POINT – LINE o CURVE – POLYGON – COLLECTION – MULTIPOINT – MULTILINE or MULTICURVE – MULTIPOLYGON

• Índices: R-Tree o QuadTree (sdp_level)

Tipos de datos DB2 (SE) • Tipos de datos: – ST_Point – ST_Linestring – ST_Polygon – ST_MultiPoint – ST_MultiLineString – ST_MultiPolygon

• Índices: spatial grid index & geodetic voronoi index

10

05/10/2010

Tipos de datos PostGIS • Tipos de datos: – – – – – – – – – – – –

POINT MULTIPOINT LINESTRING MULTILINESTRING POLYGON MULTIPOLYGON GEOMETRYCOLLECTION CIRCULARSTRING COMPOUNDCURVE CURVEPOLYGON MULTICURVE MULTISURFACE

• Índices: Generalized Search Tree (GiST)

Tipos de datos MySQL • Tipos de datos: – POINT – MULTIPOINT – LINESTRING – MULTILINESTRING – POLYGON – MULTIPOLYGON – GEOMETRYCOLLECTION

• Índices: R-Tree

11

05/10/2010

Tipos de datos Ms SQL Server • Tipos de datos: – POINT – MULTIPOINT – LINESTRING – MULTILINESTRING – POLYGON – MULTIPOLYGON – GEOMETRYCOLLECTION

• Índices: B-Tree (grid jerárquico)

Índices espaciales y métodos de acceso • Los índices espaciales son más complejos, trabajan en dos dimensiones y el objetivo fundamental es identificar elementos próximos • El método mas extendido es R-Tree (árbol de regiones basado en el BBOX de las geometrías) . El segundo son los quadtree o grid multinivel

12

05/10/2010

Ejemplo R-Tree

Restricciones e integridad de los datos espaciales • Además de las restricciones de dominio, referencial y semántico del capítulo anterior, Cockcroft (1997) identificó otras restricciones en el contexto espacial: – Topológicas: aspectos geométricos (adyacente, contenido ..) – Semánticas: restricciones geométricas sobre valores de atributos (no parcelas en lámina de agua) – Definidas por el usuario: similar a la anterior, con condicionantes geométricos (no a menos de 200m)

• Posteriormente (1998) matizó: estático/transición

13

05/10/2010

Gestión de transacciones largas • En el sentido de poder retroceder a un estado anterior en los datos • Es equivalente al “versionado” • Oracle por ejemplo lo maneja con workspaces, habilitando un campo para la versión de los datos

Procesamiento de los datos espaciales • Clasificación de las operaciones espaciales • Filtrado de datos espaciales, como paso previo al tratamiento • Operaciones topológicas • Uniones espaciales • SQL espacial

14

05/10/2010

Clasificación de las operaciones espaciales • Unarias / binarias: atributos de una entidad o de varias ( superficie, perímetro vs distancia, adyacencia) • Topológicas, proyectivas y métricas (proy.: concavidad/convexidad y otras relaciones)

• Clasificación de OGC para operadores espaciales: básicos, topológicos y de análisis espacial • Clasificación de PostGIS: gestión, crear, acceder, editar, exportar, relaciones espaciales y medidas, procesamiento de geometrías y linear referencing

Operaciones espaciales y filtrado • Ante grandes volúmenes de datos espaciales, primero hay que tratar de filtrar con índices (el planificador aplica este tipo de estrategias)

15

05/10/2010

Operaciones topológicas • Egenhofer y Herring (1990), definieron 16 relaciones de las cuales 8 no son válidas y 2 son simétricas: – disjoin, in, touch, equal, cover y overlap

• Clementini y otros (1993) propusieron el modelo de 9 relaciones (DE-9IM) • Las bases de datos no implementan todas

Topología implementada (usualmente)

16

05/10/2010

Uniones espaciales • Equivalente al Join, incluyendo operaciones espaciales topológicas o no • Son pesadas computacionalmente, por lo que hay que analizar y diseñar adecuadamente las consultas • Se espera que las bases de datos espaciales permitan realizar este tipo de operaciones

SQL espacial • Importante contribución de Egenhofer (1994) proponiendo dos partes: – Lenguaje de consulta • Preservando los conceptos SQL (SELECT FROM WHERE) • Tratamiento a alto nivel de los datos espaciales • Incorporar operaciones y relaciones espaciales a SQL

– Lenguaje de presentación • • • •

Consulta por área de interés Selección de escala y simbología Mostrar leyenda y colocar etiquetas automáticamente Combinación gráfica de varias consultas y del contexto

17

05/10/2010

Ejemplos de consultas SQL espaciales • Select con operadores espaciales – SELECT parcel.name FROM parcel, subdivision WHERE within (parcel.loc, subdivision.loc) AND subdivision.name=”cranebrook”

• Crear tabla con geometría (DB2) – CREATE TABLE parcel (parcel.ID char(20), geometry ST_polygon);

• Añadir una columna espacial a una tabla existente (PostGIS) – SELECT AddGeometryColumn (‘public‘, ‘parcel’, ‘the_geom’,4326,’POLYGON',2);

Más ejemplos • SELECT ST_XMax(ST_Envelope(The_geom)) as xmax, ST_XMin(ST_Envelope(The_geom)) as xmin, ST_YMax(ST_Envelope(The_geom)) as ymax, ST_YMin(ST_Envelope(The_geom)) as ymin FROM Parcela WHERE **** • SELECT ST_Line_Interpolate_Point(the_geom, 0.8) FROM Tramo WHERE *** • SELECT ST_Buffer(geom,100) FROM POI WHERE **

18