0% encontró este documento útil (0 votos)
16 vistas81 páginas

GDPG T2

El documento aborda el modelado de información geográfica, presentando distintos esquemas (conceptual, lógico y físico) y tipos de datos (vectorial y ráster). Se discuten estándares como OpenGIS Simple Features y GeoTIFF, así como la representación de objetos geográficos y campos geográficos. Además, se exploran operaciones espaciales y predicados espaciales para definir relaciones entre objetos en el contexto de la geoinformática.

Cargado por

nereapacgut
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
16 vistas81 páginas

GDPG T2

El documento aborda el modelado de información geográfica, presentando distintos esquemas (conceptual, lógico y físico) y tipos de datos (vectorial y ráster). Se discuten estándares como OpenGIS Simple Features y GeoTIFF, así como la representación de objetos geográficos y campos geográficos. Además, se exploran operaciones espaciales y predicados espaciales para definir relaciones entre objetos en el contexto de la geoinformática.

Cargado por

nereapacgut
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Diego Seco Guillermo de Bernardo

[email protected] [email protected]
Laboratorio de Bases de Datos Laboratorio de Bases de Datos
Universidade da Coruña Universidade da Coruña
▪ Proceso de modelado (reification, wikipedia)
Mundo ejemplo
real
representado

usando ejemplo
Esquema conceptual Modelo conceptual
informatizado

usando ejemplo
Esquema lógico Modelo lógico
implementado

usando ejemplo
Esquema físico Modelo físico (43.30 8.15, 43.31 8.15, …)
(43.32 8.16, 43.30 8.15, …)
(43.30 8.16, 43.31 8.15, …)
▪ Contenidos :
▪ Definir modelos para la representación de información geográfica
▪ Que sirvan para objetos geográficos y para campos geográficos
▪ Que tengan en cuenta las restricciones de los ordenadores
▪ Solucionar los problemas ocasionados por la precisión limitada
mediante una alternativa que:
▪ Permita algoritmos geométricos robustos
▪ Sea implementable en un ordenador de forma eficiente
▪ Definición
▪ Se utilizan tipos de datos del ordenador (enteros, números en punto
flotante, etc.) para definir un sistema de coordenadas
▪ El sistema de coordenadas no puede representar cualquier
coordenada
▪ Por ejemplo, no puede representar (⅓, ⅔)
▪ Sobre el sistema de coordenadas se representa la información
geográfica utilizando puntos y segmentos
▪ Los tipos (abstractos) de datos del modelo conceptual se
representan utilizando objetos definidos en el modelo vectorial
▪ Ejemplo

(12,4)

(2,2)
▪ OpenGIS Simple Features
▪ Estándar de OpenGIS para representar información geográfica en
un modelo vectorial [OGC]
▪ Definido como un perfil de los estándares ISO
▪ Disponible como ISO 19125-1:2004 [ISO]
▪ Define tipos de datos para objetos geográficos simples y
colecciones de objetos simples
▪ En la última versión han incorporado superficies poliédricas (TIN)
▪ OpenGIS Simple Features
▪ Ejemplos

Point LineString Polygon

MultiPoint MultiLineString MultiPolygon GeometryCollection


▪ Ejemplos de objetos Polygon no válidos

Los agujeros No puede


no pueden haber “pelos”
tocar el borde
Debe ser una
superficie
conectada

▪ Ejemplos de objetos MultiPolygon no válidos

Los agujeros No puede existir


no pueden una línea de
tocar el borde conexión
▪ Representación de los tipos de datos
▪ Point: un par de coordenadas

POINT(33.5, 127.6)
▪ LineString: una lista de dos o más puntos

LINESTRING(
POINT(27.2, 115.8),
POINT(33.5, 134.0),
…,
POINT(43.3, 13.4)
)
▪ Representación de los tipos de datos
▪ LinearRing: una lista de tres o más puntos en el que el último es
igual al primero

