Esecuzione dell'algebra delle mappe raster nel GIS web open source?


9

Algebra delle mappe per raster è facile con ArcGIS Raster Calculator (o QGIS). Avevo pensato che sarebbe stato facile anche con server Web GIS come GeoServer e MapServer più OpenLayers ecc. Quello che voglio ottenere è fare cose semplici come dividere due immagini e generare una terza immagine di rapporto da visualizzare nella pagina web. Ho trascorso settimane a trovare una soluzione e risulta piuttosto difficile (per me).

Ho provato alcune cose tra cui:

  1. PostGIS raster. Penso che l'algebra raster non sia un problema qui.

    Ma il raster PostGIS è piuttosto difficile da caricare in GeoServer. Ci sono molte domande poste ripetutamente su come caricare pgraster in GeoServer. Vedi ad es. Come importare GeoTIFF tramite PostGIS in GeoServer? ? , /gis/86006/publish-rasters-stored-in-postgresql-with-geoserver ?, tra gli altri. Non una singola risposta qui in GIS.SE o nel sito Web ufficiale di GeoServer fornisce un elenco completo dei passaggi che possono essere seguiti per funzionare. Il caricamento di pgraster in MapServer ha riportato risultati positivi, ma con prestazioni molto lente. Entrambi sembrano richiedere un po 'di piastrellatura e un comando one-liner per importare un raster su entrambi i server sembra essere fuori questione.

  2. GeoTIFF

    GeoTIFF è facile da caricare in GeoServer e MapServer. Ma cosa possiamo farci? Senza un PostGIS come SQL, mi sono rivolto a e ho cercato brevemente usando WCS per eseguire l'algebra delle mappe, ma non ho trovato molto. WCS è un percorso percorribile per questo con i server attuali?

  3. Programmalo nel modo più duro

    In qualche modo usa AJAX per chiamare una pagina PHP o scrivere un WPS usando GeoServer per importare immagini in PostGIS, facendo l'algebra della mappa e quindi convertendo il risultato pgraster in un formato (ad esempio GeoTIFF) che può essere facilmente caricato e visualizzato in GeoServer / MapServer.

  4. Naturalmente, si può scrivere il codice per leggere direttamente i GeoTIFF ed eseguire l'algebra delle mappe senza il supporto GIS.

Nessuna delle precedenti sembra essere facile o ragionevole per me considerando la facilità con cui la stessa algebra può essere eseguita in Desktop GIS.

Mi chiedevo se qualcuno ha avuto qualche esperienza con Map Algebra in un ambiente GIS web e può suggerire un percorso praticabile?

Sono interessato alle soluzioni Open Source (per motivi politici all'interno della mia organizzazione.) Sono consapevole che ArcGIS Server può chiamare il codice Python di ArcGIS, ma non abbiamo la licenza e l'ambiente qui non è favorevole per acquisirne una.


"Esiste un modo ragionevole per ..." è una frase davvero prolissa (dove, ad esempio, "Come ..." funziona bene) per inserire un titolo di domanda, quindi se riesci a pensare a un modo migliore per affermare la tua domanda rispetto a ciò che avevo suggerito, per favore, fallo. Inoltre, considero la parola "software" per includere API e librerie di programmazione, come GDAL, quindi, secondo tale interpretazione, la tua inversione della mia modifica non è stata probabilmente necessaria. Tuttavia, fai quello che desideri se ritieni che chiarisca la tua domanda.
blah238,

@ blah238 Grazie per le modifiche :). Probabilmente ero prolisso, ma penso che ovviamente ci siano modi per ..., è solo che sembrano essere uno sforzo irragionevole rispetto al mondo ESRI / Desktop. Inoltre, hai ragione nel dire che "software" può includere API. Voglio solo sottolineare che codificarlo da zero è un'opzione se non c'è nient'altro che sia ragionevolmente facile da raggiungere con l'algebra delle mappe.
Tinxx,

Risposte:


4

Usando solo software open source, dovrai quasi certamente programmare tu stesso. GDAL è la libreria di I / O raster open source de facto , quindi probabilmente la utilizzerai o uno dei suoi numerosi wrapper. È possibile utilizzare Python (ad es. Rasterio + numpy / scipy ) o node.js, ad esempio node-gdal (sebbene attenzione sia attualmente sincrono / bloccante). Per quanto riguarda la sua effettiva implementazione come servizio web, non sono sicuro di quale sia l'approccio migliore, ma qui c'è una domanda correlata: confrontare diversi server GIS open source?

Se la programmazione non fa per te, potresti dare un'occhiata al server FME . È un prodotto commerciale ma probabilmente molto più economico di ArcGIS Server e ha tutti i tipi di trasformatori di calcolo raster , quindi sarei piuttosto sorpreso se non riuscissero a realizzare quello che devi fare. Non è necessario caricare i raster in un database in quanto può leggere praticamente da qualsiasi formato di file raster .

La parte server consente di eseguire le trasformazioni (aree di lavoro FME) su un server e utilizzare un'API, ad esempio l' API REST del server FME , per avviare tali trasformazioni e accedere ai risultati.

Il vantaggio principale è che non avresti bisogno di fare molto se qualsiasi programmazione per rendere operativi i servizi, solo un po 'di codifica front-end per funzionare con l'API.


+1 grazie. Stavo anche pensando a rasdaman. Sono in grado di programmare, ma semplicemente non mi sento di codificarlo molti anni dopo l'algebra delle mappe.
Tinlyx,

+1 A supporto di python + gdal. Fare algebra raster con intorpidimento è un gioco da ragazzi. Inoltre, se stai lavorando con raster basati su testo (come file .asc), non hai nemmeno bisogno di gdal (che può essere una seccatura da installare, a seconda del caso) utilizzando numpy.loadtxt (salta le righe di intestazione, spazio come delimitatore, ecc.)
user1269942

Con rasdaman hai la possibilità di usare WCPS per eseguire l'elaborazione sul server, anche se probabilmente dovrai fare degli script per creare la sintassi WCPS poiché fare a mano può essere impegnativo.
nmtoken,

2

Quello che stai cercando è un server di immagini. ArcGIS per Server ha questa estensione:

Estensione di immagine ArcGIS per server

non conosco alcun equivalente open source.


1
OP chiede come farlo in un contesto Web, non per un'estensione ArcGIS.
John Powell,

2
@ JohnBarça l'estensione suggerita è ArcGIS per Server e quindi viene utilizzata in un contesto Web.
PolyGeo

@Pau Ho dimenticato di dire che sono un po 'costretto a usare il GIS open source. Ma grazie per il suggerimento. È utile.
Tinlyx,

1
@TingL puoi iniziare a cercare alternative open source per arcgis image server
Pau,

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.