Importar un ráster en PostGIS mediante línea de comandos

PostGIS Ráster es una extensión realizada sobre PostGIS que tiene como objetivo añadir a la base de datos soporte nativo para datos de tipo ráster. Con dicha extensión podemos almacenar, manipular y analizar datos ráster en la base de datos PostgreSQL/PostGIS.

Si aun no tienes muy claro qué es PostGIS y los principales motivos para hacerlo te recomendamos que leas este artículo.

En PostGIS Ráster los datos se cargan directamente en las tablas y cada una de estas representa una cobertura completa:

  • Un registro de la tabla = un raster (o tesela)
  • Una tabla = una cobertura

En este tutorial vamos a mostrarte cómo importar archivos ráster a PostGIS y cómo podemos visualizarlos con gvSIG.

Características

Entre las características más destacadas de los ráster en PostGIS encontramos:

  • Cada ráster/tesela está georreferenciada.
  • Soporte multibanda y gestión de los valores.
  • Indexación espacial sobre las teselas de la capa.
  • Construcción de índices GIST sobre columnas raster.
  • Soporta pirámides (overviews) para optimizar la visualización según el zoom.
  • La lista de columnas ráster está disponible en una vista raster_columns similar a la vista

Posibilidades de almacenamiento

PostGIS Ráster ofrece múltiples posibilidades de almacenamiento:

  1. Almacén de imágenes sin teselar y sin relacionar (a)
  2. Cobertura de teselas irregulares (b)
  3. Cobertura de teselas regulares (c)
  4. Cobertura rectangular de teselado regular (d)
  5. Imagen teselada (e)
  6. Cobertura ráster resultado de la rasterización de una cobertura vectorial (f)
almacenamiento_postgis_raster ráster en PostGIS
Modelos conceptuales de almacenamiento de la información Raster en PostGIS. Fuente: PostGIS Raster y gvSIG V JORNADAS DE SIG LIBRE N. Brodin, V. Agazzi y J. Arévalo

Importar el fichero ráster en PostGIS

Para importar ficheros ráster, PostGIS dispone del comando raster2pgsql, este comando lee un fichero ráster en un determinado formato y creará el código SQL adecuado para su posterior carga en PostGIS.

Te recomendamos una opción más sencilla, sin línea de comandos: Importar raster a PostGIS con el plugin de QGIS PostGIS Raster Import.

Si deseas seguir este tutorial puedes descargar la imagen ráster de Natural Earth desde aquí:

http://www.naturalearthdata.com/downloads/50m-raster-data/50m-natural-earth-1/

Es necesario saber que dicha imagen está proyectada en WGS84 con EPSG:4326.

Abre una consola de Windows e introduce la sentencia:

raster2pgsql –G

El resultado es el listado de drivers para el manejo de rásters con los que ha sido compilados GDAL. Introduce ahora el siguiente comando:

raster2pgsql  -I  -C  -s 4326  -M  C:/shadedrelief.tif  -F  shadedrelief   >  C:/shadedrelief.sql

raster2pgsql

El análisis de la consulta es el siguiente:

  • -I Crea un índice espacial (de tipo GIST) sobre la columna ráster
  • -s <SRID> Especifica el CRS (EPSG: 4326, WGS84)
  • -C Crea restricciones estándar de tipo Check tras la carga del ráster
  • -M Ejecuta el comando VACUUM ANALYZE sobre la columna ráster creada
  • -F <columna>, nombre de la columna de tipo ráster. Por defecto rast

El siguiente paso es importar el archivo physical.sql que acabamos de crear, para ello introduce en la consola la siguiente consulta:

psql  -U  postgres  -d  <nombre de la base de datos>  -f   C:/shadedrelief.sql

psql

Visualización de ráster con gvSIG

Ahora que tenemos nuestro archivo ráster en PotGIS vamos a visualizarlo en un cliente SIG de escritorio.

Uno de los SIG de escritorio capaz de conectarse a PostGIS Ráster a través de su interfaz SQL para su visualización es gvSIG. Esto es posible a partir de la versión 2.0 (no es posible conectarse con versiones anteriores).

Para conectarnos a PostGIS Ráster desde gvSIG debemos realizar los siguientes pasos:

1) Instalar el complemento PostGIS raster format support. Para ello debemos ir al menú superior Herramientas > Administrador de complementos, seleccionamos la instalación estándar en el árbol de la izquierda seleccionamos la categoría Raster y marcamos el plugin Format: PostGIS raster format support

2) Abre un proyecto en gvSIG, crea una nueva Vista y haz clic sobre el botón Añadir capa añadir_capa .

3) Ve a la pestaña PostGIS Ráster y haz clic sobre el botón Añadir conexión añadir_conexion .

PostGIS_raster_pestaña

4) Introduce los datos para crear la nueva conexión a la base de datos:

credenciales_conexion

5) Selecciona el ráster importado durante el ejercicio a PostGIS y haz clic en Aceptar.

shadedrelief

Es interesante el uso de caché de teselas local para mejorar la velocidad de representación de imágenes. Aceptamos y aparecerá un mensaje avisando de que el proceso puede demorarse.

cache_teselas

6) Aceptamos de nuevo y se añade el nuevo raster a la vista:

vista_gvSIG