LINEARRING(
POINT(27.2, 115.8),
POINT(33.5, 127.6),
…,
POINT(27.2, 115.8)
)
▪ Representación de los tipos de datos
▪ Polygon: una lista de uno o más LinearRing, de forma que el
primero es el borde del polígono y los restantes son agujeros del
polígono
POLYGON(
LINEARRING(...),
LINEARRING(...),
…,
LINEARRING(...)
)
▪ Representación de los tipos de datos
▪ Colecciones: listas de valores del tipo simple correspondiente

MULTIPOLYGON(
POLYGON(...),
POLYGON(...),
.
.
.
POLYGON(...)
)
▪ Ventajas:
▪ Extremadamente sencillo de implementar
▪ Los algoritmos son simples

▪ Problemas
▪ No se mantiene información topológica
▪ Por ejemplo, no es fácil saber si dos polígonos son adyacentes
▪ Hay muchísima información repetida
▪ Por ejemplo, los bordes comunes se almacenan dos veces
▪ La información repetida puede ser inconsistente
▪ Definición
▪ Representa la información geográfica utilizando una matriz
bidimensional de celdas
▪ Cada celda almacena el valor de un atributo en ese punto del
espacio
▪ El significado del valor depende de cada caso particular
▪ Para almacenar los datos se pueden utilizar formatos de imagen
▪ Ejemplo:

COVERAGE(
(11.3, 11.2, ..., 9.8),
(11.2, 11.2, ..., 9.6),
.
.
.
(7.6, 7.8, ..., 5.5),)
▪ Representación con un world file [WP]
▪ Los datos del ráster se representan en un formato de imagen (PNG,
JPG, TIFF)
▪ La georreferenciación se realiza mediante un fichero de texto
▪ El nombre es el de la imagen con una w adicional
▪ relieve.png + relieve.pngw
▪ El sistema de coordenadas se describe en otro lugar
▪ El fichero de texto contiene seis parámetros:
▪ Ancho y rotación vertical del píxel
▪ Alto y rotación horizontal del píxel
▪ Coordenadas del centro del píxel superior izquierdo
▪ Representación con un world file [WP]
▪ Los valores de cada línea se interpretan así
▪ A: componente x del ancho del píxel (x-scale)
▪ D: componente y del ancho del píxel (y-skew)
▪ B: componente x del alto del píxel (x-skew)
▪ E: componente y del alto del píxel (y-scale, normalmente negativa)
▪ C: coordenada x del centro del píxel superior izquierdo
▪ F: coordenada y del centro del píxel superior izquierdo
▪ Los valores son los seis parámetros de una transformación afín:

 x x = Ax + By + C
 x   A B C   
 y  =  D E F   y  y = Dx + Ey + F
    1 
 
▪ Representación con un world file [WP]

Sin rotación Con rotación

Píxel
cuadrado

Píxel
rectangular
▪ Representación en formato GeoTIFF
▪ Extensión del formato de imágenes TIFF para permitir la
georreferenciación de la imagen:
▪ Sistema de coordenadas del ráster
▪ Sistema de coordenadas del modelo
▪ Transformación de coordenadas del ráster al modelo
▪ Definición del sistema de coordenadas (elipsoide, datum, proyección,
etc.)
▪ Permite la creación de pirámides ráster (raster pyramid)
▪ Representación en formato GeoTIFF
▪ Pirámides ráster (fuente: Hexagon)
▪ Dividir el ráster en teselas de un mosaico
▪ Almacenar versiones del ráster en diferentes resoluciones
▪ Existen muchas variantes de estas alternativas:
▪ En la forma de componer objetos mediante coordenadas del modelo
vectorial
▪ En la forma y distribución de las celdas del modelo ráster

▪ Cualquier modelo lógico puede usarse para representar tanto


objetos geográficos como campos geográficos
▪ Modelo vectorial
▪ Objetos geográficos: discretización de los objetos
▪ Campos geográficos: poligonización de la función
▪ Modelo ráster
▪ Objetos geográficos: pixelización de los objetos
▪ Campos geográficos: discretización de la función

▪ La elección de uno o de otro depende de la aplicación específica


