Curso Georeferenciacion IL

203

description

Curso Georeferenciacion IL

Transcript of Curso Georeferenciacion IL

Page 1: Curso Georeferenciacion IL
Page 2: Curso Georeferenciacion IL

Georreferenciación

Page 3: Curso Georeferenciacion IL

Temario

● Repaso de SQL● Obtención de datos georeferenciales (API de Google)

● Bases de datos espaciales: Postgis● Visualización de datos georeferenciales en aplicaciones: Qgis

● Tratamiento y presentación de información georeferencial con Pentaho

Page 4: Curso Georeferenciacion IL

Bases de datos

Definición y tipos de Bds

● Jerárquicas y de red (obsoletas)

● Transaccionales (optimizan operaciones)

● Relacionales (normalización)

● Multidimensionales (hechos y dimensiones)

● Estáticas (Sólo lectura. Uso: proyección y análisis)

● Dinámicas (Cambian constantemente, se actualizan, se ingresan datos, se borran. Uso: manipulación y consulta)

Conjunto de datos pertenecientes a un mismo contexto almacenados sistemáticamente. Ejemplo: una biblioteca

Page 5: Curso Georeferenciacion IL

Bases de datos

Las bases de datos están integradas por:

● Tablas

● Columnas

● Filas

● Registros

● Campos

Page 6: Curso Georeferenciacion IL

Bases de datos

Modelo relacional

Características

● Catálogos

● Llaves primarias

● Llaves foráneas

● No admite redundancia

● Sistemas relacionales

Page 7: Curso Georeferenciacion IL

Bases de datos

Modelo dimensional

Características

● Tablas de dimensiones

● Tablas de hechos

● Llaves subrogadas

● Admite redundancia

● Datawarehouses y Datamarts

Page 8: Curso Georeferenciacion IL

PostgreSQL

● PostgreSQL es un sistema de gestión de bases de datos objeto-relacional, distribuido bajo licencia BSD y con su código fuente disponible libremente.

● Es el sistema de gestión de bases de datos de código abierto más potente del mercado y en sus últimas versiones no tiene nada que envidiarle a otras bases de datos comerciales.

● PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en vez de multihilos para garantizar la estabilidad del sistema. Un fallo en uno de los procesos no afectará el resto y el sistema continuará funcionando.

Page 9: Curso Georeferenciacion IL

PostgreSQL

● AntecedentesEl antecesor de PostgreSQL es el proyecto Ingres (INteractive Graphics REtrieval System) que estuvo activo de 1977 a 1985. Su creador, el profesor Michael Stonebraker de la Universidad de Berkeley se basó incialmente en el “System R”. Ingres compitió con Oracle por el mercado. En 1985 Stonebraker regresa a Berkeley e inicia el proyecto PostgreSQL.

En 1994 los estudiantes Andrew Yu y Jolly Chen depuran el código para que fuera 100% en ANSI C, implementan un intérprete de lenguaje SQL y desarrollan la interfaz pgsql para las consultas. Lo liberaron en 1995 como PostgreSQL95.

En 1996 se cambia a PostgreSQL y se crea el PostgreSQL Global Development Team.

IBM había estado trabajando desde 1973 con los primeros conceptos, ideas y teorías sobre bases de datos relacionales.

Su proyecto "System R" fue entre otras cosas la primera implementación del lenguaje SQL (Structured Query Language).

Este proyecto, sus decisiones de diseño y muchos de los algoritmos usados, influenciaron muchos de los sistemas de bases de datos relacionales que aparecieron posteriormente.

Page 10: Curso Georeferenciacion IL

PostgreSQL

Características● Documentación completa.

● Licencia BSD (Admite el uso de su código fuente en software propietario).

● Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) y Windows 32/64bit.

● Funciones/procedimientos almacenados (stored procedures) en numerosos lenguajes de programacion, entre otros PL/pgSQL (similar al PL/SQL de Oracle), PL/Perl, PL/Python y PL/Tcl.

● Numerosos tipos de datos y posibilidad de definir nuevos tipos.

● Además de los tipos estándares en cualquier base de datos, tenemos disponibles, entre otros, tipos geométricos, de direcciones de red, de cadenas binarias, UUID, XML, matrices, etc.

● Soporta el almacenamiento de objetos binarios grandes

● APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, PHP, Lisp, Scheme, Qt y muchos otros.

Page 11: Curso Georeferenciacion IL

PostgreSQL

Instalación postgreSQL

● Fuentes

● Instalador

Interfaces

● psql

● pgAdmin

http://www.postgresql.org/

Page 12: Curso Georeferenciacion IL

PostgreSQL

Instalación postgreSQL● psql

Seguir las instrucciones del archivo INSTALL

./configure

gmake

su

gmake install

adduser postgres --crea el usuario postgres

mkdir /var/lib/pgsql/data --crea la carpeta de los datos

chown postgres /var/lib/pgsql/data --otorga privilegios a postgres sobre los datos

su - postgres

/usr/local/pgsql/bin/initdb -D /var/lib/pgsql/data --inicializa el cluster

/usr/local/pgsql/bin/postgres -D /var/lib/pgsql/data >logfile 2>&1 &

/usr/local/pgsql/bin/createdb test -- crea base de datos de prueba

/usr/local/pgsql/bin/psql test --abre la base de datos de prueba

Descargar y descomprimir archivos fuente:

● tar -xvzf postgresql-X.X.X.tar.gz

Page 13: Curso Georeferenciacion IL

PostgreSQL

● pgAdmin

Page 14: Curso Georeferenciacion IL

PostgreSQL

Iniciar y detener PosgreSQL Como superusuario

sara@Naomi: sudo su

Iniciar el servicioroot@Naomi:/home/sara# /etc/init.d/postgresql start

Detener el servicioroot@Naomi:/home/sara# /etc/init.d/postgresql stop

Para configurar que el servidor de Postgres arranque al levantar el equipo debemos editar el archivo start.conf

sara@Naomi: sudo su - postgres[sudo]pwd:

sara@Naomi: nano /etc/postgresql/9.3/main/start.conf

Page 15: Curso Georeferenciacion IL

PostgreSQL

Iniciar y detener PosgreSQL

Page 16: Curso Georeferenciacion IL

PostgreSQLComandos básicos de psql

Entrar desde una terminal con: sudo su - postgres

Como usuario postgres ejecutar la orden: psql [nombrebd]

● \? muestra el listado de los comandos de psql (salir con q)

● \h muestra la lista de órdenes para generar sentencias● \h [orden] muestra la sintaxis de las sentencias en PostgreSQL● \q salir de psql● \l enlistar bases de datos en el servidor● \c [nombrebase] conectarse a la base de datos con ese nombre● \c [nombrebase] - usuario● \p mostrar el contenido del búfer de consulta● \r reiniciar (limpiar) el búfer de consulta

Page 17: Curso Georeferenciacion IL

PostgreSQLComandos básicos de psql

● \w [nombrearchivo] escribir el bufer de consulta en un archivo

Los siguientes comandos con un S+ detallan la consulta:

● \d [nombretabla o índice o vista] despliega el detalle de la tabla, el índice o la vista

● \d enlista las tablas, vistas y secuencias● \dt enlista las tablas de la base de datos activa● \di enlista los índices● \dg enlista los roles● \dv enlista las vistas● \password [usuario] cambia el password de un usuario● \copyright muestra la versión de PostgreSQL instalada

Page 18: Curso Georeferenciacion IL

PostgreSQLComandos básicos de psql

● select current_user; indica quién es el usuario conectado● select session_user; permite saber qué usuarios están

conectados● set session authorization nuevousuario; permite cambiar de

usuario de + a - privilegios

● select version();

Page 19: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● CREATE DATABASE● CREATE TABLE● ALTER TABLE● DROP TABLE● INSERT● UPDATE● DELETE● SELECT

Cláusulas SELECT, FROM, INTO, WHERE Cláusulas GROUP BY, HAVING, ORDER BY Tipos de JOIN

● Subqueries

Page 20: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● CREATE DATABASELas tablas se definen en tres pasos:

– Dar el nombre a la tabla.

– Definir cada columna, incluyendo restricciones de columna:

● Primary Key: especifica las columnas que conforman la clave primaria de la tabla.

● Foreign key: indica las columnas que constituyen una clave externa en la tabla.

● References: indica la tabla que provee la clave foránea.● Check (P): especifica un predicado que debe satisfacer cada

fila de la tabla

– Definir las restricciones de la tabla.

Page 21: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● CREATE DATABASECREATE DATABASE nombre-tabla

[ [ WITH ] [ OWNER [=] nombre_de_usuario ]

[ TEMPLATE [=] plantilla ]

[ ENCODING [=] codificación ]

[ TABLESPACE [=] nombre_de_tablespace ]

[ CONNECTION LIMIT [=] límite_conexiones ] ]

Nota, para crear tablas debemos conectarnos a la BD recién creada con \c nombreBD

Ejemplo: CREATE DATABASE prueba1;

Page 22: Curso Georeferenciacion IL

PostgreSQL

Sentencias de SQL Básicas● CREATE TABLE

CREATE TABLE nombre-tabla(campo1 (tipo tamaño / dominio) [NOT NULL],

[campo2 (tipo tamaño / dominio) [NOT NULL]], [PRIMARY KEY (c1, c2, ..., cn)],

[FOREIGN KEY (c1) REFERENCES tabla-x], [CHECK (P)])

CREATE TABLE clientes(id_cliente char(5) primary key not null, nombre text,direccion text);

Page 23: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● CREATE TABLECREATE TABLE cuenta(id_cuenta char(10) PRIMARY KEY NOT NULL,id_cliente char(5) REFERENCES clientes(id_cliente),pagos char(10),saldo integerCHECK (saldo >= 0));

CREATE TABLE auxiliar(id_auxiliar integer PRIMARY KEY);CREATE INDEX mi_indice ON auxiliar (id_auxiliar ASC NULLS LAST);

Page 24: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● ALTER TABLEALTER TABLE nombre-tabla

{ADD | MODIFY

[COLUMN campo tipo [(tamaño)] [NOT NULL] [CONSTRAINT nombre-constraint tipo-constraint]] |

[CONSTRAINT nombre-constraint tipo-constraint (campo,…)]}

