Alternative open source au concept de service de géotraitement ArcGIS?

15

Je recherche des exemples d'implémentation d'une logique qu'Esri a construite avec des services de géotraitement. Vous créez un outil personnalisé ou il peut s'agir d'un outil système >> vous le publiez exposant cette fonctionnalité en tant que service Web >> vous consommez le service Web avec un client.

Un exemple simple classique: l'utilisateur peut cliquer sur la carte pour créer un point> les coordonnées sont envoyées au serveur> l'opération de mise en mémoire tampon est en cours d'exécution à l'arrière> la fonction de zone tampon (ou juste une image) est renvoyée au client et montré sur la toile de carte. Je développe des services Esri GP depuis 3 ans et ce fut une belle expérience en particulier depuis la version 10.1.

Existe-t-il des exemples de système / solution open source que l'on pourrait utiliser pour construire une logique similaire?

J'ai googlé et trouvé des sextante gis mais il n'y avait rien de spécifique sur la façon dont cela fonctionne et sur la quantité de logique disponible via Esri. 52North semble également y travailler, mais encore une fois, je manque l'explication claire du concept.

Alex Tereshenkov
la source

Réponses:

6

Utiliser un WPS préexistant ou les construire

Vous trouverez ici une description / tutoriel complet sur les services de traitement Web (WPS) . La plupart de cela se fera à l'aide de requêtes HTTP envoyées à un serveur comme GeoServer qui héberge ce processus. Le lien GeoServer décrira le processus général d'hébergement et d'appel d'un WPS à l'aide de leur logiciel. L'extension WPS de GeoServer est livrée avec les processus JTS Topology Suite, qui est une bibliothèque de fonctions spatiales communes telles que la mise en mémoire tampon et les opérations d'intersection. Voici leur exemple sur l'exécution d'une opération de tampon à l'aide de la bibliothèque JTS.

D'autres moyens

Il existe cependant d'autres façons de le faire. Notre équipe Web utilise des requêtes sur leur base de données PostGRE / PostGIS pour effectuer une analyse simple, mais je ne la connais pas complètement.

Une idée que j'ai commencé à rechercher consiste à utiliser des scripts python open source tels que PySal / GDAL pour effectuer une analyse spatiale. Vous devrez utiliser du JavaScript / AJAX (ou tout autre langage côté serveur) pour exécuter ces scripts sur votre serveur et recracher les résultats. Ce serait une option compliquée, mais je pense que cela vous donnerait de meilleures options de personnalisation par rapport à ESRI.

Je pense que vous devriez pouvoir décomposer les fonctionnalités en une chaîne GeoJSON pour passer en paramètre dans les scripts python. À partir de là, vous devrez reconvertir ce résultat en une chaîne GeoJSON pour le renvoyer au client à afficher. Les packages Python tels que Shapely peuvent interpréter une chaîne GeoJSON. D'autres peuvent avoir besoin d'une solution de contournement écrite pour utiliser GeoJSON, ou il peut y avoir une meilleure option que je n'ai pas pensé à utiliser.

Une autre option serait d'utiliser GeoTools pour rédiger une application Web Java qui ferait une analyse spatiale. Cela prend également en charge les chaînes GeoJSON et possède certaines fonctions d'analyse spatiale intégrées. Ils ont quelques captures d'écran montrant leurs différentes applications.

Il est possible de créer votre propre WPS ou d'exécuter un script côté serveur. Ce ne sera pas aussi facile que le fait ESRI, mais ce serait gratuit si vous utilisez l'open-source.

Quelle que soit la route que vous décidez, mettez-la à jour ici car c'est un excellent sujet!

Branco
la source
merci beaucoup, excellente réponse. Vous avez nommé l'une des alternatives que j'ai gardées à l'esprit - déclencher des fichiers Python .py à partir de la page Web JS stockant les données soumises par l'utilisateur, alimenter ces données dans les fonctions Python, puis récupérer les résultats de sortie dans le navigateur Web. La chose ici est que vous auriez besoin d'écrire la plupart des outils GP à partir de zéro. Le lien GeoTools que vous avez partagé semble intéressant. Ce serait vraiment cool de voir un exemple en direct d'une opération GP effectuée en back-end par GeoServer!
Alex Tereshenkov
2

Le plugin OpenGeo pour Qgis peut utiliser les services wps hébergés sur geoserver. Cela fonctionne un peu comme la façon dont arcgis utilise sa boîte à outils, il faudra que le service wps soit activé et que le processus soit disponible. Vous devriez également consulter pyWPS

John Jediny
la source
pourriez-vous s'il vous plaît développer le plugin QGIS? Sera-ce juste un client de bureau qui peut consommer des services WPS? Je suis intéressé par la création de services WPS puis par un flux de travail similaire à celui d'Esri (ou proche de celui avec plus de configuration et une programmation légère acceptable). Peut-être pourriez-vous partager des informations sur le développement du service wps à partir de n'importe quel SIG de bureau vers GeoServer ou une autre plate-forme de serveur SIG?
Alex Tereshenkov