• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar al pie de página
logo web Geoinnova

Geoinnova

Consultoría y Formación en SIG y Medio Ambiente

  • Geoinnova
    • Asociación
    • Equipo
    • Visor de proyectos Geoinnova
    • Geolibrería
    • Alianzas Estratégicas
  • Consultoría
    • Consultoría y Desarrollo en Sistemas de Información Geográfica
    • Consultora Ambiental
    • Turismo sostenible
    • Planificación urbana y ordenación del territorio
    • Planes Urbanos de Actuación Municipal – PUAM
    • Geomarketing
  • Servicios
    • Planero Web
    • QElectricGIS
    • Plugins
  • Formación
    • Todos los cursos
    • Webinars
    • Máster y Diplomas
    • Cursos de ArcGIS
    • Cursos de QGIS
    • Cursos de Teledetección
    • Cursos de Medioambiente
  • Medio Ambiente
    • Consultora Ambiental
    • Estudios ambientales para proyectos de energías renovables
    • Estudios de Impacto e Integración Paisajística
    • Evaluación Ambiental Estratégica de planes y programas
    • Estudio de Impacto Ambiental para proyectos
    • Cálculo huella de carbono
    • Educación Ambiental
    • Cursos de Medioambiente
  • Coworking
  • Blog
    • SIG
    • Medio Ambiente
    • Teledetección
    • Programación y Desarrollo SIG
    • Corporativo
  • Contacto
    • Soporte de Clientes – Tickets
Programación y Desarrollo SIG

Análisis espacial con PostGIS Raster

13/07/2020 Deja un comentario

Desde la versión 2.0 de PostGIS, es posible cargar y manipular datos de naturaleza ráster en una base de datos espacial, gracias a PostGIS Raster.

En PostGIS 3 se sigue manteniendo estas capacidad ráster pero en esta ocasión las funcionalidades se encuentran en una extensión independiente denominada postgis_raster  que debemos añadir a nuestra base de datos si queremos usarlas.

El almacenamiento de datos ráster en una base de datos relacional como PostgreSQL resulta de utilidad ya que aprovecha todas las características de un sistema de gestión de base de datos, (restricciones de acceso, soporte de consultas SQL, arquitectura cliente-servidor para acceso simultáneo, datos centralizados, mejoras en la actualización…).

Vamos a realizar un par de ejercicios sencillos donde realizar operaciones de análisis combinado datos ráster y vectoriales.

Añadiendo las extensiones postgis y postgis_raster.

Lo primero que debemos hacer es dotar de funcionalidad geográfica a nuestra base de datos añadiendo la extensión postgis si no a tenemos instalada, para pasar depués a repetir el paso pero con la extensión postgis_raster.

Usando la consola de comandos para conectarnos a nuestra base de datos con psql debemos añadir las extensiones de la siguiente manera:

psql -U postgres rasterdb
rasterdb>CREATE EXTENSION postgis;
rasterdb>CREATE EXTENSION postgis_raster;

Cargando datos con raster2postgis

Para añadir un archivo ráster a nuestra base de datos podemos usar el comando raster2plsql.

Hemos descargado el Modelo Digital del Terreno – MDT200 de la provincia de Córdoba (España) desde la web de descargas del Centro Nacional de Información Geográfica (CNIG).

Descarga de modelo digital del terreno 1ª Cobertura con paso de malla de 200 m de la web del CNIG.
Descarga de modelo digital del terreno 1ª Cobertura con paso de malla de 200 m de la web del CNIG.

Completamos la creación del sql con raster2pslql añadiendo parámetros de interés (sistema de referencia, índice, restricciones…).

raster2pgsql -s 25830 -I -C PNOA_MDT200_ETRS89_HU30_Cordoba.asc 
cordobadem200 > dem-cordoba.sql
Ejemplo de raster2postgres
Ejemplo de raster2postgres

Seguimos ahora cargando el sql en nuestra base de datos.

raster2pgsql -s 25830 -I -C dem-cordoba.tif cordobadem200 > dem-cordoba.sql
Para terminar, ejecutamos el archivo SQL creado, añadiendo con ello la nueva tabla raster con el modelo digital de elevación.
psql -U postgres -f dem-cordoba.sql rasterdb

Si usamos QGIS, definimos la conexión a nuestra base de datos y cargamos la nueva tabla ráster.

Carga de capa en QGIS desde PostGIS
Carga de capa en QGIS desde PostGIS

Asignando valores Z a una capa puntual.

Supongamos que tenemos un conjunto de localizaciones puntuales (ej. antenas, torres eléctricas…) situadas en nuestro ámbito de trabajo a la que queremos añadir un atributo con el valor de la altura.

Podemos usar las funciones de PostGIS junto a los comandos SQL para añadir el valor deseado de la siguiente manera.

ALTER TABLE puntos ADD COLUMN z integer;
UPDATE puntos SET z= st_value (rast, 1, st_transform (geom, 25830))
FROM cordobadem WHERE cordobadem.rast && st_transform (puntos.geom, 25830);