Adicionar un campo:

ALTER TABLE clientes ADD COLUMN limite_credito numeric(15,2);

Quitar el campo salario de una tabla:

ALTER TABLE cuenta DROP COLUMN pagos;

Page 25: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● DROP TABLE

DROP {TABLE tabla | INDEX índice ON tabla}

Ejemplo: eliminar el índice mi_Indice de la tabla auxiliar.

DROP INDEX mi_indice;

Ejemplo: eliminar una tabla. DROP TABLE auxiliar;

Page 26: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● INSERT

INSERT [INTO] {table-name | view-name} [(column-list)]{VALUES | (values-list) | select-statement }

INSERT INTO clientes (id_cliente, nombre, direccion, limite_credito)

VALUES ('A0001','Almacenes Estrada','Ayuntamiento No. 2132',50000);

INSERT INTO clientes (id_cliente, nombre, direccion, limite_credito)

VALUES ('A0002','Casa Rayo','Revolución No. 33',50000);

INSERT INTO clientes (id_cliente, nombre, direccion, limite_credito)

VALUES ('A0003','Miguel Nava','San Cristobal s/n',10000);

INSERT INTO clientes (id_cliente, nombre, direccion, limite_credito)

VALUES ('A0004','Waldos de México','Marina Nacional 9887',100000);

Page 27: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● INSERT

INSERT INTO cuenta (id_cuenta, id_cliente, saldo) VALUES ('A09B00005','A0001',25416);

INSERT INTO cuenta (id_cuenta, id_cliente, saldo) VALUES ('A09B00006','A0001',18950);

INSERT INTO cuenta (id_cuenta, id_cliente, saldo) VALUES ('A09B00007','A0002',35000);

INSERT INTO cuenta (id_cuenta, id_cliente, saldo) VALUES ('A09B00008','A0003',8750);

INSERT INTO cuenta (id_cuenta, id_cliente, saldo) VALUES ('A09B00009','A0004',5600);

INSERT INTO cuenta (id_cuenta, id_cliente, saldo) VALUES ('A09B00050','A0004',3420);

INSERT INTO cuenta (id_cuenta, id_cliente, saldo) VALUES ('A09B00054','A0002',4970);

Page 28: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● UPDATEUPDATE {table-name | view-name}

SET{column-list| variable-list| variable_and_column-list},…..[ WHERE { condition }]

UPDATE cuenta SET saldo=3975 WHERE id_cuenta='A09B00050';

UPDATE clientes SET nombre='Aldos de México' WHERE id_cliente='A0004';

Page 29: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● DELETE

DELETE FROM {table-name | view-name}[WHERE {condition} ]

DELETE FROM cuenta WHERE id_cuenta = 'A09B00050';

Page 30: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● SELECT

Cláusulas SELECT, FROM, INTO, WHERE

SELECT ... FROM ... WHERE

SELECT lista los atributos a mostrar en el resultado de la consulta.FROM lista las relaciones (tablas) que se deben analizar.WHERE se refiere a las condiciones de búsqueda que deberán cumplir los atributos en las relaciones

SELECT * FROM clientes;SELECT id_cliente, nombre, direccion, limite_credito FROM clientes WHERE limite_credito > 5000;

Page 31: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● SELECTLa cláusula INTO, permite guardar los resultados intermedios de una consulta

[SELECT ...] INTO tabla_into [FROM ...]

Los alias son útiles para evitar escribir nombres muy largos cada vez. Sólo funcionan en la consulta activa.

[SELECT…]

FROM expresión tabla [as] t_alias [, ...]

Page 32: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

SELECTLas condiciones de búsqueda pueden incluir:

Operadores de Comparación (=, <>, < y >).

● Porciones de cadenas de caracteres (SUBSTR)

● Rangos (BETWEEN y NOT BETWEEN)

● Listas (IN, NOT IN)

● Patrones de caracteres (LIKE y NOT LIKE)

● Valores desconocidos (IS NULL y IS NOT NULL)

● Combinaciones con conjunciones (AND, OR)

Page 33: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

SELECTEjemplos de condiciones de búsqueda:

● Operadores de comparación:WHERE SueldoBasico > 1000WHERE SUBSTR(CodigoPostal, 1, 3)= “SAN”

● Rangos (BETWEEN / NOT BETWEEN):WHERE SueldoBásico BETWEEN 1000 AND 5000

● Listas (IN / NOT IN):WHERE Departamento NOT IN ('ADM', 'SIS')

● Coincidencia de patrones o cadenas de caracteres (LIKE / NOT LIKE))WHERE NombreCompleto LIKE “LET%”

Page 34: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● SELECTCláusulas GROUP BY, HAVING, ORDER BY

SELECT {{columnas_de_agrupación,…}, {función_de_agregación,…}}

FROM …

[WHERE …]

GROUP BY {columnas_de_agrupación,…}

SELECT limite_credito FROM clientes GROUP BY limite_credito;

SELECT id_cliente, SUM(saldo) FROM cuenta GROUP BY id_cliente;

Page 35: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● SELECTCláusulas GROUP BY, HAVING, ORDER BY

SELECT {{columnas_de_agrupación,…}, {función_de_agregación,…}}

FROM …

[WHERE …]

GROUP BY {columnas_de_agrupación,…}HAVING condiciones_de_búsqueda

SELECT id_cliente, SUM(saldo) FROM cuenta GROUP BY id_cliente HAVING id_cliente LIKE 'A%' ORDER BY id_cliente;

    

Page 36: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● SELECTCláusulas GROUP BY, HAVING, ORDER BY

SELECT {columna 1, columna 2,…}

FROM …

[WHERE …]

[GROUP BY...]

[HAVING ...]

ORDER BY columna 1 [ASC|DESC],...

SELECT nombre, limite_credito FROM clientes ORDER BY nombre DESC;

Page 37: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● SELECTLos join sirven para combinar tablas, en PostgreSQL se definen tipos:

● CROSS JOIN

SELECT ... FROM table1 CROSS JOIN table2 ● INNER JOIN● LEFT OUTER JOIN

SELECT ... FROM table1 LEFT OUTER JOIN table2 ON conditional_expression ...

● RIGHT OUTER JOIN

SELECT ... FROM table1 RIGHT OUTER JOIN table2 ON conditional_expression ...

● FULL OUTER JOIN

SELECT ... FROM table1 FULL OUTER JOIN table2 ON conditional_expression ...

Page 38: Curso Georeferenciacion IL

PostgreSQLRepresentación gráfica de los tipos de Join

Page 39: Curso Georeferenciacion IL

PostgreSQLRepresentación gráfica de los tipos de Join

Page 40: Curso Georeferenciacion IL

PostgreSQLRepresentación gráfica de los tipos de Join

Page 41: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● SELECTEL join que se utiliza comunmente es el INNER JOIN:

[SELECT]

FROM TABLA1 [INNER] JOIN TABLA2

ON TABLA1.COLUMNA1 = TABLA2.COLUMNA1

[WHERE]

SELECT cl.nombre, cl.direccion, SUM(ct.saldo) FROM cuenta ct INNER JOIN clientes cl ON cl.id_cliente=ct.id_cliente GROUP BY cl.id_cliente ORDER BY cl.nombre;

Page 42: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● SELECT

Subqueries

SELECT cl.nombre, cl.limite_credito, ct.total_saldo FROM (SELECT id_cliente, SUM(saldo) total_saldo FROM cuenta GROUP BY id_cliente) ct INNER JOIN clientes cl ON cl.id_cliente= ct.id_cliente ORDER BY nombre;

Page 43: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● Operadores lógicos: AND, OR, NOT

● Operadores matemáticos:

Page 44: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● Operadores de comparación

Page 45: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● Funciones de agregación

SUM([ALL|DISTINCT] expresión)

Calcula el total de una expresión numérica para todas las filas o sólo las distintas.

AVG([ALL|DISTINCT] expresión)

Calcula el promedio de una expresión numérica para las filas involucradas.

MIN([ALL|DISTINCT] expresión)

Calcula el mínimo valor de una expresión numérica para las filas involucradas

MAX([ALL|DISTINCT] expresión)

Calcula el máximo valor de una expresión numérica para las filas involucradas.

COUNT([ALL|DISTINCT] expresión)

Cuenta el número de veces que se repite el valor de la expresión.

COUNT(*) Cuenta las filas seleccionadas

Page 46: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● Funciones matemáticas

Page 47: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas

● Funciones para operar con cadenas

Page 48: Curso Georeferenciacion IL

PostgreSQLSentencias de SQL Básicas● Funciones para operar

con fechas

Page 49: Curso Georeferenciacion IL

GeorreferenciaciónEs un término de reciente creación que se refiere al posicionamiento con el que se define la localización de un objeto espacial (representado mediante un punto, un vector, una línea, una superficie o un

volumen) en un sistema de coordenadas y un datum determinado, es decir, en un sistema de referencia espacial. Este proceso es utilizado frecuentemente en los Sistemas de Información Geográfica (SIG o GIS).

La definición tecnocientífica de georreferenciación de objetos en un espacio físico implica el establecimiento de relaciones entre las imágenes de raster o vector sobre una proyección geográfica o sistema de coordenadas.

Page 50: Curso Georeferenciacion IL

GeorreferenciaciónDatum

terrestre que junto con un modelo asociado a la forma de la Tierra (elipsoide) permiten definir un sistema de coordenadas geográfico. Datums horizontales son utilizados para describir un punto sobre la superficie terrestre.

Un datum geodésico es un punto, superficie o eje fijo que sirve como referencia de las medidas tomadas. En geodesia un datum es un conjunto de puntos de referencia sobre la superficie

Datums verticales miden elevaciones o profundidades (nivel del mar). Hay cientos de datums locales. Aunque el WGS84 se puede usar globalmente.

Page 51: Curso Georeferenciacion IL

Georreferenciación

DatumEl origen del sistema de coordenadas de un datum local no se encuentra en el centro de la tierra. El centro del esferoide de un datum local está desplazado respecto al centro de la tierra. NAD 1927 y el Datum Europeo de 1950 (ED 1950) son datums locales.

