Bases de Datos Espaciales · Sesiones 3 y 4

Creación y manipulación de datos espaciales

Cómo se representan, se crean, se consultan y se modifican las geometrías en PostgreSQL + PostGIS, en Oracle Spatial y en una geodatabase de ArcGIS.

Guía de las sesiones 3 y 4

Los scripts datos-espaciales-postgis.sql y datos-espaciales-oracle.sql de esta misma carpeta cargan el municipio y traen todos los ejemplos. Conviene trabajar con las dos herramientas abiertas lado a lado.

Sesión 3: crear e insertar

0:00 – 0:30
Geometrías y SRID: tipos de geometría, coordenadas, sistemas de referencia y tolerancia.
0:30 – 1:10
Laboratorio: dibujar geometrías y ver cómo se escriben en WKT, PostGIS, Oracle y ArcGIS. Anatomía de SDO_GEOMETRY.
1:10 – 1:25
Descanso.
1:25 – 2:15
Ejecutar la Parte A de los dos scripts: tablas, inserciones, metadatos e índices. Revisar el resultado en el mapa del municipio y en QGIS.
2:15 – 2:30
Crear e insertar: ejemplos B.1 y B.2 en los dos motores, y su equivalente en ArcGIS.
2:30 – 3:00
Ejercicios 1, 2 y 3.

Sesión 4: consultar, medir y modificar

0:00 – 0:15
Repaso: cada estudiante inserta un punto nuevo en los dos motores.
0:15 – 1:05
Consultar y medir: WKT, tipo, SRID, coordenadas, área, longitud, distancia, centroide.
1:05 – 1:20
Descanso.
1:20 – 1:55
Modificar y validar: actualizar, eliminar, geometrías inválidas, transformación de coordenadas y metadatos.
1:55 – 2:50
Ejercicios 4 a 10.
2:50 – 3:00
Autoevaluación.
En los ejemplos de Oracle de esta página el SRID aparece como 9377. En el script se usa la variable &srid, que vale 9377 si la base lo tiene o 3116 si no (lo decide el script solo).

Tipos de geometría

Los tres motores siguen el modelo de Simple Features de la OGC, con nombres distintos. Toque cada tipo.

Sistema de referencia (SRID)

Una coordenada sin su sistema de referencia no significa nada. El SRID es el número que dice en qué sistema están las coordenadas. El Hospital San Rafael del municipio, en cuatro sistemas distintos:

SRIDXYUnidadUso
9377 · MAGNA-SIRGAS 2018 Origen Nacional48846002096250metrosProyección oficial única de Colombia. La del curso.
3116 · MAGNA-SIRGAS Bogotá1004031.351030309.92metrosProyección con origen en Bogotá, usada en datos de la región.
4326 · WGS84-74.0411634.870294gradosGPS, Google Maps, GeoJSON. X es longitud y Y es latitud.
3857 · Web Mercator-8242224.60542812.76metros "falsos"Mapas base web. Deforma las distancias: no sirve para medir.
Geográfico o proyectado

Un sistema geográfico usa grados sobre el elipsoide; uno proyectado aplana la Tierra y usa metros. Para medir áreas y distancias se trabaja en un sistema proyectado.

Mezclar SRID es un error

PostGIS rechaza comparar geometrías de SRID distintos. Oracle transforma o da error según la función. ArcGIS reproyecta al vuelo al dibujar, pero los geoprocesos pueden dar resultados raros.

Tolerancia

Distancia por debajo de la cual dos puntos se consideran el mismo. Oracle la pide en cada función (en el curso 0.005 m). ArcGIS la define en la geodatabase. PostGIS trabaja con precisión exacta.

¿Cómo se guarda por dentro?

PostGIS
Tipo geometry, guardado en binario (EWKB). El Colegio IE Técnico Central se ve así si se consulta sin convertir:
0101000020A124000000000080DFA152410000000016FC3F41
Los bytes A1240000 son el SRID 9377 y los dos últimos bloques de 8 bytes son X y Y.
Oracle Spatial
Tipo objeto SDO_GEOMETRY con cinco atributos legibles: tipo, SRID, punto, información de elementos y arreglo de ordenadas. Su anatomía se ve en la pestaña Crear e insertar.
ArcGIS (Geodatabase)
Campo Shape con la geometría en formato Esri. En una geodatabase empresarial sobre Oracle se guarda como SDE.ST_GEOMETRY o como SDO_GEOMETRY; sobre PostgreSQL, como sde.st_geometry o como geometry de PostGIS.

Laboratorio de geometrías

Dibuje haciendo clic en la cuadrícula (cada cuadro son 50 m) o escriba un WKT. A la derecha verá la misma geometría escrita para cada motor, con sus medidas.

Dibujar:
Ejemplos:

El municipio cargado por los scripts

Es lo que queda en la base después de ejecutar la Parte A. Toque cualquier objeto para ver sus datos, su geometría y cómo se insertó.

San Isidro de la Sabana

6 barrios, 5 vías, 2 corrientes de agua, 8 colegios, 3 centros de salud, 3 parques y 2 zonas de riesgo.

La cuadrícula es de 500 m. Las coordenadas reales están en EPSG:9377, alrededor de X = 4.884.000 y Y = 2.096.000.

Anatomía de SDO_GEOMETRY

El Parque Principal, tal como se inserta en Oracle. Toque cada línea.

Tipo (SDO_GTYPE)Elementos (etype, interpretación)WKT / PostGISArcGIS
2001SDO_POINT_TYPE, o (1,1,1)POINTPoint
2002(1,2,1) segmentos rectos · (1,2,2) arcosLINESTRINGPolyline
2003(1,1003,1) exterior · (n,2003,1) hueco · (1,1003,3) rectángulo · (1,1003,4) círculoPOLYGONPolygon
2005(1,1,n) n puntosMULTIPOINTMultipoint
2006una tripleta (o,2,1) por líneaMULTILINESTRINGPolyline de varias partes
2007una tripleta (o,1003,1) por polígono, más sus huecosMULTIPOLYGONPolygon de varias partes
2004mezcla de los anterioresGEOMETRYCOLLECTIONNo existe en una feature class

Crear e insertar en los tres entornos

Consultar y medir

Las mismas preguntas, respondidas en cada motor. En Oracle casi todas las funciones viven en el paquete SDO_GEOM y piden la tolerancia; en PostGIS empiezan por ST_.

Modificar, validar y transformar

Ejercicios

Los enunciados también están al final de cada script (Parte C). Resuélvalos primero en un motor y luego tradúzcalos al otro.

Autoevaluación