Realizamos una consulta a la nueva tabla, esta vez con el cliente gráfico pgAdmin4, y vemos el resultado.

Calculo de valor z desde tabla ráster.
Calculo de valor z desde tabla ráster.

Estadística Zonal

El objetivo de este otro ejemplo es obtener los datos estadísticos (total de celdas, media, máxima, mínima y desviación estándar) relativos a Z de cada uno de los municipios de la provincia de Córdoba.

En esta ocasión hemos creado una nueva tabla vectorial con los resultados.

CREATE TABLE estadistica_municipios as
SELECT stats.id, stats.nombre, stats.geom, 
(ST_SummaryStatsAgg(stats.intersectx,1,true)).*
FROM
(SELECT id, nombre, geom, 
ST_Intersection(rast,1,ST_AsRaster(geom, rast),1) as intersectx
FROM cordobadem, municipios_cordoba
WHERE ST_Intersects(geom, rast)) as stats
WHERE stats.intersectx IS NOT NULL;

Si cargamos los datos en QGIS y creamos un mapa categorizado podemos ver el resultado.

Resultado del análisis de estadistica zonal en QGIS
Resultado del análisis de estadística zonal en QGIS

El manejo de estas y otras funciones con datos ráster en PostGIS es uno de los tema de nuestro Curso de Bases de Datos Espaciales y Evaluación de la Calidad de los Datos

Referencias:

  • M. Montesinos, I. Brodin, V.Agazzi, J. Arévalo (2011): Accediendo a la Base de Datos PostGIS Raster desde gvSIG Desktop. V Jornadas de SIG Libre PDF

Etiquetas: postgis, qgis, raster

Apúntate a nuestra newsletter semanal

"*" señala los campos obligatorios

Consentimiento*
*
Este campo es un campo de validación y debe quedar sin cambios.

Información legal

Cumplimos el RGPD (Reglamenteo General de Protección de Datos) y esta en la primera información que debes saber. Responsable: Asociación Geoinnova. Finalidad: Apuntarte en nuestra base de datos para poder enviarte nuestra newsletter y cualquier otra información de interes. Legitimidad: Nos das tu consentimiento para comunicarnos contigo. Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir tus datos. Para una información más ampliada entra a nuestra política de privacidad.

Artículos relacionados

Cómo instalar y agregar nuevas fuentes en QGIS
29/11/2022
Cómo trabajar con nuestra base de datos PostgreSQL usando psql
08/11/2022
Extraer valores ráster en QGIS
27/10/2022

Patricio Soriano

Geógrafo “Full-stack” y desarrollador web especializado en Tecnologías de Información Geográfica. Vinculado con la labor de consultoría, ha realizado diversos proyectos sobre análisis urbanístico, planes de vivienda y gestión patrimonial, así como la puesta en marcha de Sistemas de Información Geográfica corporativos para la administración pública. Dentro de los trabajos como desarrollador se encuentran el diseño de varias aplicaciones webmapping y desarrollos para QGIS (Spanish Inspire Catastral Downloader, CDAU Downloader o qgis2mapea). Autor del blog www.sigdeletras.com y organizador de Geoinquietos Córdoba. Actualmente se encuentra incorporado al equipo de desarrollo de Geoinnova en aplicaciones Open Source. Como docente lleva impartiendo cursos profesionales de SIG desde 2007 para diferentes entidades y en diferentes modalidades (tanto presencial como online). Especializándose en los últimos años en cursos de QGIS a distintos niveles.

Interacciones con los lectores

¿Quieres comentarnos algo? Adelante! Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Footer

Menú Legal

  • Aviso Legal
  • Política de privacidad
  • Política de cookies
  • Términos y condiciones

Otras páginas de interes

  • Promociones y descuentos en formación
  • Formación bonificada FUNDAE

Contacto

Calle Luis Morondo Urra nº 8 Bajo A
31006 Pamplona (Navarra)
info@geoinnova.org
+34 948 117 137

Horario de atención

Lunes a Viernes - 09:00 a 14:00 y de 16:00 a 19:00.
Fines de semana y Festivos - Exclusivamente por mail.
Horario de Verano (01 de julio al 30 de agosto): De lunes a viernes de 8 a 15h.
Entidad adherida a Confianza Online Certificado de inscripción en el Registro de huella de carbono, compensación y proyectos de absorción Logo Plazox

© 2023 · Desarrollada por Geoinnova en colaboración con OikosMSP

Gestionar el Consentimiento de las Cookies
Utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. Lo hacemos para mejorar la experiencia de navegación y para mostrar anuncios personalizados. El consentimiento a estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos anónimos. Sin una requerimiento, el cumplimiento voluntario por parte de su proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarlo.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en un sitio web o en varios sitios web con fines de marketing similares.
Administrar opciones Gestionar los servicios Gestionar proveedores Leer más sobre estos propósitos
Preferencias
{title} {title} {title}