NAD 1927 se diseñó para que se ajustara a América del Norte razonablemente bien, mientras que ED 1950 se creó para su uso en Europa. Dado que un datum local alinea tan estrechamente su esferoide a una área determinada de la superficie de la tierra, no es adecuado para su uso fuera del área para la que se diseñó.

Page 52: Curso Georeferenciacion IL

Georreferenciación

Datos geodésicos en navegación, en fotogrametría (aérea), permiten la representación cartográfica de territorios muy extensos.

● La geodesia es la ciencia que se encarga de la determinación de la forma y dimensiones de la Tierra, así como de la medición de las leves variaciones en el campo magnético terrestre.

● Los datos geodésicos se usan en topografía,

Page 53: Curso Georeferenciacion IL

Georreferenciación

Sistemas de Referencia EspacialLos Sistemas de Referencia Espacial se clasifican en dos tipos según Sister (2003):

● Indirectos toman como referencia objetos con una posición conocida tales como límites estatales, monumentos, etc.

● Directos constan de un sistema coordenado y un datum.

El sistema de coordenadas de longitud y latitud global es un marco muy conocido para definir ubicaciones en el mundo real. Con sus diferentes proyecciones sobre el plano se hacen mapas; a los que se agregan retículas y marcas de graduación.

Page 54: Curso Georeferenciacion IL

GeorreferenciaciónSistemas de Referencia Espacial

Longitud

● Medida en grados del ángulo entre el meridiano 0 y cualquier punto de la Tierra, con el centro del planeta como vértice.

● Su rango va desde 0° hasta 180°

● Se mide hacia el este (E) o hacia el oeste (W).

Latitud

● Medida en grados del ángulo entre el ecuador y cualquier punto de la Tierra, con el centro del planeta como vértice.

● Su rango va desde 0° (el ecuador) hasta 90° (los polos).

● Se mide hacia el norte (N) o hacia el sur (S).

Page 55: Curso Georeferenciacion IL

Georreferenciación

Sistemas de Coordenadas

El primer sistema de coordenadas que aprendemos en la escuela es el Cartesiano (x,y) bidimensional, y (x,y,z) en tres dimensiones. Pero también conocemos las coordenadas polares (r,θ), las esféricas (r,θ,φ) y las cilíndricas (r,θ,z).

Page 56: Curso Georeferenciacion IL

GeorreferenciaciónProyeccionesLas proyecciones son transformaciones entre sistemas de coordenadas, los mapas son proyecciones de una superficie esférica sobre un plano, la más conocida es la Mercator (s. XVI).

Page 57: Curso Georeferenciacion IL

GeorreferenciaciónProyecciones

Tipos de proyección en función de la propiedad que conservan: conformes (ángulos), equivalentes (superficies), equidistantes (distancias), afilácticos (minimizan distorsión).

Page 58: Curso Georeferenciacion IL

GeorreferenciaciónProyeccionesDependiendo de nuestro interés podemos preservar los ángulos, las distancias o las superficies de la esfera original al plano.

Page 59: Curso Georeferenciacion IL

GeorreferenciaciónProyeccionesEn en toda proyección de una esfera a un plano habrá distorsiones ya sea en la forma, las distancias, las direcciones o las escalas.

Page 60: Curso Georeferenciacion IL

GeorreferenciaciónProyeccionesEn el Tratado de Tordesilla el Papa Alejandro VI decició que del meridiano 48° de Greenwich, los territorios recién descubiertos al Este eran para España, y al Oeste para Portugal.

Page 61: Curso Georeferenciacion IL

GeorreferenciaciónMapasLas propiedades de un mapa son:

•La escala •La proyección •Las coordenadas geográficas

La estructura matemática de un mapa le da la precisión y exactitud para hacer cálculos y mediciones.

La generalización en un mapa significa que se debe representar de la misma manera los objetos de iguales características.

Cuando elaboramos un mapa debemos considerar:

● La selección de los elementos útiles

● La simplificación de los datos

● Utilizar una simbología clara y universal

● Clasificar ordenadamente la información que se va a mostrar

● Omitir la información innecesaria

Page 62: Curso Georeferenciacion IL

Georreferenciación

Sistema de Información Geográfica (SIG ó GIS)

El National Center for Geographic Information and Analysis de USA define: “Es un sistema de hardware, software y procedimientos elaborados para facilitar la obtención, la gestión, la manipulación, el análisis, el modelado, la representación y la salida de datos espacialmente referenciados para resolver problemas complejos de planificación y gestión” (NCGIA, 1990).

Page 63: Curso Georeferenciacion IL

GeorreferenciaciónSistema de Información Geográfica

(SIG ó GIS)Los GIS integran, almacenan, editan, analizan, comparten y muestran información geográficamente referenciada. A través de aplicaciones de escritorio y para dispositivos móviles los usuarios pueden hacer consultas interactivas sobre mapas. Los gobiernos pueden diseñar estrategias logísticas para atender a la población, las empresas pueden descubrir nichos de mercado, un conductor puede conocer la ruta para llegar a su destino.

Page 64: Curso Georeferenciacion IL

Georreferenciación

Antecedentes históricos

En 1962 el Departamento Federal de Silvicultura y Desarrollo Rural en Otawa creó el primer GIS para hacer el inventario de tierras de Canadá. Fue más que una aplicación cartográfica pues permitía superponer capas de información, realizar mediciones y llevar a cabo la digitalización y escaneo de datos. El CGIS operó hasta los años noventa.

En 1854 el Dr. John Snow fue el primero en marcar sobre un mapa la incidencia de casos de cólera en el distrito de Soho en Londres. Con esa información pudo identificar un pozo de agua contaminado como origen del brote.

Page 65: Curso Georeferenciacion IL

Georreferenciación

Antecedentes históricos

En la década de los años ochenta Integraph, ESRI y CARIS ofertaron software comercial para GIS (Sistemas de Información Geográfica).

El Departamento de Defensa de los EU desarrolla GRASS para la supervisión y gestión medioambiental de territorios.

En los años noventa se generaliza esta tecnología a nivel del usuario doméstico gracias a las PCs.

Durante los inicios del s. XXI surge el concepto de visualización de datos GIS a través de internet y diferentes dispositivos locales y móviles lo que mueve a la necesidad de una estandarización de formatos.

Page 66: Curso Georeferenciacion IL

Georreferenciación

Análisis que debe realizar un GIS● Contigüidad: Encontrar áreas en una región determinada.

● Coincidencia: Análisis de superposición de puntos, líneas, polígonos y áreas.

● Conectividad. Análisis sobre entidades gráficas que representen redes de conducción, tales como:

● Apareamiento de direcciones: Acople de información de direcciones a las entidades gráficas.

● Análisis digital del terreno: Análisis de la información de superficie para el modelado de fenómenos geográficos continuos. Con los modelos digitales de terreno (DTM: la representación de una superficie por medio de coordenadas X, Y, Z) que son la información básica para el análisis de superficies.

Page 67: Curso Georeferenciacion IL

Georreferenciación

Análisis que debe realizar un GIS● Enrutamiento: Cómo se mueve el elemento conducido a lo largo de la

red.

● Radio de acción: Alcance del movimiento del elemento dentro de la red.

● Operación sobre mapas: Uso de expresiones lógicas y matemáticas para el análisis y modelado de atributos geográficos. Estas operaciones son soportadas de acuerdo con el formato de los datos (raster o vectorial)

● Geometría de coordenadas: Operaciones geométricas para el manejo de coordenadas terrestres por medio de operadores lógicos y aritméticos. Algunas de esas operaciones son: proyecciones terrestres de los mapas, transformaciones geométricas (rotación, traslación, cambios de escala), precisión de coordenadas, corrección de errores.

● Salida y representación de la información

Page 68: Curso Georeferenciacion IL

Georreferenciación

Aplicaciones

PLANIFICACIÓN, GESTIÓN Y POLÍTICA URBANA

● zonificación

● adquisición de terrenos

● desarrollo económico

● aplicación de códigos

● programas de renovación de viviendas

● respuesta a emergencias

● análisis de crímenes

● tasación tributaria

CIENCIAS MEDIOAMBIENTALES

● vigilancia del riesgo medioambiental

● modelado de escorrentías (corrientes de agua rebosadas)

● gestión de cuencas, llanuras aluviales, humedales, acuíferos

● análisis de impacto medioambiental

● instalaciones para materiales tóxicos

● modelado de aguas subterráneas y rastreo de contaminación

Page 69: Curso Georeferenciacion IL

Georreferenciación

AplicacionesCIENCIA POLÍTICA

● nueva división en distritos

● análisis de resultados electorales

● modelado de previsiones

INGENIERÍA CIVIL/SERVICIOS

● ubicación de instalaciones subterráneas

● diseño de trazado para autopistas, tránsito

● coordinación en el mantenimiento de infraestructuras

COMERCIO

● análisis demográfico

● penetración del mercado / análisis de acciones

● selección de ubicaciones

GESTIÓN DE LA EDUCACIÓN

● mantenimiento del área de asistencia

● proyecciones de matrícula

● ruta del autobús escolar

Page 70: Curso Georeferenciacion IL

Georreferenciación

AplicacionesBIENES INMUEBLES

● precios del terreno en vecindades

● análisis del impacto del tráfico

● determinación del mejor uso

ASISTENCIA SANITARIA

● epidemiología

● análisis de necesidades

● inventario de servicios

Page 71: Curso Georeferenciacion IL

GeorreferenciaciónAplicaciones: GPS

El Sistema Global de Navegación por Satélite (GNSS) permite determinar en todo el mundo la posición de un objeto, una persona o un vehículo con una precisión hasta de centímetros (si se utiliza GPS diferencial), aunque lo habitual son unos pocos metros de precisión. El sistema fue desarrollado, instalado y empleado por el Departamento de Defensa de los Estados Unidos. El sistema GPS está constituido por 24 satélites y utiliza la triangulación para determinar en todo el globo la posición con una precisión de más o menos metros. El GPS funciona mediante una red de 24 satélites en órbita sobre el planeta tierra, a 20 200 km, con trayectorias sincronizadas para cubrir toda la superficie de la Tierra.

Cuando se desea determinar la posición, el receptor que se utiliza para ello localiza automáticamente como mínimo tres satélites de la red, de los que recibe unas señales indicando la identificación y la hora del reloj de cada uno de ellos. Por triangulación el receptor determina los tiempos y con ello las distancias para cada satélite, y con las coordenadas de ubicación de los satélites determina su propia posición.