▪ Objetos geográficos en un modelo vectorial
▪ Discretización de los objetos
▪ Campos geográficos en un modelo ráster
▪ Discretización de la función
▪ Objetos geográficos en un modelo ráster
▪ Pixelización de los objetos
▪ Campos geográficos en un modelo vectorial
▪ Poligonización de la función
Vectorial Ráster
Efic. en Sólo puntos de interés Siempre todas las
representación celdas
Efic. en Algoritmos Algoritmos simples
procesamiento geométricos complejos basados en matrices

Expresividad Relaciones topológicas Bordes difusos

Transformaciones Sencillas (geometría) Complejas (imágenes)

Análisis Complejo Sencillo


Visualización Más calidad, más Menos calidad, menos
proceso proceso
Origen de la Herramientas CAD Sensores y satélites
información
Tipo de información Objetos geográficos Campos geográficos
▪ Comenzamos definiendo los conceptos matemáticos de dimensión,
interior, borde y exterior
▪ La dimensión de un objeto geográfico es:
▪ Para un punto: 0
▪ Para una línea: 1
▪ Para un polígono: 2
▪ Para una colección: el máximo de las dimensiones de todos los
componentes

35
▪ Definimos ahora interior, borde y exterior. Nosotros lo haremos de
forma intuitiva en lugar de matemática
▪ Exterior: conjunto de puntos que no pertenecen al objeto
▪ Borde: conjunto de puntos en los que se pasa de estar dentro a estar fuera
▪ Interior: conjunto de puntos que están dentro del objeto

▪ El borde siempre es exactamente de una dimensión inferior


▪ Para un punto (dim=0), el borde no existe
▪ Para un polígono (dim=2) el borde es una línea (dim=1)

36
▪ Interior, borde y exterior de objetos

Borde Interior Exterior

∅ U–{ }

U–{ }

U–{ }

37
▪ Para un punto:
▪ El borde es el conjunto vacío
▪ El interior es el propio punto
▪ El exterior es el resto de los puntos

▪ Para una curva:


▪ El borde es el punto inicial y final si no son el mismo
▪ El interior es el resto de puntos de la línea
▪ El exterior es el resto de los puntos

▪ Para un polígono:
▪ El borde es la línea exterior y la línea de los agujeros
▪ El interior es el resto de los puntos del polígono
▪ El exterior es el resto de los puntos

38
▪ Las operaciones básicas las podemos clasificar en función del tipo de
resultado:
▪ Predicados espaciales: devuelven un valor booleano y permiten calcular
relaciones entre objetos (ej: st_contains)
▪ Operaciones espaciales: calculan nuevos objetos geográficos (ej:
st_intersection)
▪ Operaciones escalares: calculan un valor numérico a partir de objetos
geográficos (ej: st_length)
▪ Otras operaciones: transformaciones de coordenadas, de modelo lógico, de
formato, etc...
▪ Describiremos cada tipo sucesivamente

39
▪ Para definir predicados espaciales se tienen en cuenta todas las
posibles relaciones entre el borde, el interior y el exterior de cada
objeto
▪ Esto se conoce como el Nine Intersection Model
▪ Se construye una tabla en la que:
▪ Las filas representan el borde, el interior y el exterior de un objeto
▪ Las columnas representan el borde, el interior y el exterior del otro objeto
▪ En cada cruce, se calcula si la intersección es vacía o no

▪ Para cada combinación diferente de valores, se define un predicado y


se le asigna un nombre

41
▪ Por ejemplo, sea a el polígono amarillo de la izquierda y v el polígono
verde de la derecha

I(a) B(a) E(a)


I(v) I(v)  I(a)   I(v)  B(a)   I(v)  E(a)  
B(v) B(v)  I(a)   B(v)  B(a)   B(v)  E(a)  
E(v) E(v)  I(a)   E(v)  B(a)   E(v)  E(a)  
42
▪ Por ejemplo, sea a el polígono amarillo de la izquierda y v el polígono
verde de la derecha

