Alternativa open source al concetto di servizio di geoprocessing di ArcGIS?


15

Sto cercando qualsiasi esempio di implementazione di una logica che Esri ha sviluppato con i servizi di geoprocessing. Si crea uno strumento personalizzato o può essere uno strumento di sistema >> lo si pubblica esponendo questa funzionalità come un servizio Web >> si consuma il servizio Web con un client.

Un semplice esempio classico: l'utente può fare clic sulla mappa per creare un punto> le coordinate vengono inviate al server> l'operazione di buffering viene eseguita sul back-end> la funzionalità della zona buffer (o solo un'immagine) viene rispedita al client e mostrato sulla tela della mappa. Ho sviluppato i servizi Esri GP negli ultimi 3 anni ed è stata una bella esperienza in particolare dalla versione 10.1.

Esistono esempi del sistema / soluzione open source che è possibile utilizzare per creare una logica simile?

Ho cercato su google e trovato gis sestante ma non c'era nulla di specifico su come funziona e quanta logica disponibile tramite Esri è disponibile. Anche il Nord sembra lavorare su questo, ma ancora mi manca la chiara spiegazione del concetto.

Risposte:


6

Utilizzando WPS preesistenti o costruendoli

C'è un'intera descrizione / tutorial sui servizi di elaborazione web (WPS) trovati qui . La maggior parte di questo verrà eseguita utilizzando richieste HTTP inviate a un server come GeoServer che ospita questo processo. Il collegamento GeoServer illustrerà il processo generale di hosting e chiamata di un WPS utilizzando il loro software. L'estensione WPS di GeoServer viene fornita con i processi JTS Topology Suite, che è una libreria di funzioni spaziali comuni come operazioni di buffering e intersezione. Ecco il loro esempio sull'esecuzione di un'operazione buffer usando la libreria JTS.

Altri modi

Ci sono altri modi per farlo però. Il nostro team Web utilizza le query sul proprio database PostGRE / PostGIS per eseguire analisi semplici, ma non ne ho familiarità.

Un'idea che ho iniziato a ricercare riguarda l'uso di script Python open source come PySal / GDAL per eseguire analisi spaziali. Dovresti usare un po 'di JavaScript / AJAX (o qualunque altra lingua lato server) per eseguire quegli script sul tuo server e sputare indietro i risultati. Sarebbe un'opzione complicata, ma credo che ti darebbe migliori opzioni di personalizzazione rispetto a ESRI.

Penso che dovresti essere in grado di suddividere le funzionalità in una stringa GeoJSON per passare come parametro negli script Python. Da lì, dovrai convertire quel risultato in una stringa GeoJSON per tornare al client da visualizzare. Pacchetti Python come Shapely possono interpretare una stringa GeoJSON. Altri potrebbero aver bisogno di una soluzione alternativa per utilizzare GeoJSON o potrebbe esserci un'opzione migliore che non ho pensato di usare.

Un'altra opzione sarebbe quella di utilizzare GeoTools per scrivere un'applicazione Web Java che eseguisse analisi spaziali. Questo supporta anche le stringhe GeoJSON e ha alcune funzioni integrate di analisi spaziale. Hanno alcuni screenshot che mostrano le loro varie applicazioni.

È possibile creare il proprio WPS o eseguire uno script sul lato server. Non sarà facile come ESRI lo rende, ma sarebbe gratuito se si utilizza open-source.

Qualunque sia il percorso che decidi, aggiornalo qui poiché è un ottimo argomento!


grazie mille, ottima risposta. Hai citato una delle alternative che ho tenuto a mente: attivare i file .py Python dalla pagina Web di JS che memorizza i dati inviati dall'utente, fornendo questi dati alle funzioni Python e quindi restituendo i risultati di output al browser web. La cosa qui è che dovresti scrivere la maggior parte degli strumenti GP da zero. Il link di GeoTools che hai condiviso sembra comunque interessante. Sarebbe davvero bello vedere qualsiasi esempio dal vivo di un'operazione GP eseguita nel back-end da GeoServer!
Alex Tereshenkov,

2

Il plug-in OpenGeo per Qgis può utilizzare i servizi wps ospitati su geoserver. Funziona in modo molto simile a come Arcgis utilizza il loro toolbox, richiederà che il servizio wps sia abilitato e che il processo sia disponibile. Dovresti anche dare un'occhiata a pyWPS


potresti per favore approfondire sul plugin QGIS? Sarà solo un client desktop che può utilizzare i servizi WPS? Sono interessato a creare servizi WPS in un flusso di lavoro simile a quello che Esri ha (o vicino a quello con più configurazione e una leggera programmazione accettabile). Forse potresti condividere informazioni sullo sviluppo del servizio wps da qualsiasi GIS desktop a GeoServer o un'altra piattaforma server GIS?
Alex Tereshenkov,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.