Page 72: Curso Georeferenciacion IL

Georreferenciación

Creación de datos digitalesEl método más utilizado es la digitalización, donde a partir de un mapa impreso o con información tomada en campo se transfiere a un medio digital por el empleo de un programa de Diseño Asistido por Ordenador (DAO o CAD) con capacidades de georreferenciación. Con esta información se integran los datasets de los GIS.

Dada la amplia disponibilidad de imágenes orto-rectificadas (tanto de satélite como aéreas), la digitalización por esta vía se está convirtiendo en la principal fuente de extracción de datos geográficos. Esta forma de digitalización implica la búsqueda de datos geográficos directamente en las imágenes aéreas en lugar del método tradicional de la localización de formas geográficas sobre un tablero de digitalización.

Page 73: Curso Georeferenciacion IL

Georreferenciación

● Base de datos espacial:Sistema administrador de BD que maneja datos espaciales. Requieren de un Sistema de Referencia Espacial (SRE) para definir la localización y la relación entre objetos. Los SRE pueden ser georreferenciados (sus valores se proyectan sobre la superficie terrestre) y no georreferenciados. La estructura de la BD se organiza en capas temáticas (geográficas).

Page 74: Curso Georeferenciacion IL

Georreferenciación

● Capas geográficas:Son las características geográficas del evento o área que se desea modelar (división política, hidrología, caminos, contornos, etc.), las capas se deben almacenar en archivos separados porque representan atributos diferentes.

Page 75: Curso Georeferenciacion IL

Georreferenciación● Entidad: es un objeto, distinguible de lo que le rodea;

formalmente es una representación digital del componente descriptivo de un rasgo geográfico (ejemplos: carretera, presa, línea de trasmisión, área agrícola).

● Representación geométrica: Representación digital del componente espacial de un rasgo geográfico. Existen 3 tipos básicos de representación geométrica: punto, línea y área.

● Datos espaciales (geográficos): Representan información sobre la geografía como lo son las formas geométricas, redes, superficies (áreas), ubicaciones e imágenes de los objetos. Estos objetos pueden ser ubicaciones puntuales u objetos de mayor extensión como lo son países, carreteras o cuerpos de agua.

Page 76: Curso Georeferenciacion IL

GeorreferenciaciónDatawarehouse espacial

● Es una colección de datos que añade la geografía de los datos para la toma de decisiones, extiende la definición tradicional de un DWH y es Geo-Relacional, es decir, combina e integra los datos espaciales con los datos descriptivos en su estructura.

Page 77: Curso Georeferenciacion IL

PostGISTipos de datos

Los datos en una BDG (Base de datos geográfica) se clasifican en tres tipos:

● Vectorial. Comprende los datos de las cartas geográficas a diferentes escalas.

● Ráster. Contiene información tipo imagen, tal como las ortofotos digitales y los modelos digitales de elevación (matriz de celdas en espacio continuo).

● Alfanumérico. Comprende los datos provenientes de los reportes de campo.

Page 78: Curso Georeferenciacion IL

PostGIS● Tipos de datos

Vectorial. Comprende los datos de las cartas geográficas a diferentes escalas.

● Almacenamiento de información discreta

● Información compacta y con mejor compatibilidad con bases de datos relacionales, fácil de actualizar

● Representa los objetos por puntos, líneas y polígonos

● Formatos: shp, dwg, dxf, gml

● Desventaja: es más difícil de analizar y y dar mantenimiento a su estructura

Page 79: Curso Georeferenciacion IL

PostGIS● Tipo de dato vectorial

El shapefile es probablemente el formato más popular para datos vectoriales.

● Cada shapefile tiene tres componentes (archivos) indispensables:

● Un archivo con extensión .SHP– Es el principal y almacena la geometría.

● Un archivo con extensión .SHX– Índice para la geometría.

● Un archivo con extensión .DBF– Base de datos que almacena la información de los atributos.

Page 80: Curso Georeferenciacion IL

PostGIS● Tipo de dato vectorial● Puede haber archivos opcionales

● .PRJ (¡Muy importante! Tiene la información sobre la proyección y demás elementos cartográficos).

● .SBN y .SBX (Otros índices espaciales).

● .ATX (Índice sobre los atributos no espaciales).

● .SHP.XML (Metadatos)

(Véase la carpeta “shapefiles” de qgis_sample_data)

Page 81: Curso Georeferenciacion IL

PostGISOtros formatos

● KML (Key Hole Markup Language)/KMZ

– Es un formato muy apropiado para usarse en aplicaciones web.

– Está estandarizado por el OGC (Open GeoSpatial Consortium).

– Popularizado por Google Earth y Google Maps.

– KMZ es una versión comprimida de KML.

● GML (Geography Markup Language)

– Estándar del OGC basado en XML.

● GeoJSON

– Estándar para datos geográficos basado en JSON.

Page 82: Curso Georeferenciacion IL

PostGISTipos de datos

Ráster. Contiene información tipo imagen.● Divide los objetos de la base de

datos en una retícula o malla regular de pequeñas celdas (a las que se denomina pixeles) y atribuye un valor numérico a cada celda como representación de su valor temático.

● Cuanto mayor sea el tamaño de las celdas, menor es la precisión o detalle en la representación del espacio geográfico (resolución).

● La estructura de los datos es simple y las operaciones de superposición son sencillas.

● Formatos: tiff, ecw, jpg, MrSID, etc.

● Representación continua.

● Desventaja: menor resolución y mayor uso de memoria.

Page 83: Curso Georeferenciacion IL

PostGIS● Tipo de dato ráster

Su gran ventaja es la simplicidad, tanto en términos

de administración de datos como de algoritmos de

análisis y modelado, incluyendo el álgebra raster (o

álgebra de mapas)

Page 84: Curso Georeferenciacion IL

PostGISInstalación de PostgreSQL 9.3, PostGIS 2.1 PGAdmin 1.18 para Ubuntu 12.04-13.10

● Agregar el repositorio a sources.list desde una terminal ejecutar las instrucciones:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" >> /etc/apt/sources.list'

wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -

sudo apt-get update

Page 85: Curso Georeferenciacion IL

PostGIS

Instalación de PostgreSQL 9.3, PostGIS 2.1 PGAdmin 1.18 para Ubuntu 12.04-13.10

● Instalar (incuyendo el adminpack)

sudo apt-get install Postgresql-9.3-postgis pgadmin3 postgresql-contrib

● Habilitar el adminpack (usando la consola psql)

sudo -u postgres psql

CREATE EXTENSION adminpack;

\q (salir del psql)

Page 86: Curso Georeferenciacion IL

PostGIS

Instalación de PostgreSQL 9.3, PostGIS 2.1 PGAdmin 1.18 para Ubuntu 12.04-13.10

● Crear otro superusuario para postgreSQL

sudo su – postgres

createuser -d -E -i -l -P -r -s yourUserName

● Capturar el password deseado dos veces

● exit (cerrar terminal)

Page 87: Curso Georeferenciacion IL

PostGIS

Instalación sólo de PostGIS 2.1 para Ubuntu 12.04-13.10

● Instalación

sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable

sudo apt-get update

sudo apt-get install postgis

● Habilitar las bases de datos espaciales

CREATE EXTENSION postgis;

CREATE EXTENSION postgis_topology;

Page 88: Curso Georeferenciacion IL

PostGIS

Cambio de contraseña al usuario postgres para ubuntu

● Desde una terminal ejecutar

sudo su postgres

psql

● Ejecutar desde la terminal psql

alter user postgres with password 'passwd';

● Si aparece el mensaje 'ALTER ROLE' la contraseña se ha modificado correctamente

Page 89: Curso Georeferenciacion IL

PostGISInstalación de PostGIS

Fedora, RedHatConfigurar repositorio:

● Abrir y editar archivos● >sudo gedit

/etc/yum.repos.d/fedora.repo● (en línea 10 insertar

exclude=postgresql* )● >sudo gedit

/etc/yum.repos.d/fedora-updates.repo

● (en línea 9 insertar exclude=postgresql* )

● Descargar e instalar PGDG RPM (verificar versión en páginahttp://yum.postgresql.org/repopackages.php)

● >curl -O http://yum.postgresql.org/9.2/fedora/fedora-16-i386/pgdg-fedora92-9.2-5.noarch.rpm

● >sudo rpm -ivh pgdg-fedora92-9.2-5.noarch.rpm

● Instalar PostGIS>sudo yum install postgis2_92

Page 90: Curso Georeferenciacion IL

PostGIS

¿Qué es PostGis?PostGIS: Es una extensión al sistema de base de datos objeto-relacional PostgreSQL.

Permite el uso de objetos GIS(Geographic information systems). PostGIS incluye soporte para índices GiST basados en R-Tree, y funciones básicas para el análisis de objetos GIS.

Fue creado por Refractions Research Inc, como un proyecto de investigación de tecnologías de bases de datos espaciales. Ha sido publicado bajo licencia GNU.

Con PostGIS podemos usar todos los objetos que aparecen en la especificación OpenGIS como puntos, líneas, polígonos, multilíneas, multipuntos, y colecciones geométricas.

Page 91: Curso Georeferenciacion IL

PostGIS

Habilitar PostGIS

SELECT name, default_version,installed_versionFROM pg_available_extensions WHERE name LIKE ’postgis%’ ;

postgres=# CREATE EXTENSION postgis;CREATE EXTENSIONpostgres=# CREATE EXTENSION postgis_topology;CREATE EXTENSIONpostgres=# CREATE EXTENSION fuzzystrmatch;CREATE EXTENSIONpostgres=# CREATE EXTENSION postgis_tiger_geocoder;CREATE EXTENSION

Page 92: Curso Georeferenciacion IL

PostGIS

Verificar instalación de PostGIS

postgres=# Select na.address, na.streetname, na.streettypeabbrev, na.zip FROM normalize_address('1 Devonshire Place, Boston, MA 02109') AS na;

address | streetname | streettypeabbrev | zip ---------+------------+------------------+------- 1 | Devonshire | Pl | 02109(1 fila)

Page 93: Curso Georeferenciacion IL

PostGISObjetos GISRepresentados en modo texto son:

● POINT(0 0 0) → POINT(X Y Z)

● LINESTRING(0 1,3 2,4 5) → LINESTRING(X1 Y1,X2 Y2,...,XN YN)

● MULTIPOINT(1 1 ,2 4,4 1)

● POLYGON [una o más líneas cerradas simples]

Page 94: Curso Georeferenciacion IL

PostGISObjetos GISRepresentados en modo texto son:

● MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))

● MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))

Page 95: Curso Georeferenciacion IL

PostGIS

Objetos GISRepresentados en modo texto son:

● GEOMETRYCOLLECTION(POINT(2 3 9),LINESTRING((2 3 4,3 4 5))

● CIRCULARSTRING(0 0, 1 1, 1 0)

● COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1))

● CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1))

● MULTICURVE((0 0, 5 5),CIRCULARSTRING(4 0, 4 4, 8 4))

Page 96: Curso Georeferenciacion IL

PostGIS

Objetos GISRepresentados en modo texto son:

● MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1)),((10 10, 14 12, 11 10, 10 10),(11 11, 11.5 11, 11 11.5, 11 11)))

● Rasters

y sus colecciones.

PostGIS admite coordenadas en 2D, 3D y 4D.

Page 97: Curso Georeferenciacion IL

PostGIS

Forma canónica y forma estándarOpenGIS define dos formas de representar los objetos espaciales:

1. (WKT)Well-Know Text es una codificación o sintaxis en formato ASCII diseñada para describir objetos espaciales expresados de forma vectorial. Esta sintaxis es un estándar del OGC (Open Geospatial Consortium) que se usa para especificar los componentes de un SRS y sus respectivos valores. Muchas de las bases de datos espaciales, y en especial PostgreSQL a través de su extensión para el almacenamiento y análisis espacial PostGIS, utiliza esta codificación.

Page 98: Curso Georeferenciacion IL

PostGIS

Forma canónica y forma estándar2. (WKB)Well-Know Binary. Esta representación de valores geométricos está definida por la especificación OpenGIS. También está definida en el estándar ISO “SQL/MM Part 3: Spatial”.

WKB se utiliza para intercambiar datos como cadenas binarias representadas por valores BLOB que contienen información geométrica WKB.

WKB utiliza enteros sin signo de un byte, enteros sin signo de cuatro bytes, y números de ocho bytes de doble precisión (formato IEEE 754). Un byte son ocho bits.

Page 99: Curso Georeferenciacion IL

PostGIS

Forma canónica y forma estándar

Esta sentencia lee EWKT y regresa HEXEWKB en el proceso de una entrada/salida de canónico (ascii) a estándar (binario).

SELECT 'SRID=4;POINT(0 0)'::geometry;

Page 100: Curso Georeferenciacion IL

PostGIS

SRIDCada instancia espacial tiene un IDentificador de Referencia eSpacial (SRID) dada la especificación OpenGIS. El SRID corresponde a un sistema de referencia espacial basado en el elipsoide concreto usado para la creación de mapas de tierra plana o de tierra redonda.

El SRID es requerido cuando insertamos un objeto espacial en la base de datos.

Por ejemplo, la función GeometryFromText requiere un numero SRID.

Page 101: Curso Georeferenciacion IL

PostGIS

Hay dos tablas de meta-datos en la especificación OpenGIS

SPATIAL_REF_SYS:

Contiene un identificador numérico y una descripción textual del sistema de coordenadas espacial de la base de datos.

CREATE TABLE SPATIAL_REF_SYS(

SRID INTEGER NOT NULL PRIMARY KEY,

AUTH_NAME VARCHAR(256),

AUTH_SRID INTEGER,

SRTEXT VARCHAR(2048),

PROJ4TEXT VARCHAR(2048) )

Page 102: Curso Georeferenciacion IL

PostGISLas columnas de las tablas son la siguientes:

SRID: Valor entero que identifica el sistema de referencia espacial.

AUTH_NAME: El nombre del estándar para el sistema de referencia. Por ejemplo: EPSG.

AUTH_SRID: El identificador según el estándar AUTH_NAME. En el ejemplo anterior es el id según EPSG.

SRTEXT: Una Well-Know Text representación para el sistema de referencia espacial. (V. ejemplo en la siguiente lámina)

PROJ4TEXT: Proj4 es una librería que usa PostGIS para transformar coordenadas . Esta columna contiene una cadena con definición de las coordenadas de Proj4 para un SRID dado.

Page 103: Curso Georeferenciacion IL

PostGIS

Contenido de spatial_ref_sys

SELECT srid,auth_name, auth_srid, srtext, proj4text FROM spatial_ref_sys LIMIT 100;

Hay más de 3000 sistemas de referencia espaciales en el catálogo de la OGC.

La columna proj4text tiene la cadena de definición de coordenadas para el SRID particular:

+proj=utm +zone=10 +ellps=clrk66 +datum=NAD27 +units=m

Page 104: Curso Georeferenciacion IL

PostGIShttp://spatialreference.org/

Page 105: Curso Georeferenciacion IL

PostGISPor ejemplo, el SRS WGS84 se representa en WKT como:PROJCS[“NAD83/UTM Zone 10N”,

GEOGCS[“NAD83”,DATUM[“North_American_Datum_1983”,

SPHEROID[“GRS 1980”,6378137,298.257222101]],

PRIMEM[“Greenwich”,0],UNIT[“degree”,0.0174532925199433]],

PROJECTION[“Transverse_Mercator”],

PARAMETER[“latitude_of_origin”,0],

PARAMETER[“central_meridian”,-123],

PARAMETER[“scale_factor”,0.9996],

PARAMETER[“false_easting”,500000],

PARAMETER[“false_northing”,0], UNIT[“metre”,1]]

Page 106: Curso Georeferenciacion IL

