[Gfoss] Ottenere aree e ID intersezione poligoni

Buongiorno a tutti,
sollevo una questione che mi sta interessando per lavoro da qualche giorno.
Faccio un esempio per spiegarmi meglio.

Mettiamo di avere una serie di poligoni, più o meno regolari, assimilabili
alla superficie coperta da ogni chioma di ciascun albero di un bosco. A
causa della diversa altezza di ciascun albero e della vicinanza tra i
fusti, tali poligoni si sovrapporranno parzialmente tra loro in modo
irregolare. A ciascun albero ho dato in ID numerico e ciascun poligono ha
la sua area.
Esiste in QGIS o GRASS il modo di analizzare le relazioni di
sovrapposizione tra le aree di chioma? Avrei cioè bisogno di sapere ciascun
poligono con quale altro si sovrappone e quanta è la superficie in comune.

Grazie 1000, un saluto

--
Maurizio Marchi, Ph.D. student
Florence, Italy
ID skype: maurizioxyz
Ubuntu 14.04 LTS
linux user 552742

magari è quello che serve a te:
in SAGA 2.1.2
Shapes-Polygons-->Polygon Self-Intersection

Description
Self-intersection of one layer's polygons.
Uses the free and open source software library Clipper created by Angus
Johnson.
http://www.angusj.com/delphi/clipper.php
http://sourceforge.net/projects/polyclipping/

saluti

s.

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/Ottenere-aree-e-ID-intersezione-poligoni-tp7589273p7589274.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

Assumiamo, per semplicità, che la tabella attributi del tuo shapefile di
poligoni abbia il solo campo (colonna) ID con assegnata la sequenza
1,2,3,...n.
Vai in Barra dei menù --> Vettore --> Unione e lancia la funzione, chiamando
"unione.shp" il nuovo shapefile che si creerà.
Nella tabella attributi dello shapefile "unione" ora ci saranno due campi,
uno ID e l'altro ID_2, nei quali potrai leggere quale chioma si interseca
con quali altre chiome (una o più di una).
Se togli il riempimento con colore solido dei poligoni dello shapefile
"unione" e selezioni le varie righe (record) della tabella attributi, nella
Mappa della Vista potrai apprezzare il risultato anche graficamente (se
invece tenti di selezionare con il cursore del mouse non ci riesci perchè
quando clicchi sulle zone di intersezione ti si evidenziano sia le
intersezioni che le chiome intersecanti).
A questo punto, sempre nella tabella attributi dello shapefile "unione", con
lo strumento "seleziona elementi usando un'espressione" scrivi questa stinga
di selezione:
"ID" = "ID_2"
e lancia la selezione.
Ti si evidenzieranno le chiome intersecanti.
Rendi modificabile il layer e cancellale.
Una volta cancellate le chiome intersecanti, nello shapefile "unione" ti
resteranno i soli poligoni derivanti dalle intersezioni e nella relativa
tabella attributi, per ogni record, potrai capire da quale chioma si origina
ogni singola intersezione.
A questo punto, per concludere, vi in Vettore --> Strumenti di geometria -->
aggiungi colonne geometriche e nella tabella attributi ti si crea una
colonna con la superficie di ogni poligono intersezione.

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/Ottenere-aree-e-ID-intersezione-poligoni-tp7589273p7589275.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

Marco wrote

....Nella tabella attributi dello shapefile "unione" ora ci saranno due
campi, uno ID e l'altro ID_2, nei quali potrai leggere quale chioma si
interseca con quali altre chiome (una o più di una).

Ho notato ora che in realtà non è proprio così perchè il comando unione (o
anche il comando intersezione) ti restituisce, in tabella, per ogni record
che crea, solo dati relativi a poligoni che scaturiscono dall'unione al max
di due chiome, mentre ignora del tutto i poligoni che scaturiscono
dall'unione (o dall'intersezione) di più di due chiome.
Peccato. Il suggerimento che ti ho dato funziona a metà.
P.S. hai avuto modo di provare il suggerimento dato da Stefano Campus (cioè
di usare SAGA 2.1.2)? Funziona?

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/Ottenere-aree-e-ID-intersezione-poligoni-tp7589273p7589276.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

Il giorno Thu, 4 Sep 2014 08:26:46 -0700 (PDT)
Marco <spaziani.marco@gmail.com> ha scritto:

Assumiamo, per semplicità, che la tabella attributi ....

mi lancio senza ... paracadute, tanto per me è un gioco :slight_smile:

con le soluzioni prospettate da Stefano e Marco, che mi sembrano
centrare il tuo quesito, ottieni l'intersezione delle proiezioni, _non_
l'intersezione degli oggetti; la chioma 1 potrebbe essere ad una quota
tale da non intersecare la chioma 2, anche se in pianta potrebbe
sembrarlo;

per un controllo un pò più reale(*) dovresti:
a) individuare il centroide del poligono
b) individuare la quota
c) individuare il raggio del cerchio circoscritto al poligono
d) se la distanza fra i due centroidi è maggiore della somma dei raggi
non c'è intersezione delle chiome, altrimenti sì;
e) i metodi di S. e M. detti sopra possono essere utili per fare una
prima selezione dei casi da esaminare (forse può bastare anche un
semplice controllo dei boundingbox);

ovviamente si tratta di valutare ancora una volta se il gioco vale la
candela :slight_smile:

spero di essere atterrato senza tanti danni :slight_smile:

ciao,
giuliano

(*) i realtà il metodo presuppone l'identificazione delle chiome con
sfere, i cipressi forse rientrerebbero a fatica..... :slight_smile:

Marco wrote

P.S. hai avuto modo di provare il suggerimento dato da Stefano Campus
(cioè di usare SAGA 2.1.2)? Funziona?

funziona!
restituisce uno shape con tante geometrie quante sono le intersezioni e come
attributo l'id dei poligoni originali da cui deriva.
ovviamente le parti di poligoni che non si intersecano hanno come nuovo id
solo quello originale.

insomma, uno "union" completo :slight_smile:

s.

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/Ottenere-aree-e-ID-intersezione-poligoni-tp7589273p7589281.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

Su Ste', l'utile strumento che hai citato non è contenuto in Qgis 2.4...

Potresti contattare "chi di dovere" affinchè venga implementato nel kernel
della futura 2.6..?

Grazie!

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/Ottenere-aree-e-ID-intersezione-poligoni-tp7589273p7589282.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

essendo in saga, si deve inserire entro i moduli disponibili di processing

s.

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/Ottenere-aree-e-ID-intersezione-poligoni-tp7589273p7589283.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

Il 05/09/2014 11:14, stefano campus ha scritto:

essendo in saga, si deve inserire entro i moduli disponibili di processing

aggiungerlo e' facile, basta guardare un comando simile esistente e fare una pull
request.
in ogni caso, e' opportuno aprire un ticket con una feature request.
saluti.

--
Paolo Cavallini - www.faunalia.eu
Corsi QGIS e PostGIS: http://www.faunalia.eu/training.html

stefano campus wrote

funziona!
restituisce uno shape con tante geometrie quante sono le intersezioni e
come attributo l'id dei poligoni originali da cui deriva.
ovviamente le parti di poligoni che non si intersecano hanno come nuovo id
solo quello originale.

Ottimo! ...il buon SAGA sa come farsi valere quando il gioco si fa duro.

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/Ottenere-aree-e-ID-intersezione-poligoni-tp7589273p7589285.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

Cercando un modo per risolvere il problema col solo Qgis, avrei escogitato la
seguente tecnica:

1] VETTORE => STRUMENTI DI GESTIONE DATI => DIVIDI VETTORE

che crea N sotto-shape figlie a partire dal padre

2] VETTORE => STRUMENTI DI GEOPROCESSING => INTERSEZIONE

che estrapola le parti in comune, a due a due.

A titolo di prova, ho preso le regioni Istat, le ho semplificate e bufferate
in modo che si sovrapponessero reciprocamente, ottenendo questi 20
micro-file:

20regioni.zip
<http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/file/n7589287/20regioni.zip&gt;

...e qui mi sono bloccato.

Ora, se esistesse un metodo "loop" per eseguire il punto 2 confrontando
automaticamente la shape N-esima con le restanti (N-1), si otterrebbe il
risultato di Saga.

Ve lo lascio come simpatico enigma in vista dell'imminente weekend (altro
che Sudoku...)

:slight_smile:

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/Ottenere-aree-e-ID-intersezione-poligoni-tp7589273p7589287.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.