I(a) B(a) E(a)


I(v) true true true
B(v) true true true
E(v) true true true
43
▪ Los cambios de la configuración espacial provocan cambios en la
matriz

44
▪ Este modelo, sin embargo, no permite definir todas las relaciones
posibles entre objetos
▪ Actualmente se usa el Dimension-Extended Nine Intersection Model
(DE9IM)
▪ Es similar al anterior, pero en las celdas de la tabla se representa la
dimensión del resultado de la intersección
▪ Este modelo es el usado en los estándares internacionales, y por tanto
en Oracle, PostgreSQL y MySQL

45
▪ Por ejemplo, sea a el polígono amarillo de la izquierda y v el polígono
verde de la derecha

I(a) B(a) E(a)


I(v) 2 1 2
B(v) 1 0 1
E(v) 2 1 2
46
▪ Utilizando este modelo en el estándar se definen los siguientes
predicados espaciales entre pares de objetos:
▪ st_disjoint
▪ st_touches
▪ st_within
▪ st_crosses
▪ st_overlaps
▪ st_contains
▪ st_intersects
▪ st_equal

▪ No daremos la definición pura utilizando DE9IM, sino una más intuitiva

47
▪ Predicado st_disjoint
▪ Se define como
(g1  g2 = )
▪ Ejemplos

g1 g2
g2
g1 g2 g1

48
▪ Predicado st_touches
▪ Se define como
(I(g1)  I(g2) = )  (g1  g2  )
▪ Ejemplos

g1 g1 g2
g2

49
▪ Predicado st_within
▪ Se define como
(I(g1)  I(g2)  )  (g1  g2 = g1)
▪ Ejemplos

g2
g1 g2 g1 g2
g1
g2 g1
50
▪ Predicado st_crosses
▪ Se define como
(g1  g2  g1)  (g1  g2  g2) 
 dim(I(g1)  I(g2)) < max(dim(g1), dim(g2))
▪ Ejemplos

g1
g2
g2 g1 g1
g2

51
▪ Predicado st_overlaps
▪ Se define como
(g1  g2  g1)  (g1  g2  g2) 
 dim(I(g1)  I(g2))  max(dim(g1), dim(g2))
▪ Ejemplos

g2
g1 g2
g1

52
▪ Con estos cinco podemos definir los siguientes predicados:
▪ Predicado st_contains
st_contains(g1, g2)  st_within(g2, g1)
▪ Predicado st_intersects
st_intersects (g1, g2)  not (st_ disjoint(g1, g2))
▪ Predicado st_equal
st_equal(g1, g2)  st_within(g1, g2) and st_within(g2, g1)
▪ Con estos predicados se pueden calcular la mayoría de las relaciones
geométricas
▪ Para las restantes, se proporciona un predicado st_relate al que se le
proporciona la matriz DE9IM que debe cumplir el resultado

53
p/p p/l p/po l/l l/po po/po

st_disjoint

st_touches X
st_within

st_crosses X X X X
st_overlaps X X X X
st_equals X X X
54
▪ Una vez definidos los predicados espaciales, se definen las
operaciones espaciales que calculan nuevos valores geográficos a
partir de los existentes
▪ No se ha realizado un estudio exhaustivo y formal como en el caso
anterior
▪ Un primer tipo de operaciones son las operaciones de conjuntos
▪ st_union
▪ st_intersection
▪ st_difference

56
▪ Ejemplo de la operación st_union

g B1 g U1
g A1

57
▪ Ejemplo de la operación st_intersection

g B1
g A1 g I1

g I2
58
▪ Ejemplo de la operación st_intersection

gA4 g I6 g I9
g B6
g B5 g B4 g I7
g A3 g I8

59
▪ Ejemplo de la operación st_difference

g B1
g A1 gD1

60
▪ Otro tipo de operaciones espaciales son las de construcción de
geometría:

▪ st_boundary: calcula el borde de la geometría


▪ st_centroid: calcula un punto representativo para la geometría
▪ st_buffer: calcula un área de influencia de la geometría
▪ st_envelope: calcula el minimum bounding rectangle