PostGISPara México central tenemos el SRS NAD27:PROJCS["NAD27 / New Mexico Central",

GEOGCS["NAD27",

DATUM["North_American_Datum_1927",

SPHEROID["Clarke 1866",6378206.4,294.9786982138982,

AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],

PRIMEM["Greenwich",0,

AUTHORITY["EPSG","8901"]],

UNIT["degree",0.01745329251994328,

AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4267"]],

Page 107: Curso Georeferenciacion IL

PostGISPara México central tenemos el SRS NAD27: UNIT["US survey foot",0.3048006096012192,

AUTHORITY["EPSG","9003"]],

PROJECTION["Transverse_Mercator"],

PARAMETER["latitude_of_origin",31],

PARAMETER["central_meridian",-106.25],

PARAMETER["scale_factor",0.9999],

PARAMETER["false_easting",500000],

PARAMETER["false_northing",0],

AUTHORITY["EPSG","32013"],

AXIS["X",EAST], AXIS["Y",NORTH]]

Page 108: Curso Georeferenciacion IL

PostGISPara México central tenemos el SRS NAD27:INSERT into spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) values ( 932013, 'epsg', 32013, '+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs ', 'PROJCS["NAD27 / New Mexico Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982138982,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32013"],AXIS["X",EAST],AXIS["Y",NORTH]]');

Page 109: Curso Georeferenciacion IL

PostGISLos códigos EPSG

● Son códigos que hacen referencia a una gran cantidad de SRS y a otros objetos cartográficos como elipsoides y datums.

● La European Petroleum Survey Group (EPSG) era una organización científica relacionada con la industria europea del petróleo. Como parte de sus actividades recopiló la lista de objetos cartográficos que luego se convirtió en un estándar. Fue absorbida en 2005 por la International Association of Oil & Gas Producers (OGP).

● Algunos códigos EPSG de uso común son: 4326. Del SRS WGS84; 3857. Del SRS WGS84/Pseudo Mercator, usado por los principales servicios de mapas en Internet (Google Maps, OpenStreetMap, Bing Maps y otros). Puede encontrarse con el código alterno 900913.

Page 110: Curso Georeferenciacion IL

PostGIS

La 2a tabla de meta-datos en la especificación OpenGIS es

GEOMETRY_COLUMNS:

CREATE TABLE GEOMETRY_COLUMNS(

F_TABLE_CATALOG VARCHAR(256) NOT NULL,

F_TABLE_SCHEMA VARCHAR(256) NOT NULL,

F_TABLE_NAME VARCHAR(256) NOT NULL,

F_GEOMETRY_COLUMN VARCHAR(256) NOT NULL,

COORD_DIMENSION INTEGER NOT NULL,

SRID INTEGER NOT NULL,

TYPE VARCHAR(30) NOT NULL )

Page 111: Curso Georeferenciacion IL

PostGISLa 2a tabla de meta-datos en la especificación OpenGIS es

F_TABLE_CATALOG,F_TABLE_SCHEMA,F_TABLE_NAME.

Distingue totalmente la tabla de características que contiene la columna geométrica.

F_GEOMETRY_COLUMN: Nombre de la columna geométrica en la tabla de características.

COORD_DIMENSION: Dimensión espacial de la columna(2D o 3D).

SRID: Es una clave foránea que referencia SPATIAL_REF_SYS.

TYPE: Tipo de objeto espacial. POINT, LINESTRING, POLYGON, MULTYPOINT, GEOMETRYCOLLECTION. Para un tipo heterogéneo debo usar el tipo GEOMETRY.

Page 112: Curso Georeferenciacion IL

PostGIS

● Crear una base de datos espacial● Desde la terminal como usuario postgres:

postgres@Naomi:~$ createdb -E UTF8 -O postgres -U postgres demo

● demo=# CREATE EXTENSION postgis;

● demo=# CREATE EXTENSION postgis_topology;

● demo=# CREATE EXTENSION fuzzystrmatch;

● demo=# CREATE EXTENSION postgis_tiger_geocoder;

Page 113: Curso Georeferenciacion IL

PostGISCarga de un script en psqlComo usuario postgres ejecutar las siguientes instrucciones:

psql -d demo -f /home/sara/Documentos/scripts_1/city.sql

psql -d demo -f /home/sara/Documentos/scripts_1/country.sql

psql -d demo -f /home/sara/Documentos/scripts_1/river.sql

psql -d demo -f /home/sara/Documentos/scripts_1/street.sql

psql -d demo -f /home/sara/Documentos/scripts_1/water.sql

Page 114: Curso Georeferenciacion IL

PostGISCreación de una tabla con datos espacialesCREATE TABLE city (

gid int4 , AREA float8, PERIMETER float8,

CITIES_ numeric(38,9), CITIES_ID numeric(38,9), CITY_NAME varchar, GMI_ADMIN varchar,

ADMIN_NAME varchar, FIPS_CNTRY varchar,

CNTRY_NAME varchar, STATUS varchar,

POP_RANK int4, POP_CLASS varchar,

PORT_ID int4);

SELECT AddGeometryColumn(

'public','city','the_geom','-1','POINT',2);

Page 115: Curso Georeferenciacion IL

PostGISCreación de una tabla con datos espaciales

CREATE TABLE country(

gid serial, area float8, perimeter float8, cntry_ numeric,cntry_id numeric, fips_cntry varchar, gmi_cntry varchar, cntry_name varchar, sovereign varchar, pop_cntry float8, curr_type varchar, curr_code varchar, landlocked varchar, color_map varchar, sovereign_ varchar);

SELECT AddGeometryColumn('','country','the_geom','-1','MULTIPOLYGON',2);

Page 116: Curso Georeferenciacion IL

PostGISCreación de una tabla con datos espaciales

CREATE TABLE river (

gid int4 , NAME varchar, DIAK_CDE varchar, NAME2 varchar, DIAK_CDE2 varchar, TYPE varchar, STATUS varchar, NAVIG varchar);

SELECT AddGeometryColumn('public','river','the_geom', '-1','MULTILINESTRING',2);

Page 117: Curso Georeferenciacion IL

PostGISCreación de una tabla con datos espaciales

CREATE TABLE street (gid int4 , TYPE varchar);

SELECT AddGeometryColumn('public','street','the_geom','-1','MULTILINESTRING',2);

Page 118: Curso Georeferenciacion IL

PostGISCreación de una tabla con datos espaciales

CREATE TABLE water (

gid int4 , AREA float8, PERIMETER float8, AA_HYDROP_ numeric(38,9), NAME varchar, DIAK_CDE varchar, NAME2 varchar, DIAK_CDE2 varchar, TYPE varchar, STATUS varchar, NAVIG varchar);

SELECT AddGeometryColumn('public','water','the_geom','-1','MULTIPOLYGON',2);

Page 119: Curso Georeferenciacion IL

PostGIS

Inserción en una tabla con datos espaciales

INSERT INTO city values ('0','0.000','0.000','20.000000000','53.000000000', 'Bismarck','USA-NDA','North Dakota','US', 'United States','Provincial capital','7', 'Less than 50,000','0', ST_GeometryFromText('POINT (-100.7833025517 46.79999918311)',-1) );

Page 120: Curso Georeferenciacion IL

PostGISInserción en una tabla con datos espacialesINSERT INTO "country" (gid,"area","perimeter","cntry_","cntry_id","fips_cntry","gmi_cntry","cntry_name","sovereign","pop_cntry","curr_type","curr_code","landlocked","color_map","sovereign_", "the_geom") VALUES ('1','1694.022','2210.580','252.000000000','252.000000000','CA','CAN','Canada','Canada','28402320.0000','Dollar','CAD','N','4','Canada',ST_GeometryFromText('MULTIPOLYGON(((-101.004056 48.999968 ,-101.004056 51.5941 ,-85.908544 51.5941 ,-85.908544 47.340395 ,-86.014725 47.383881 ,-86.051392 47.39888 ,-86.46666 47.567215 ,-86.568893 47.60833 ,-86.884445 47.734718 ,-87.201401 47.860275 ,-87.341675 47.915543 ,-87.444717... 49.371658 ,-95.152786 49.376656 ,-95.154175 49.366386 ,-95.154449 49.333328 ,-95.153961 48.999435 ,-99.835556 49 ,-100.002228 49 ,-100.501953 48.999718 ,-101.004056 48.999968 )))',-1) );

Page 121: Curso Georeferenciacion IL

PostGIS

Inserción en una tabla con datos espaciales

ALTER TABLE ONLY country ADD CONSTRAINT country_pkey PRIMARY KEY (gid);

SELECT setval ('country_gid_seq', 1, true);

END;

(modifica manualmente el valor secuencial country_gid_seq)

Page 122: Curso Georeferenciacion IL

PostGIS

Inserción en una tabla con datos espaciales

INSERT INTO river VALUES('0','Manistee',NULL,NULL,NULL,'stream', 'secondary','nonnavigable',

ST_GeometryFromText('MULTILINESTRING ((-86.350807 44.252991 ,-86.179604 44.221001 ,-86.079018 44.244381 ,-85.914146 44.22971 ,-85.908544 44.229205 ))', -1) );

Page 123: Curso Georeferenciacion IL

PostGIS

Inserción en una tabla con datos espaciales

INSERT INTO street

VALUES('0','main road', ST_GeometryFromText('MULTILINESTRING ((-85.908544 42.224331 ,-86.046608 42.216167 ,-86.197639 42.164886 ,-86.320732 42.152447 ))',-1) );

Page 124: Curso Georeferenciacion IL

PostGIS

Inserción en una tabla con datos espacialesINSERT INTO water VALUES('1','0.730','10.304','283.000000000','Winnipegosis', NULL,NULL,NULL,'lake','main','nonnavigable', ST_GeometryFromText('MULTIPOLYGON(((-99.8019008837 51.59410028077 ,-99.7277768837 51.59410028077 ,-99.7280578837 51.59360928077 ,-99.7375028837 51.58193928077 ,-99.7430568837 51.57749128077 ,-99.7569578837 51.57305128077 ,-99.7727808837 51.57138028077 ,-99.7911068837 51.57249028077 ,-99.7986068837 51.57915928077 ,-99.7997288837 51.58916128077 ,-99.8019008837 51.59410028077 )))',-1) );

Page 125: Curso Georeferenciacion IL

PostGISALTER TABLE: Agregar constraint de validación de datos espaciales a la tabla ALTER TABLE river

ADD CONSTRAINT geometry_valid_check

CHECK (ST_IsValid(the_geom));

Modificar el SRID de un objeto en la tabla

SELECT UpdateGeometrySRID(’river’,’the_geom’,4326);

O su equivalente

ALTER TABLE river ALTER COLUMN the_geom TYPE geometry(MULTILINESTRING, 4326) USING ST_SetSRID(the_geom,4326);

Page 126: Curso Georeferenciacion IL

PostGIS

Consulta de una tabla con datos espaciales

SELECT gid, type, GeometryType(the_geom), ST_AsText(the_geom) FROM street;

SELECT gid, GeometryType(the_geom), ST_AsText(the_geom) FROM water;

SELECT gid, GeometryType(the_geom), ST_NPoints(the_geom) FROM water WHERE ST_NPoints(the_geom)> 25;

SELECT gid FROM street WHERE The_geom~=ST_GeometryFromText('LINESTRING(191232 243118,191108 243242)',-1);

Page 127: Curso Georeferenciacion IL

PostGISConsulta de una tabla con datos espaciales

SELECT ci.gid, ci.city_name, ci.cntry_name, ci.area, ci.pop_rank from city ci;

SELECT gid, name, area, perimeter, ST_NumInteriorRings(the_geom) AS numholes FROM water;

SELECT gid, area, perimeter, ST_NPoints(the_geom) AS points FROM country;

SELECT gid, name, area, perimeter, ST_Area(the_geom), ST_Perimeter(the_geom) FROM water;

Page 128: Curso Georeferenciacion IL

PostGISConsulta de una tabla con datos espaciales

SELECT gid, ST_AsText(the_geom), ST_AsEwkt(the_geom), ST_X(the_geom), ST_Y(the_geom) FROM city;

Encontrar ciudades cercanas a ríos

select c1.city_name,r1.name from city c1, river r1 where st_distance(c1.the_geom,r1.the_geom) > all (select st_distance(c2.the_geom,r2.the_geom) from city c2, river r2 where c1.city_name <> c2.city_name);

Encontrar ciudades que son atravesadas por ríos

select r.name,c.cntry_name from river r, country c where st_crosses(r.the_geom,c.the_geom)='T' ;

Page 129: Curso Georeferenciacion IL

PostGIS● FuncionesPara restricciones espaciales tenemos los siguientes operadores:

&& Indica cuando la caja que contiene una geometría se superpone a la caja de otra. Es True si se intersectan 2 cajas.

~= Me dice si dos geometrías son idénticas. Como 'POLYGON((0 0,1 1,1 0,0 0))'~=''POLYGON((0 0,1 1,1 0,0 0))'

Indica si las cajas circunscritas de dos geometrías = son iguales.

Para usar estos operadores debemos cambiar la representación del formato de texto a geometrías usando la función ST_GeometryFromText()

Cuando usamos el operador &&, podemos especificar como característica de comparación una BOX3D o una GEOMETRY.

Page 130: Curso Georeferenciacion IL

PostGIS● FuncionesAddGeometryColumn(varchar,varchar,varchar,integer, varchar,integer)

Sintaxis:

AddGeometryColumn(<nombre_db>,<nombre_tabla>,<nombre_columna>,<srid>,<type>,<dimension>)

Añade una columna geométrica a una tabla existente. SRID debe ser un valor entero que referencia una valor en la tabla SPATIAL_REF_SYS. El tipo debe ser una cadena en mayúsculas que indica el tipo de geometría, como, 'POLYGON' o 'MULTILINESTRING'.

Page 131: Curso Georeferenciacion IL

PostGIS● FuncionesDropGeometryColumn(varchar,varchar,varchar)

Sintaxis:DropGeometryColumn(<nombre_db>,<nombre_Tabla>,<nombre_columna>)

Elimina una columna geométrica de una tabla espacial.

ST_AsBinary(geometry)

Devuelve la geometría pasándola a formato well-known-binary de OGC, usando la codificación endian del servidor donde se ejecuta la base de datos.

ST_Dimension(geometry)

Devuelve 2 si la geometría es de 2D y 3 si es 3D.

Page 132: Curso Georeferenciacion IL

PostGIS● Funciones

ST_Envelope(geometry) Retorna un POLYGON que representa la caja circunscrita de la geometría.

ST_GeometryType(geometry)

Retorna el tipo de geometría como 'LINESTRING', 'POLYGON','MULTIPOINT',etc. Ejemplo: Una cadena.

ST_X(geometry)

Encuentra y devuelve la coordenada X del primer punto de geometry. Devuelve NULL si no hay puntos.

ST_Y(geometry)

Encuentra y devuelve la coordenada Y del primer punto de geometry. Devuelve NULL si no hay puntos.

Page 133: Curso Georeferenciacion IL

PostGIS● Funciones

ST_Z(geometry)

Encuentra y devuelve la coordenada Z del primer punto de geometry. Devuelve NULL si no hay puntos.

ST_NumPoints(geometry)

Busca y devuelve el numero de puntos del primer linestring en la geometry. Devuelve NULL sino hay linestring.

ST_PointN(geometry,integer)

Devuelve el punto enésimo en el primer linestring de geometry. Y NULL sino hay ningún linestring.

Page 134: Curso Georeferenciacion IL

PostGIS● FuncionesST_ExteriorRing(geometry)

Devuelve el circulo exterior del primer polygon en la geometry. Y nulo sino hay polígonos.

ST_NumInteriorRings(geometry)

Devuelve el número de círculos interiores del primer polígono de la geometría, NULL sino hay ningún polígono.

ST_InteriorRingN(geometry,integer)

Devuelve el enésimo circulo interior del primer polígono en la geometry. Y NULL sino hay polígonos.

ST_IsClosed(geometry)

Devuelve cierto si punto final = punto inicial de la geometría.

Page 135: Curso Georeferenciacion IL

PostGIS● FuncionesST_NumGeometries(geometry)

Si geometry es una GEOMETRYCOLLECTION devuelve el número de geometrías que la componen. En caso contrario devuelve NULL.

ST_Distance(geometry,geometry)

Devuelve la distancia cartesiana entre dos geometrías en unidades proyectadas.

ST_AsText(geometry)

Devuelve una representación textual de una geometría. Ejemplo:

POLYGON(0 0,0 1,1 1,1 0,0 0)

Page 136: Curso Georeferenciacion IL

PostGIS● Funciones

ST_SRID(geometry)

Devuelve un número entero que es el identificador del sistema de referencia espacial de una geometría.

ST_GeometryFromText(varchar,integer)

Sintaxis: GeometryFromText(<geom>,<SRID>) convierte un objeto de la representación textual a un objeto geometría.

ST_GeomFromText(varchar,integer) Igual a ST_GeometryFromText

ST_SetSRID(geometry)

Establece el valor del SRID de una geometría al entero dado. Usado en la construcción de cajas circunscritas para consultas.

Page 137: Curso Georeferenciacion IL

PostGIS● Funciones

ST_EndPoint(geometry)

Devuelve un objeto punto que representa el último punto en la geometría.

ST_StartPoint(geometry)

Devuelve un objeto punto que representa el primer punto en la geometría.

ST_Centroid(geometry)

Devuelve un punto que representa el centroide de la geometría.

Page 138: Curso Georeferenciacion IL

PostGIS● Otras funciones

A<&B

Devuelve verdadero si la caja que circunscribe a A superpone o esta a la derecha de la de B.

A&>B

Devuelve verdadero si la caja que circunscribe a A superpone o esta a la izquierda de la de B.

A<<B

Devuelve verdadero si la caja que circunscribe a A esta estrictamente a la derecha de la de B.

Page 139: Curso Georeferenciacion IL

PostGIS● Otras funcionesA>>B

Devuelve verdadero si la caja que circunscribe a

A esta estrictamente a la izquierda de la de B.

A~=B

Es equivalente al operador “igual que”. Compara las 2 geometrías característica por característica y si todas coinciden devuelve verdadero.

A~B

Devuelve verdadero si la caja circunscrita de A esta contenida en la de B.

Page 140: Curso Georeferenciacion IL

PostGIS● Otras funcionesA&&B

Si la caja circunscrita de A se superpone a la de B devuelve Verdadero.

ST_Area(geometry)

Devuelve el área de una geometría si es un POLYGON o MULTIPOLYGON.

ST_AsBinary(geometry,'NDR')

Devuelve la geometría en el formato binario de OGC, usando codificacion little-endian. Se usa para sacar datos de la bd sin convertirlos a texto.

Page 141: Curso Georeferenciacion IL

PostGIS● Otras funcionesST_AsBinary(geometry,'XDR')

Devuelve la geometría en el formato binario de OGC, usando codificación big-endian. Se usa para sacar información de la base datos sin convertirla a texto.

Box2D (geometry) Box3D(geometry)

Devuelve una BOX3D que representa la máxima extensión de la geometría.

ST_distance_spheroid(point,point,spheroid)

Devuelve la distancia lineal entre 2 latitud/longitud puntos dados de un spheroid. Ver el apartado length_spheroid().

Page 142: Curso Georeferenciacion IL

PostGIS● Otras funciones

ST_Collect(geometry)

Devuelve un objeto GEOMETRYCOLLECTION a partir de un conjunto de geometrías. Es una función de Agregación en la terminología de PostgreSQL. Ejemplo:

SELECT COLLECT(GEOM) FROM GEOTABLE GROUP BY ATTRCOLUMN

Devuelve una colección separada para cada valor distinto de ARRTCOLUMN.

ST_Extent(geometry)

Es una función de Agregación en la terminología de PostgreSQL. Trabaja sobre una lista de datos, de la misma manera que las funciones sum() y mean().

Page 143: Curso Georeferenciacion IL

PostGIS● Otras funcionesfind_srid(varchar,varchar,varchar)

Sintaxis: find_srid(<db/esquema>,<tabla>,<columna>)

Devuelve el SRID de una columna dada buscando esta en la tabla GEOMETRY_COLUMNS. Si la columna geométrica no ha sido añadida con la función AddGeometryColumns() no funcionará.

ST_force_collection(geometry)

Convierte una geometría en una GEOMETRYCOLLECTION. Esto se hace para simplificar la representación WKB .

Page 144: Curso Georeferenciacion IL

PostGIS● Otras funcionesST_Force_2d(geometry)

Fuerza la geometría a 2D así la representación de salida tendrá solo las coordenadas X e Y. Se usa porque OGC solo especifica geometrías 2D.

ST_Force_3d(geometry)

Fuerza la geometría a 3D. Así la todas las representaciones tendrán 3 coordenadas X,Y y Z.

ST_Length2d(geometry)

Devuelve la longitud 3d de la geometría si es una linestring o multilinestring.

Page 145: Curso Georeferenciacion IL

PostGIS● Otras funcionesST_length3d(geometry)

Devuelve la longitud 2d de la geometría si es una linestring o multilinestring.

ST_length_spheroid(geometry,spheroid)

Calcula la longitud de una geometría en un elipsoide. Se usa si las coordenadas de la geometría están en latitud/longitud. El elipsoide es un tipo separado de la base de datos y se puede construir como: SPHEROID [“GRS_1980”,6378137,298,257222101]

ST_max_distance(linestring,linestring)

Devuelve la distancia mas larga entre dos linestring.

Page 146: Curso Georeferenciacion IL

PostGIS● Otras funcionesST_mem_size(geometry)

Retorna el tamaño en bytes de la geometría.

ST_npoints(geometry)

Devuelve el numero de puntos en la geometría.

ST_nrings(geometry)

Si la geometría es un polígono o multipolígono devuelve el numero de círculos de la geometría.

num_sub_objects(geometry)

Devuelve el numero de objetos almacenados en la geometría. Se usa en Multigeometrías y GEOMETRYCOLLECTIONs.

Page 147: Curso Georeferenciacion IL

PostGIS● Otras funcionesST_perimeter2d(geometry)

Devuelve el perímetro 2d de la geometría, si esa geometría es un polígono o un multipolígono.

ST_perimeter3d(geometry)

Devuelve el perímetro 3d de la geometría, si esa geometría es un polígono o un multipolígono.

ST_point_inside_circle(geometry,float,float,float)

Sintaxis:point_inside_circle(<geometry>,<circle_center_x>,<circle_center_y>,<radius>)

Devuelve verdadero si la geometría es un punto y está dentro del círculo.

Page 148: Curso Georeferenciacion IL

PostGIS● Otras funcionespostgis_version()

Devuelve la versión de las funciones postgis instaladas en la bases de datos.

ST_summary(geometry)

Devuelve un resumen en texto del contenido de esa geometría.

ST_transform(geometry,integer)

Devuelve una nueva geometría con sus coordenadas transformadas la SRID dada por el parámetro integer. SRID debe existir en la tabla SPATIAL_REF_SYS.

Page 149: Curso Georeferenciacion IL

PostGIS● Otras funcionesST_translate(geometry,float8,float8,float8)

Traslada la geometría a la nueva localización usando los valores pasados como desplazamientos X,Y,Z.

truly_inside(geometryA,geometryB)

Devuelve verdadero si alguna parte de B esta dentro de la caja circunscrita de A.

ST_xmin(box3d) ST_ymin(box3d) ST_zmin(box3d)

Devuelve la mínima coordenada de la caja circunscrita.

ST_xmax(box3d) ST_ymax(box3d) ST_zmax(box3d)

Devuelve la máxima coordenada de la caja circunscrita.

Page 150: Curso Georeferenciacion IL

PostGISEjemplos del uso de funcionesPara cambiar la proyección que estamos usando a otra transformación:

ALTER TABLE street ALTER COLUMN the_geom TYPE geometry(MULTILINESTRING, 3857) USING ST_Transform(ST_SetSRID(the_geom ,4326),3857) ;

Consultas

SELECT ST_GeomCollFromText('GEOMETRYCOLLECTION( POINT(1 2),LINESTRING(1 2, 3 4))');

SELECT ST_PointFromText('POINT(-71.064544 42.28787)', 4326); (hace una geometría en WKB del SRID)

Page 151: Curso Georeferenciacion IL

PostGISEjemplos del uso de funcionesMostrar último punto del objeto o geometría

SELECT ST_AsText(ST_EndPoint('LINESTRING(1 1, 2 2, 3 3)'::geometry));

Mostrar polígono que “envuelve” una geometría

SELECT ST_AsText(ST_Envelope('LINESTRING(0 0, 1 3)'::geometry));

Ver si un objeto encierra una superficie

SELECT ST_IsClosed('LINESTRING(0 0, 1 1)'::geometry);

Page 152: Curso Georeferenciacion IL

PostGISEjemplos del uso de funcionesVer si la geometría es un anillo, cerrada o simple

SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)

FROM (SELECT 'LINESTRING(0 0, 0 1, 1 0, 1 1, 0 0)'::geometry AS the_geom) AS foo;

Mostrar pero si movemos el orden en los puntos

SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)

