El servicio WPS: qué es y cómo recortar un raster en GeoServer

Poder realizar análisis espacial en la web es uno de los grandes caballos de batalla. Como veíamos en la entrada ¿sustituirá el web mapping a los SIG de escritorio? la clave para que el webmapping triunfe definitivamente y sustituya a los viejos SIG de escritorio, es poder realizar análisis geoespacial en la web.

Una de las herramientas para ello es utilizar un servicio WPS.

Podemos realizar análisis espacial en el servidor utilizando el estándar WPS. Sería lo contrario que utilizar Turf, una librería JavaScript para realizar análisis espacial en el lado del cliente.

WPS

¿Qué es un servicio WPS?

Un Servicio de Procesamiento Web, en inglés Web Processing Service, es un protocolo estándar definido por el Open GeoSpatial Consortium (OGC) para la publicación de procesos geoespaciales, algoritmos y cálculos.

Este protocolo es análogo a otros protocolos como el WMSWFS, y permite la interacción cliente-servidor con los «procesos» alojados en el servidor.

Un servidor puede proporcionar procesos WPS, que luego pueden ser ejecutados por los clientes sobre los datos que suministran o aplican a los conjuntos de datos existentes del lado del servidor.

Un servicio WPS dispone de varias operaciones:

  • GetCapabilities. Genera un documento de metadatos que describen un servicio WPS proporcionado por el servidor, así como las operaciones y parámetros válidos del WPS.
  • DescribeProcess. Devuelve una descripción de los tipos de objetos geográficos soportados por el servicio WFS.
  • Execute. Devuelve una selección de objetos geográficos de una fuente de datos que incluye los valores de geometría y atributos

Vamos a ver un ejemplo de cada una de ellas:

Ejemplo de solicitudes GetCapabilities y DescribeProcess

Ejemplo de solicitud GetCapabilities de las características del servicio WPS del Instituto Geográfico Nacional:

http://www.ign.es/wps-transformacion/servicios?Service=WPS&Request=GetCapabilities

Ejemplo de solicitud DescribeProcess:

http://www.ign.es/wps-transformacion/servicios?REQUEST=DescribeProcess&SERVICE=WPS&VERSION=1.0.0&Identifier=TransformCoordinates

Operación Execute – Análisis espacial en GeoServer

El Servicio de Procesamiento Web es un complemento de GeoServer. Este complemento puede instalarse durante el proceso de instalación de OpenGeo Suite.

El complemento WPS proporciona una colección de decenas de procesos estándar y además dispone de la capacidad de agregar otros procesos adicionales. Estos procesos se pueden emplear en aplicaciones personalizadas, construidas con el SDK de Boundless, y así disponer de una solución web completa con procesamiento espacial.

Para acceder a las operaciones espaciales desde GeoServer debemos ir a la sección Demos > Generador de consultas WPS: Generador de consultas paso a paso:

Generar de consultas WPS

Y se abrirá el constructor de consultas WPS:

Los procesos se dividen en tres categorías: vector, ráster y geometría, haciendo referencia al tipo de contenido geoespacial utilizado como entrada del proceso. Estas categorías son amplias, ya que los procesos pueden tomar múltiples tipos de entrada.

Recorte de un raster

Vamos a hacer una prueba recortando la capa de relieve mundial en formato TIFF que procede de Natural Earth y utilizaremos como capa de corte un único país (Italia) en formato vectorial, cuya procedencia también es Natural Earth (origen).

Dentro de los procesos disponibles tenemos un proceso WPS denominado ras:cropCoverage que nos permite recortar un raster utilizando como capa de corte otra geometría.

Una vez seleccionado el proceso se despliegan la opciones para alimentar la capa de entrada y la capa de corte.

Seleccionamos como capa de entrada nuestra capa raster que tenemos almacenada en GeoServer:

La parte «complicada» viene en el momento de introducir la capa de corte ya que las opciones posibles son en forma de texto gml, JSON o WKT.

Vamos a escoger como formato el WKT. En este caso la geometría del país es necesario exportarla a WKT, para lo que hemos seguido este tutorial: Cómo convertir un shapefile en WKT.

Con las coordenadas en WKT basta con copiar y pegar el resultado en la interfaz de GeoServer:

Una vez tenemos todo listo nos identificamos y hacemos clic sobre Execute process:

Se descargará la imagen resultante resultado de cortar nuestro raster mundial con Italia:

Si quieres aprender a trabajar con servicios WPS, WMS y WFS, PostGIS, GeoServer, OpenLayers y Leaflet, inscríbete en nuestro curso online desarrollo de aplicaciones webmapping.

4 comentarios en “El servicio WPS: qué es y cómo recortar un raster en GeoServer”

  1. Buenas tardes Aurelio.
    Se puede crear un conjunto de procesos, por ejemplo desde Qgis (pyQgis o Model builder), que no están en Geoserver y cargarlos para generar un wps? si es posible, podrías darme una orientación al respecto?

Los comentarios están cerrados.