61
▪ Ejemplo de la operación st_boundary
g1 g B1

g B2
▪ Ejemplos de la operación st_buffer

g1
g A1
g3 g A3

62
▪ A continuación, podemos definir operaciones escalares que calculen
valores numéricos a partir de objetos geográficos:
▪ Operaciones de medida: st_length, st_area
▪ Operaciones de distancia: st_distance
▪ Operaciones de utilidad: st_numGeometries, st_numPoints

▪ Y finalmente, podemos definir otras operaciones de difícil


clasificación:
▪ Transformación de coordenadas: st_transform
▪ Transformación de formato: st_asText, st_asSVG, st_asGML

64
SELECT [ DISTINCT ] { * | <expr1>[, <expr2>, ...] }
FROM <tabla1>, <tabla2>
WHERE <condición_where>
GROUP BY <group_by_expr1>[, <group_by_expr2>, …]
ORDER BY <expr_orderby1>[, <expr_orderby2>, ...]

66
• Sentencia SELECT: cláusulas
– SELECT: indica las columnas a recuperar
• DISTINCT para no obtener valores repetidos
– FROM: indica las tablas de donde se seleccionan los datos
– WHERE: predicado que expresa una condición que deben
cumplir las filas a devolver
– GROUP BY: permiten agrupar resultados
– ORDER BY: permite determinar el criterio de ordenación

67
▪ ¿Cuál es la localización del restaurante 'El Real'?
▪ Filtramos resultados usando la cláusula WHERE
▪ Cláusulas compuestas: AND, OR, NOT
▪ Las operaciones de PostGIS se usan como funciones

Recuperamos nombre, tipo y ubicación


SELECT nombre, tipo, ubicacion
FROM establecimiento
WHERE tipo = 'res' AND nombre = 'El Real';
Filtramos:
•Tipo debe ser igual a 'res'
Resultado: •Nombre debe ser igual a 'El Real'
"El Real";"res";
"0101000020E5640000300371B1D0BC20412647C8557E515241" 68
▪ ¿Cuál es la localización del restaurante 'El Real'?
▪ Las operaciones de PostGIS se usan como funciones
▪ Función "st_asText(geom)": recupera una geometría en formato textual, de
forma que podamos interpretar el resultado

Recuperamos nombre, tipo y ubicación


SELECT nombre, tipo, st_asText(ubicación)
FROM establecimiento
WHERE tipo = 'res' AND nombre = 'El Real';
El valor de ubicación lo devuelve
en el sistema de representación
Resultado: espacial de la columna
"El Real";"res"; "POINT(548456.346565342 4802041.34034899)"
69
▪ ¿Cuál es la localización del restaurante 'El Real'?
▪ Función "st_transform(geom, srid)": convierte un valor geográfico a otro
sistema de referencia
▪ El SRID 4326 trabaja con coordenadas geográficas

Recuperamos nombre, tipo y ubicación


SELECT nombre, tipo, st_asText(st_transform(ubicación, 4326))
FROM establecimiento
WHERE tipo = 'res' AND nombre = 'El Real';
Podemos usar el resultado en
un GPS (ojo, está en sistema decimal,
Resultado: no en grados)
"El Real";"res"; "POINT(-8.40190709999999 43.3696728)"
70
▪ ¿Cuál es la localización del restaurante 'El Real'?
▪ Funciones "st_x" y "st_y": obtener el eje X o Y de un punto

SELECT nombre, tipo, st_x(ubicacion), st_y(ubicacion)


FROM establecimiento
WHERE tipo = 'res' AND nombre = 'El Real';
Resultado:
"El Real";"res";548456.346565342;4802041.34034899
SELECT nombre, tipo,
st_x(st_transform(ubicacion, 4326)),
st_y(st_transform(ubicacion, 4326))
FROM establecimiento
WHERE tipo = 'res' AND nombre = 'El Real';
Resultado:
"El Real";"res";-8.40190709999999;43.3696728 71
▪ ¿En qué municipio se encuentra el restaurante anterior?
▪ La posición del restaurante anterior es:
(548456, 4802041)