FROM (SELECT 'LINESTRING(0 0, 0 1, 1 1, 1 0, 0 0)'::geometry AS the_geom) AS foo;

Page 153: Curso Georeferenciacion IL

PostGISEjemplos del uso de funcionesSELECT ST_Y(ST_Centroid(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)')));

SELECT ST_Summary(ST_GeomFromText('LINESTRING(0 0, 1 1)')) as geom,

ST_Summary(ST_GeogFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) geog;

SELECT ST_AsText(ST_PointN(ST_GeomFromText(’CIRCULARSTRING(1 2, 3 2, 1 2)’),2));

Page 154: Curso Georeferenciacion IL

PostGISEjemplos del uso de funcionesVer el sumario de un objeto

SELECT ST_Summary(ST_GeogFromText(' LINESTRING(0 0 1, 1 1 1)')) As geog_line, ST_Summary(ST_GeomFromText('SRID=4326; POLYGON((0 0 1, 1 1 2, 1 2 3, 1 1 1, 0 0 1)) ')) As geom_poly;

SELECT tbl1.column1, tbl2.column1, tbl1.column2 && tbl2.column2 AS overlaps FROM ( VALUES (1, 'LINESTRING(0 0, 3 3)'::geometry), (2, 'LINESTRING(0 1, 0 5)'::geometry)) AS tbl1, ( VALUES (3, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;

Page 155: Curso Georeferenciacion IL

QGIS

Instalación

Menús y funciones

Ejemplos

● $ sudo apt-add-repository ppa:ubuntugis/ubuntugis-unstable

● $ sudo apt-get update

● $ sudo apt-get install qgis

Page 156: Curso Georeferenciacion IL

QGISQuantum GIS

● El Quantum GIS es un Sistema de Información Geográfica Open Source.

● El proyecto inició en mayo de 2002.

● QGIS corre en la mayoría de plataformas Linux, Windows y OS X

● QGIS permite el uso de tablas PostgreSQL con soporte para PostGIS.

● QGIS también soporta formatos vectoriales de la biblioteca OGR (ESRI), MapInfo, SDTS y GML entre otros. En formato ráster soporta la biblioteca GDAL (GeoTiff, ArcInfo Ascii, JPEG, PNG)

Page 157: Curso Georeferenciacion IL

QGISQuantum GIS

● QGIS permite crear, editar, manejar y exportar mapas vectoriales en distintos formatos.

● Se puede hacer análisis de datos espaciales con PostgreSQL/PostGIS

● Se pueden exportar datos a un archivo de mapa para publicarlos en un servidor WEB.

● Se pueden crear nuevas aplicaciones utilizando Python

● La base de ejemplo es de Alaska Albers Equal Area (unit feet [unidades en pies]) datos EPSG Code 2964

Page 158: Curso Georeferenciacion IL

QGISMenús y funciones

La interfaz del QGIS tiene 6 áreas:

1. Barra de menús (encabezado superior)

2. Barra de herramientas

3. Explorador y capas

4. Mapa

5. Vista general del mapa

6. Barra de estado (parte inferior)

Page 159: Curso Georeferenciacion IL

QGISMenús y funciones 1

2

3

4

65

Page 160: Curso Georeferenciacion IL

QGISMenús y funciones Opciones del menú “Proyectos”

Abrir: buscar proyectos

Guardar, Guardar como (formato Qgis)

Guardar como imagen:

Page 161: Curso Georeferenciacion IL

QGISMenús y funciones Opciones del menú “Edición”

● Deshacer y rehacer

● Copiar, cortar, pegar

● Rotar

● Añadir y borrar objetos

Page 162: Curso Georeferenciacion IL

QGISMenús y funciones

Opciones del menú “Ver”

Permite acercar y alejar la imagen

Tiene varios submenús:

● Seleccionar

● Medir

● Ilustraciones

● Páneles

● Barras de herramientas

Page 163: Curso Georeferenciacion IL

QGISMenús y funciones

Páneles

Seleccionar

Medir

Ilustraciones

Barras de herramientas

Page 164: Curso Georeferenciacion IL

QGISMenús y funciones Opciones del menú “Capa”

Permite abrir y añadir todo tipo de capas: vectoriales, ráster, etc.

Duplicar, eliminar y guardar capas.

Modificar sus propiedades.

Page 165: Curso Georeferenciacion IL

QGISMenús y funciones Opciones del menú “Configuración”

Page 166: Curso Georeferenciacion IL

QGISMenús y funciones Opciones del menú “Configuración”

Page 167: Curso Georeferenciacion IL

QGISMenús y funciones “Configuración”

Page 168: Curso Georeferenciacion IL

QGISMenús y funciones “Configuración”

Page 169: Curso Georeferenciacion IL

QGISMenús y funciones Opciones del menú “Complementos”

Page 170: Curso Georeferenciacion IL

QGISMenús y funciones Opciones del menú “Complementos”

Page 171: Curso Georeferenciacion IL

QGISMenús y funciones Menú “Vectorial”

Análisis

Investigación

Geoproceso

Geometría

Gestión de datos

Page 172: Curso Georeferenciacion IL

QGISMenús y funciones Opciones del menú “Ráster”

Proyecciones:

Conversión:

Extracción:

Análisis:

Miscelánea:

Page 173: Curso Georeferenciacion IL

QGISMenús y funciones Opciones del menú “Base de datos”

Pestaña de información general de la BD

Page 174: Curso Georeferenciacion IL

QGISMenús y funciones Vista preeliminar de datos

Page 175: Curso Georeferenciacion IL

QGISMenús y funciones Opciones del menú “Procesado”

Page 176: Curso Georeferenciacion IL

QGISMenús y funciones Opciones del menú “Procesado”

En la ventana de comandos se presentan opciones para su ejecución

Page 177: Curso Georeferenciacion IL

QGISMenús y funciones Opciones del menú “Ayuda”

Aquí se puede consultar la documentación (manuales y tutoriales)

Page 178: Curso Georeferenciacion IL

QGISMenús y funcionesAgregar capa raster

Seleccionar el archivo de imagen landcover.img

Page 179: Curso Georeferenciacion IL

QGISMenús y funcionesAgregar

capas:

Especificar

el SRC

NAD27.

Page 180: Curso Georeferenciacion IL

QGISMenús y funcionesAgregar capa vectorial

Seleccionar el archivo dando clic en explorar elegir la codificación UTF-8

Page 181: Curso Georeferenciacion IL

QGISMenús y funciones

Agregar capa vectorial desde archivo.

Page 182: Curso Georeferenciacion IL

QGISMenús y funcionesPropiedades

capa raster

Page 183: Curso Georeferenciacion IL

QGISMenús y funcionesPropiedades

capa

raster

Page 184: Curso Georeferenciacion IL

QGISMenús y funcionesPropiedades

capa

vectorial

Page 185: Curso Georeferenciacion IL

QGISMenús y funcionesPropiedades capa vectorial

Page 186: Curso Georeferenciacion IL

QGISMenús y funcionesPropiedades capa vectorial

Page 187: Curso Georeferenciacion IL

QGISMenús y funcionesPropiedades capa vectorial

Page 188: Curso Georeferenciacion IL

QGISMenús y funcionesPropiedades capa vectorial

Page 189: Curso Georeferenciacion IL

QGISMenús y funcionesAtributos de una capa vectorial

Page 190: Curso Georeferenciacion IL

QGISMenús y funcionesAtributos capa vectorial

Page 191: Curso Georeferenciacion IL

QGISMenús y funcionesGuardar mapa

Page 192: Curso Georeferenciacion IL

QGISConectar una base de datos Al agregar una

capa PostGIS es necesario establecer una conexión a una Base de Datos.

Antes de dar OK, pruebe la conexión dando clic en el botón Probar conexión

Page 193: Curso Georeferenciacion IL

QGISMenús y funcionesAgregar capas postgreSQL

Page 194: Curso Georeferenciacion IL

QGISMenús y funcionesAgregar

capas

postgreSQL

Page 195: Curso Georeferenciacion IL

QGISMenús y funciones Ejemplo de mapa con capas seleccionadas.

Page 196: Curso Georeferenciacion IL

QGISMenús y funcionesAgregar

capas

postgreSQL

Page 197: Curso Georeferenciacion IL

QGISMenús y funcionesMostrar propiedades de objetos en las capas (Se selecciona primero la capa deseada). Capa: country

Page 198: Curso Georeferenciacion IL

QGISMenús y funcionesMostrar propiedades de objetos en las capas (Se selecciona primero la capa deseada). Capa: city

Page 199: Curso Georeferenciacion IL

QGISMenús y funcionesAgregar un filtro (consulta SQL) a las capas.

A través de la opción filtro del menú sobre la capa deseada.

Page 200: Curso Georeferenciacion IL

QGISMenús y funcionesAgregar un filtro (consulta SQL) a las capas, utilizando la opción de agregar expresión SQL

Page 201: Curso Georeferenciacion IL

QGISMenús y funcionesAgregar un filtro (consulta SQL) a las capas.

El resultado se muestra identificando con icono amarillo las ciudades que cumplen la condición de la expresión SQL

Page 202: Curso Georeferenciacion IL

QGISMenús y funcionesDescargar datos de OpenStreetMap

Ir a http://www.openstreetmap.org/export#map=13/47.3668/8.5359

Y dar coordenadas para descargar datos 8.4698,47.336,8.6098,47.3965

Page 203: Curso Georeferenciacion IL

QGISMenús y funcionesDescargar datos de OpenStreetMap

Usar complemento de QGIS para descargar

Y dar coordenadas para descargar datos 8.4698,47.336,8.6098,47.3965