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:

MULTIPOLYGON (((15.5203760108138 38.2311550969915,15.1602429541717 37.4440455185378,15.309897902089 37.1342194687318,15.0999882341195 36.6199872909954,14.335228712632 36.9966309677548,13.8267326188799 37.1045313583802,12.4310038591088 37.6129499374838,12.5709436377551 38.1263811305197,13.7411564470046 38.0349655217954,14.7612492204462 38.1438736028505,15.5203760108138 38.2311550969915)),((9.21001183435627 41.2099913600242,9.80997521326498 40.5000088567661,9.66951867029567 39.1773764104718,9.21481774255949 39.2404733343001,8.80693566247973 38.9066177434785,8.42830244307712 39.1718470322166,8.38825320805094 40.3783108587188,8.15999840661766 40.9500072291638,8.70999067550011 40.8999844427052,9.21001183435627 41.2099913600242)),((12.3764852230408 46.7675591090699,13.8064754574216 46.5093061386912,13.6981099789055 46.0167780625174,13.9376302425783 45.5910159368647,13.1416064795543 45.7366917994954,12.3285811703063 45.3817780625149,12.3838749528586 44.8853742539191,12.2614534847592 44.600482082694,12.5892370947865 44.0913658717545,13.5269059587225 43.5877273626379,14.029820997787 42.7610077988325,15.142569614328 41.9551396754569,15.9261910336019 41.9613150091157,16.1698970882904 41.7402949082034,15.8893457373778 41.5410822617182,16.7850016618606 41.1796056178366,17.5191687354312 40.8771434596322,18.3766874528826 40.3556249049427,18.4802470231954 40.1688662786398,18.2933850440281 39.8107744410732,17.7383801612133 40.2776710068303,16.8695959815223 40.4422346054639,16.4487431169373 39.7954007024665,17.1714896989715 39.4246998154207,17.0528406104293 38.9028712021373,16.6350883317818 38.8435724960824,16.1009607276131 37.9858987493342,15.6840869483145 37.908849188787,15.6879626807363 38.2145928004419,15.8919812354247 38.7509424911992,16.1093323096443 38.9645470240777,15.7188135108146 39.5440723740149,15.4136125016988 40.0483568385352,14.9984957210982 40.1729487167909,14.7032682634148 40.6045502792926,14.0606718278653 40.7863479680954,13.6279850602854 41.1882872584617,12.8880819027304 41.2530895045556,12.1066825700449 41.7045348170574,11.1919063656142 42.3554253199897,10.5119478695178 42.9314625107472,10.200028924204 43.9200068222746,9.70248823409781 44.0362787949313,8.88894616052687 44.3663361679795,8.42856082523858 44.2312281357524,7.8507666357832 43.7671479355552,7.43518476729184 43.6938449163492,7.54959638838616 44.1279011093848,7.00756229007666 44.2547667506614,6.74995527510171 45.0285179713676,7.09665245934784 45.3330988632959,6.80235517744566 45.7085798203287,6.84359297041456 45.9911465521007,7.27385094567668 45.7769477402508,7.75599205895983 45.8244900579593,8.31662967289438 46.1636424830909,8.4899524268013 46.0051508652518,8.96630577966783 46.0369318711112,9.18288170740311 46.440214748717,9.92283654139035 46.3148994004092,10.3633781266787 46.4835712754098,10.4427014502466 46.8935462509974,11.0485559424365 46.7513585475464,11.1648279150933 46.9415794948127,12.1530880062431 47.1153931748264,12.3764852230408 46.7675591090699)))

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.

Let’s connect!

Date de alta en nuestra newsletter y te enviaremos GRATIS el ebook que te ayudará a impulsar tu perfil GIS:
Vitaminas MappingGIS

Tan solo una vez al mes recibirás las últimas novedades del sector GIS y de nuestros cursos

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.