SELECT codigoine, nombre, codigoccaa


FROM municipio
WHERE st_contains(extension, st_setsrid(st_point(548456, 4802041),
25829));

Resultado:
"15030";"A Coruña";"ES11"

72
▪ ¿En qué municipio se encuentra el restaurante anterior?
▪ Función "st_point(x, y)": devuelve un punto con las coordenadas indicadas

SELECT codigoine, nombre, codigoccaa


FROM municipio
WHERE st_contains(extension, st_setsrid(st_point(548456, 4802041),
25829));

Resultado:
"15030";"A Coruña";"ES11"

73
▪ ¿En qué municipio se encuentra el restaurante anterior?
▪ Función "st_setSrid(geom, srid)": permite indicar el SRID de un valor
geométrico
▪ Indicamos el SRID, en este caso 25829

SELECT codigoine, nombre, codigoccaa


FROM municipio
WHERE st_contains(extension, st_setsrid(st_point(548456, 4802041),
25829));

Resultado:
"15030";"A Coruña";"ES11"

74
▪ ¿En qué municipio se encuentra el restaurante anterior?
▪ Función "st_contains(g1, g2)": predicado espacial que evalúa si la
geometría "g1" contiene a "g2"
▪ La columna "extension" de la tabla "municipio" nos da la superficie de un
municipio

SELECT codigoine, nombre, codigoccaa


FROM municipio
WHERE st_contains(extension, st_setsrid(st_point(548456, 4802041),
25829));

Resultado:
"15030";"A Coruña";"ES11"

75
▪ ¿En qué municipio se encuentra el restaurante anterior?
▪ Es decir, sólo recuperamos aquellos municipios que contienen las
coordenadas indicadas.

SELECT codigoine, nombre, codigoccaa


FROM municipio
WHERE st_contains(extension, st_setsrid(st_point(548456, 4802041),
25829));

Resultado:
"15030";"A Coruña";"ES11"

76
▪ ¿En qué municipio se encuentra el bar 'A Pravia'?
▪ El resultado de una consulta se puede utilizar como argumento de una
función
▪ Por ejemplo, la siguiente consulta nos devuelve la ubicación del bar
llamado "A Pravia":

SELECT ubicacion
FROM establecimiento
WHERE tipo = 'bar' AND nombre = 'A Pravia';

77
▪ ¿En qué municipio se encuentra el bar 'A Pravia'?
▪ Usamos esa misma consulta como argumento para la función st_contains:

SELECT codigoine, nombre


FROM municipio
WHERE st_contains( extension,
(SELECT ubicacion
FROM establecimiento
WHERE tipo = 'bar' AND nombre = 'A Pravia')
);

Resultado:
"27065";"Vilalba"

78
▪ ¿En qué municipio se encuentra el bar 'A Pravia'?
▪ Function "st_within(g1, g2)": predicado espacial que evalúa si la geometría
"g1" está contenida en "g2"
SELECT codigoine, nombre ALTERNATIVA
FROM municipio
WHERE st_within(
(SELECT ubicacion
FROM establecimiento
WHERE tipo = 'bar' AND nombre = 'A Pravia'),
extension
);
Resultado:
"27065";"Vilalba"

79
▪ Gran parte del material fue adaptado de las siguientes
asignaturas, por lo que agradecemos a los docentes de las
mismas:
▪ Miguel R. Luaces y Alejandro Cortiñas, Universidade da Coruña,
Representación de información espacial, Máster en Geoinformática.
▪ Andrea Rodríguez y Diego Seco, Universidad de Concepción, Chile,
Bases de datos espaciales y sistemas de información geográfica,
Ingeniería Civil Informática.
Diego Seco Guillermo de Bernardo
[email protected] [email protected]
Laboratorio de Bases de Datos Laboratorio de Bases de Datos
Universidade da Coruña Universidade da Coruña

También podría gustarte