¿Alternativa de código abierto al concepto de servicio de geoprocesamiento ArcGIS?

15

Estoy buscando ejemplos de implementación de una lógica que Esri ha construido con servicios de geoprocesamiento. Usted crea una herramienta personalizada o puede ser una herramienta del sistema >> la publica exponiendo esta funcionalidad como un servicio web >> consume el servicio web con un cliente.

Un ejemplo simple clásico: el usuario puede hacer clic en el mapa para crear un punto> las coordenadas se envían al servidor> la operación de almacenamiento en búfer se ejecuta en el back-end> la función de zona de almacenamiento en búfer (o simplemente una imagen) se devuelve al cliente y se muestra en el lienzo del mapa. He estado desarrollando servicios Esri GP durante los últimos 3 años y ha sido una buena experiencia específicamente desde la versión 10.1.

¿Hay algún ejemplo del sistema / solución de código abierto que uno podría usar para construir una lógica similar?

Busqué en Google y encontré gis sextante, pero no había nada específico sobre cómo funciona esto y cuánta lógica está disponible a través de Esri. 52 North también parece estar trabajando en eso, pero de nuevo me falta la explicación clara del concepto.

Alex Tereshenkov
fuente

Respuestas:

6

Usando WPS preexistentes o construyéndolos

Hay toda una descripción / tutorial sobre servicios de procesamiento de Web (WPS) se encuentran aquí . La mayor parte de esto se hará mediante solicitudes HTTP enviadas a un servidor como GeoServer que aloja este proceso. El enlace GeoServer describirá el proceso general de hospedaje y llamadas a un WPS utilizando su software. La extensión WPS de GeoServer viene con procesos JTS Topology Suite, que es una biblioteca de funciones espaciales comunes, como las operaciones de almacenamiento intermedio y de intersección. Aquí está su ejemplo sobre la ejecución de una operación de búfer utilizando la biblioteca JTS.

Otras maneras

Sin embargo, hay otras formas de hacerlo. Nuestro equipo web utiliza consultas en su base de datos PostGRE / PostGIS para hacer un análisis simple, pero no estoy completamente familiarizado con eso.

Una idea que he estado comenzando a investigar implica el uso de scripts de python de código abierto como PySal / GDAL para hacer análisis espacial. Debería usar JavaScript / AJAX (o cualquier otro lenguaje del lado del servidor) para ejecutar esos scripts en su servidor y escupir los resultados. Sería una opción complicada, pero creo que le daría mejores opciones de personalización en comparación con ESRI.

Creo que debería poder desglosar las características en una cadena GeoJSON para pasarlas como parámetro a los scripts de Python. A partir de ahí, necesitaría convertir ese resultado nuevamente en una cadena GeoJSON para pasarlo al cliente para que se muestre. Los paquetes de Python como Shapely pueden interpretar una cadena GeoJSON. Otros pueden necesitar un poco de solución escrita para utilizar GeoJSON, o puede haber una mejor opción que no he pensado en usar.

Otra opción sería utilizar GeoTools para escribir una aplicación web Java que haría análisis espacial. Esto también admite cadenas GeoJSON y tiene algunas funciones de análisis espacial integradas. Tienen algunas capturas de pantalla que muestran sus diversas aplicaciones.

Es factible crear su propio WPS o ejecutar un script del lado del servidor. No será tan fácil como lo hace ESRI, pero sería gratis si usa código abierto.

Independientemente de la ruta que decida, actualícela aquí, ya que es un gran tema.

Branco
fuente
Muchas gracias, gran respuesta. Usted mencionó una de las alternativas que tenía en mente: desencadenar archivos .py de Python desde la página web JS almacenando los datos enviados por el usuario, alimentando estos datos a las funciones de Python y luego obteniendo los resultados de salida devueltos al navegador web. Lo que ocurre aquí es que necesitaría escribir la mayoría de las herramientas GP desde cero. Sin embargo, el enlace de GeoTools que ha compartido parece interesante. ¡Sería genial ver cualquier ejemplo en vivo de una operación de GP realizada en el back-end por GeoServer!
Alex Tereshenkov
2

El complemento OpenGeo para Qgis puede usar los servicios wps alojados en geoserver. Funciona de manera similar a cómo arcgis usa su caja de herramientas, requerirá que el servicio wps esté habilitado y el proceso esté disponible. También deberías consultar pyWPS

John Jediny
fuente
¿podría por favor elaborar el complemento QGIS? ¿Será solo un cliente de escritorio que puede consumir servicios WPS? Estoy interesado en crear servicios WPS en un flujo de trabajo similar al que tiene Esri (o cercano a eso con más configuración y una ligera programación aceptable). ¿Quizás podría compartir información sobre el desarrollo del servicio wps desde cualquier SIG de escritorio a GeoServer u otra plataforma de servidor SIG?
Alex Tereshenkov