Problema importazione e unione poligoni in GRASS

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Problema importazione e unione poligoni in GRASS

Bruno Palmero
Buongiorno a tutti,
torno su GFOSS per chiedere informazioni in merito ad un problema che sto avendo con i tre principali software GIS free che sono QGIS, SAGA e GRASS.

Nel pratico: in questo periodo sto continuando uno studio personale avviato già da alcuni mesi. Sto cercando di ottenere alcune statistiche (ad esempio quota massima, minima oppure pendenza media) di un DEM. Tali statistiche vengono fatte solo per determinati poligoni (nel mio caso si tratta di cerchi di raggio pari a 100 m, in molti casi parzialmente sovrapposti).

In QGIS e SAGA ho provato ad effettuare questa operazione con PROCESSING / Grid Statistics for polygons ma la procedura risulta essere molto lunga (circa 3 o 4 ore di tempo per ogni raster analizzato).

Ho provato anche QGIS - Plugin GRASS e GRASS Standalone per utilizzare v.rast.stat ma mi trovo nella condizione di non ottenere i risultati che voglio perché GRASS, all'atto dell'importazione, unisce i diversi cerchi e poi effettua il calcolo statistico sui poligoni che sono stati sottoposti a merge.

Come posso fare per risolvere questo ultimo problema? C'è la possibilità di importare in GRASS una serie di cerchi senza che vengano uniti insieme?

Allego un link al forum freegis in cui ho elencato i miei problemi con QGIS, SAGA e GRASS con alcuni immagini esemplificative

Freegis - Link

Potete aiutarmi?

Saluti e grazie per l'aiuto
Reply | Threaded
Open this post in threaded view
|

Re: [ANTISPAMRT:] Problema importazione e unione poligoni in GRASS

Marco Guiducci-3
On Tue, 17 Mar 2015 05:41:04 -0700 (MST)
Bruno Palmero <[hidden email]> wrote:


>
> Ho provato anche QGIS - Plugin GRASS e GRASS Standalone per utilizzare
> v.rast.stat ma mi trovo nella condizione di non ottenere i risultati che
> voglio perché GRASS, all'atto dell'importazione, unisce i diversi cerchi e
> poi effettua il calcolo statistico sui poligoni che sono stati sottoposti a
> merge.
>


Grass non unisce i vettoriali in importazione.
Ti mette sul layer 1 i poligoni distinti e le sovrapposizioni sul layer 2.
Carica il layer 1.

--
Marco Guiducci <[hidden email]>
Firenze, via di Novoli 26
055 4383194
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: Problema importazione e unione poligoni in GRASS

Luca Delucchi
In reply to this post by Bruno Palmero
2015-03-17 13:41 GMT+01:00 Bruno Palmero <[hidden email]>:
> Buongiorno a tutti,

ciao

>
> Ho provato anche QGIS - Plugin GRASS e GRASS Standalone per utilizzare
> v.rast.stat ma mi trovo nella condizione di non ottenere i risultati che
> voglio perché GRASS, all'atto dell'importazione, unisce i diversi cerchi e
> poi effettua il calcolo statistico sui poligoni che sono stati sottoposti a
> merge.
>
> Come posso fare per risolvere questo ultimo problema? C'è la possibilità di
> importare in GRASS una serie di cerchi senza che vengano uniti insieme?
>

non è che li unisce è che GRASS essendo un GIS con un formato
vettoriale topologico non permette di avere una gemoetria all'interno
dell'altra (come mi sembra di aver capito nel tuo esempio) o elementi
con geometrie che si intersecano.

>
> Potete aiutarmi?
>

dovresti fare un ciclo for per ogni feature del dato di input,
importare solo quell'elemento e calcolare v.rast.stat

> Saluti e grazie per l'aiuto
>


--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: Problema importazione e unione poligoni in GRASS

Bruno Palmero
Buonasera a entrambi, grazie per le risposte e scusate per il ritardo.

In effetti ho provato a caricare i cerchi e mi sono accorto che v.rast.stats patisce lo stesso problema che ha SAGA GIS con i poligoni sovrapposti (overlapping polygons).

A questo punto ho due strade: la prima potrebbe essere quella di seguire il consiglio di Luca e creare un ciclo for (purtroppo sono piuttosto ignorante in fatto di programmazione) oppure mettermi l'anima in pace e impiegare il plugin di SAGA (versione standalone) prendendo il tempo necessario all'elaborazione (ad esempio lanciando la prima elaborazione al mattino prima di andare al lavoro e lanciare la seconda subito dopo pranzo prima di tornare in ufficio).

Credo che propenderò per la seconda, anche se devo ammettere che è strano che non esista una soluzione più "rapida" (dal punto di vista dell'impegno computazionale). SAGA è promettente perchè ammette la soluzione che risolve il problema della sovrapposizione, ma -purtroppo- impegna un tempo non indifferente.

La soluzione di Luca mi suggerisce però un modo di agire iterativo che può fare direttamente un utente, anche se è un po' agricolo:

1) parto con un DEM e i miei 57419 cerchi parzialmente sovrapposti
2) faccio girare v.rast.stats (grass) oppure Grid statistics for polygons (SAGA)
3) filtro il vettore così ottenuto e scelgo solo i dati che hanno attributo null (in pratica creando un nuovo vettore con cerchi che hanno solo attributi null)
4) ripeto il passo 2) e poi il passo 3) su questo nuovo vettore fino a quando non avrò più cerchi con attributo null
5) unisco i diversi cerchi con attributi non nulli in un unico vettore (-fine-)

Facendo così mi accorgo che, nel mio esempio, adottando SAGA in Processing di QGIS (Grid Statistics for polygons)

1) parto da 57419 cerchi
2) al primo giro ottengo 26945 cerchi con attributo null
3) al secondo giro ottengo 12006 cerchi con attributo null
4) al terzo giro ottengo 4749 cerchi con attributo null
5) al quarto giro ottengo 1499 cerchi con attributo null
6) al quinto giro ottengo 364 cerchi con attributo null
7) al sesto giro ottengo 57 cerchi con attributo null
8) al settimo giro ottengo 3 cerchi con attributo null
9) all'ultimo giro ottengo 0 cerchi con attributo null

Se faccio la somma 26945+12006+4749+1499+364+57+3=57419 ed è proprio il numero di cerchi da cui sono partito.

In pratica iterando questa cosa una decina di volte ho risolto il problema in tempi rapidissimi... (questa cosa macinata manualmente mi prende al massimo 20 minuti a raster, che rispetto alle tre ore di elaborazione è già un bel passo in avanti).

Luca, dici che facendo un ciclo for si riuscirebbe a implementare una cosa del genere? O forse intendevi proprio una cosa di questo tipo?

Grazie ancora per l'aiuto,

Ci risentiamo

Saluti
Reply | Threaded
Open this post in threaded view
|

Re: Problema importazione e unione poligoni in GRASS

Bruno Palmero
In reply to this post by Luca Delucchi
Buongiorno a tutti.

scrivo per avvisare che esiste una soluzione al problema, probabilmente creata ad hoc da uno dei programmatori di SAGA GIS.

In pratica su SAGA esiste una nuova funzione denominata "Grid statistics for points" che prende direttamente i punti e crea le statistiche come l'altro plugin ma senza dover passare alla creazione dei poligoni e al problema della sovrapposizione.

Potete trovare l'indicazione al link precedente al forum di SAGA.

Grazie per l'aiuto e buon fine settimana a tutti!

Saluti