[Gfoss] Topologia e noGap

Salve a tutti,
in questi giorni sto correggendo un layer poligonale in cui la regola topologica di base dovrebbe essere evitare le intersezioni tra i poligoni e “non devono esserci spazi tra i poligoni”.

Io uso QGis e fino a dare come regola topologia l’evita intersezioni ci arrivo, ma non so come dare oppure correggere a posteriori gli spazi tra poligoni che dovrebbero collimare.

Siamo così dovuti ricorrere ad ArcZis che ha uno strumento di validazione p

Ho dato un occhio veloce in grass, ma non mi pareva ci fosse una soluzione, ma forse mi sbaglio.

Suggerimenti?

On Mon, May 30, 2011 at 10:03:21PM +0200, Luca Mandolesi wrote:

Salve a tutti,
in questi giorni sto correggendo un layer poligonale in cui la regola
topologica di base dovrebbe essere evitare le intersezioni tra i poligoni e
"non devono esserci spazi tra i poligoni".

Io uso QGis e fino a dare come regola topologia l'evita intersezioni ci
arrivo, ma non so come dare oppure correggere a posteriori gli spazi tra
poligoni che dovrebbero collimare.

Siamo così dovuti ricorrere ad ArcZis che ha uno strumento di validazione p

Ho dato un occhio veloce in grass, ma non mi pareva ci fosse una soluzione,
ma forse mi sbaglio.

Suggerimenti?

Aumenta la tolleranza dello snapping ?
Certo da fare a mano e' noioso. Se hai la versione 2.0 (dev)
di PostGIS c'e' la funzione ST_Snap che lo potrebbe fare per te.

--strk;

  () Free GIS & Flash consultant/developer
  /\ http://strk.keybit.net/services.html

In GRASS (anche via QGIS) basta importare settando i parametri
"minarea" e "snap". Oppure dopo si possono usare le varie opzioni di
v.clean.

In QGIS si possono correggere a mano gli errori con lo strumento reshape.

-- Giovanni --

2011/5/30 Luca Mandolesi <mandoluca@gmail.com>:

Salve a tutti,
in questi giorni sto correggendo un layer poligonale in cui la regola
topologica di base dovrebbe essere evitare le intersezioni tra i poligoni e
"non devono esserci spazi tra i poligoni".
Io uso QGis e fino a dare come regola topologia l'evita intersezioni ci
arrivo, ma non so come dare oppure correggere a posteriori gli spazi tra
poligoni che dovrebbero collimare.
Siamo così dovuti ricorrere ad ArcZis che ha uno strumento di validazione p
Ho dato un occhio veloce in grass, ma non mi pareva ci fosse una soluzione,
ma forse mi sbaglio.
Suggerimenti?
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
502 iscritti all'11.2.2011

Il problema non è tanto correggere a mano, ma trovare gli errori, ovvero lo spazio tra 2 poligoni, andarli a verificare e poi correggerli anche a mano…
Arcziz, ha questa bella funzione che, date le regole topologiche, ti trova gli errori, per layer, come nel mio caso, disegnati a monte male…

2011/5/30 Giovanni Manghi <giovanni.manghi@gmail.com>

In GRASS (anche via QGIS) basta importare settando i parametri
“minarea” e “snap”. Oppure dopo si possono usare le varie opzioni di
v.clean.

In QGIS si possono correggere a mano gli errori con lo strumento reshape.

– Giovanni –

2011/5/30 Luca Mandolesi <mandoluca@gmail.com>:

Salve a tutti,
in questi giorni sto correggendo un layer poligonale in cui la regola
topologica di base dovrebbe essere evitare le intersezioni tra i poligoni e
“non devono esserci spazi tra i poligoni”.
Io uso QGis e fino a dare come regola topologia l’evita intersezioni ci
arrivo, ma non so come dare oppure correggere a posteriori gli spazi tra
poligoni che dovrebbero collimare.
Siamo così dovuti ricorrere ad ArcZis che ha uno strumento di validazione p
Ho dato un occhio veloce in grass, ma non mi pareva ci fosse una soluzione,
ma forse mi sbaglio.
Suggerimenti?


Iscriviti all’associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell’Associazione GFOSS.it.
502 iscritti all’11.2.2011

On Mon, 30 May 2011 22:28:34 +0200, Luca Mandolesi <mandoluca@gmail.com>
wrote:

Il problema non è tanto correggere a mano, ma trovare gli errori, ovvero
lo
spazio tra 2 poligoni, andarli a verificare e poi correggerli anche a
mano....

in effetti IMHO non e' un errore topologico.
per trovarli puoi fare una select che trova tutti gli oggetti che distano
<x dal piu' vicino, escludendo quelli che si toccano.
se puoi, apri un ticket, spiegando bene cosa ti serve.
saluti.
--
http://faunalia.it/pc

Ciao a tutti,

potresti, in automatico:

1 - eliminare tutti i buchi dai poligoni tenendo solo il linearring
esterno
2 - effettuare un dissolve del layer usando come parametro un valore che
sia uguale per tutti i poligoni, in modo da fondere l'intero layer in un
unico poligono (o in più poligoni in caso di discontinuità)
3 - i buchi che ti rimangono (i linearring interni) sono gli "errori"
che cerchi

Spero ti sia utile

Buona giornata a tutti

Sig

Il giorno mar, 31/05/2011 alle 09.19 +0200, Paolo Cavallini ha scritto:

On Mon, 30 May 2011 22:28:34 +0200, Luca Mandolesi <mandoluca@gmail.com>
wrote:
> Il problema non è tanto correggere a mano, ma trovare gli errori, ovvero
> lo
> spazio tra 2 poligoni, andarli a verificare e poi correggerli anche a
> mano....

in effetti IMHO non e' un errore topologico.
per trovarli puoi fare una select che trova tutti gli oggetti che distano
<x dal piu' vicino, escludendo quelli che si toccano.
se puoi, apri un ticket, spiegando bene cosa ti serve.
saluti.
--
http://faunalia.it/pc
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
502 iscritti all'11.2.2011

_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

  • imposti la topologia in modo da non permettere la sovrapposizione di più poligoni

  • Disegni un unico grande poligono che copra tutta l’area della tua mappa. dovresti ottenere un grande poligono composto di tante isole corrispondenti ognuna a un’area precedentemente vuota tra due e più poligoni, ovvero un “buco”. Nella tabella attributi gli puoi dare per esempio il nome “errore”.

Interessante, non ci avevo pensato. Avevo provato a fare un grande poligono e poi provato con gli ftools intersect o difference e vedere se ricavavo dei poligoni dove avevo uno spazio tra due, ma non ho avuto un gran risultato…

C’è per caso qualcuno in lista che usa arcZiz e sa usare il comando di controllo della topologia a posteriori e mandare una bella foto a schermo!

Proverò a scrivere un ticket, magari in inglese, poi se c’è qualche buona anima che me lo corregge sarei ben contento!!

Ecco l’esempio a cui vorrei arrivare!!!

http://www.youtube.com/watch?v=LZ-fJMGF7UM

Ciao a tutti,

potresti, in automatico:

1 - eliminare tutti i buchi dai poligoni tenendo solo il linearring
esterno
2 - effettuare un dissolve del layer usando come parametro un valore che
sia uguale per tutti i poligoni, in modo da fondere l'intero layer in un
unico poligono (o in più poligoni in caso di discontinuità)
3 - i buchi che ti rimangono (i linearring interni) sono gli "errori"
che cerchi

Spero ti sia utile

Buona giornata a tutti

Sig

Il giorno mar, 31/05/2011 alle 09.19 +0200, Paolo Cavallini ha scritto:

On Mon, 30 May 2011 22:28:34 +0200, Luca Mandolesi

<mandoluca@gmail.com>

wrote:
> Il problema non è tanto correggere a mano, ma trovare gli errori,

ovvero

> lo
> spazio tra 2 poligoni, andarli a verificare e poi correggerli anche

a

> mano....

in effetti IMHO non e' un errore topologico.
per trovarli puoi fare una select che trova tutti gli oggetti che

distano

<x dal piu' vicino, escludendo quelli che si toccano.
se puoi, apri un ticket, spiegando bene cosa ti serve.
saluti.
--
http://faunalia.it/pc
_______________________________________________
Iscriviti all'associazione GFOSS.it:

http://www.gfoss.it/drupal/iscrizione

Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
502 iscritti all'11.2.2011

_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

in grass hai molte soluzioni

la più banale è v.clean con opzione rimuovi aree piccole (perchè
immagino che saranno piccole...)
gli dai un valore di soglia ed il gioco è fatto

se vuoi avere controllo su quali sono le aree in questione invece,
usi v.centroids per aggiungere centroidi alle aree che non ne hanno
(partendo da un valore di cat molto alto cioè non già presente nel layer
importato) e poi selezioni solo le aree con cat molto alta appunto
così vedi quali sono gli errori e dove si trovano... (li estrai con
v.extract)

nota adesso con precisione la dimensione massima (areale) di questi
errori, usi v.clean per rimuovere tutte le aree inferiori a quella
dimensione

la topologia è garantita e l'area viene assegnata al poligono contermine
con cui la tua area condivide il boundary più lungo..

ciao

Il giorno lun, 30/05/2011 alle 22.03 +0200, Luca Mandolesi ha scritto:

Salve a tutti,
in questi giorni sto correggendo un layer poligonale in cui la regola
topologica di base dovrebbe essere evitare le intersezioni tra i
poligoni e "non devono esserci spazi tra i poligoni".

Io uso QGis e fino a dare come regola topologia l'evita intersezioni
ci arrivo, ma non so come dare oppure correggere a posteriori gli
spazi tra poligoni che dovrebbero collimare.

Siamo così dovuti ricorrere ad ArcZis che ha uno strumento di
validazione p

Ho dato un occhio veloce in grass, ma non mi pareva ci fosse una
soluzione, ma forse mi sbaglio.

Suggerimenti?
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
502 iscritti all'11.2.2011

--
Ti prego di cercare di non inviarmi files .dwg, .doc, .xls, .ppt.
Preferisco formati liberi.
Please try to avoid to send me .dwg, .doc, .xls, .ppt files.
I prefer free formats.
http://it.wikipedia.org/wiki/Formato_aperto
http://en.wikipedia.org/wiki/Open_format

Ivan Marchesini
Perugia (Italy)
Socio fondatore GFOSS "Geospatial Free and Open Source Software" http://www.gfoss.it
e-mail: ivan.marchesini@irpi.cnr.it
        ivan.marchesini@gmail.com
fax (mailfax): +39 1782092534
jabber: geoivan73@jabber.org
skype: geoivan73

Le cosiddette aree piccole, le genero partendo da una union o un intersect con un poligono più grande che contiene tutte le mie geometrie?

2011/5/31 ivan marchesini <ivan.marchesini@gmail.com>

in grass hai molte soluzioni

la più banale è v.clean con opzione rimuovi aree piccole (perchè
immagino che saranno piccole…)
gli dai un valore di soglia ed il gioco è fatto

se vuoi avere controllo su quali sono le aree in questione invece,
usi v.centroids per aggiungere centroidi alle aree che non ne hanno
(partendo da un valore di cat molto alto cioè non già presente nel layer
importato) e poi selezioni solo le aree con cat molto alta appunto
così vedi quali sono gli errori e dove si trovano… (li estrai con
v.extract)

nota adesso con precisione la dimensione massima (areale) di questi
errori, usi v.clean per rimuovere tutte le aree inferiori a quella
dimensione

la topologia è garantita e l’area viene assegnata al poligono contermine
con cui la tua area condivide il boundary più lungo…

ciao

Il giorno lun, 30/05/2011 alle 22.03 +0200, Luca Mandolesi ha scritto:

Salve a tutti,
in questi giorni sto correggendo un layer poligonale in cui la regola
topologica di base dovrebbe essere evitare le intersezioni tra i
poligoni e “non devono esserci spazi tra i poligoni”.

Io uso QGis e fino a dare come regola topologia l’evita intersezioni
ci arrivo, ma non so come dare oppure correggere a posteriori gli
spazi tra poligoni che dovrebbero collimare.

Siamo così dovuti ricorrere ad ArcZis che ha uno strumento di
validazione p

Ho dato un occhio veloce in grass, ma non mi pareva ci fosse una
soluzione, ma forse mi sbaglio.

Suggerimenti?


Iscriviti all’associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell’Associazione GFOSS.it.
502 iscritti all’11.2.2011


Ti prego di cercare di non inviarmi files .dwg, .doc, .xls, .ppt.
Preferisco formati liberi.
Please try to avoid to send me .dwg, .doc, .xls, .ppt files.
I prefer free formats.
http://it.wikipedia.org/wiki/Formato_aperto
http://en.wikipedia.org/wiki/Open_format

Ivan Marchesini
Perugia (Italy)
Socio fondatore GFOSS “Geospatial Free and Open Source Software” http://www.gfoss.it
e-mail: ivan.marchesini@irpi.cnr.it
ivan.marchesini@gmail.com
fax (mailfax): +39 1782092534
jabber: geoivan73@jabber.org
skype: geoivan73

Il 31 maggio 2011 11:27, ivan marchesini <ivan.marchesini@gmail.com> ha scritto:

in grass hai molte soluzioni

la più banale è v.clean con opzione rimuovi aree piccole (perchè
immagino che saranno piccole...)
gli dai un valore di soglia ed il gioco è fatto

puoi anche ottenere la mappa degli errori...

ciao

--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org

Sempre con v.clean?

2011/5/31 Luca Delucchi <lucadeluge@gmail.com>

Il 31 maggio 2011 11:27, ivan marchesini <ivan.marchesini@gmail.com> ha scritto:

in grass hai molte soluzioni

la più banale è v.clean con opzione rimuovi aree piccole (perchè
immagino che saranno piccole…)
gli dai un valore di soglia ed il gioco è fatto

puoi anche ottenere la mappa degli errori…

ciao


ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org

Il 31 maggio 2011 11:31, Luca Mandolesi <mandoluca@gmail.com> ha scritto:

Sempre con v.clean?

si... basta leggere il manuale :wink: [0]
grass sarà difficile o poco user friendly, ma una documentazione così
ben fatta io non l'ho mai trovata....

[0] http://grass.osgeo.org/grass64/manuals/html64_user/v.clean.html

PS cercate di rispettare la netiquette e rispondere a modino

--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org

Un po' di pubblicità comparativa.

Sto provando in PostGIS, ma su un layer con 20000 poligoni una

ST_Union(ST_ExteriorRing(geom))

sta girando da mezz'ora.

Al termine, sempre che a terminare sia la query e non il processo -
dovrei poi usare ST_Dump(geom) e ST_DumpRings(geom) where path > 0 per
estrarre i poligoni incriminati.

Ma forse in PG non è questo l'approccio giusto.

Nel frattempo GRASS ha eseguito un v.clean degli stessi poligoni in un
paio di minuti (con un processore e mezzo impegnati da Postgres), anche
se non credo di aver usato proprio tutti i tool a proposito.

Se GRASS non fosse così difficile da capire.

Ciao

Sig

Il giorno mar, 31/05/2011 alle 11.27 +0200, ivan marchesini ha scritto:

in grass hai molte soluzioni

la più banale è v.clean con opzione rimuovi aree piccole (perchè
immagino che saranno piccole...)
gli dai un valore di soglia ed il gioco è fatto

se vuoi avere controllo su quali sono le aree in questione invece,
usi v.centroids per aggiungere centroidi alle aree che non ne hanno
(partendo da un valore di cat molto alto cioè non già presente nel layer
importato) e poi selezioni solo le aree con cat molto alta appunto
così vedi quali sono gli errori e dove si trovano... (li estrai con
v.extract)

nota adesso con precisione la dimensione massima (areale) di questi
errori, usi v.clean per rimuovere tutte le aree inferiori a quella
dimensione

la topologia è garantita e l'area viene assegnata al poligono contermine
con cui la tua area condivide il boundary più lungo..

ciao

Il giorno lun, 30/05/2011 alle 22.03 +0200, Luca Mandolesi ha scritto:
> Salve a tutti,
> in questi giorni sto correggendo un layer poligonale in cui la regola
> topologica di base dovrebbe essere evitare le intersezioni tra i
> poligoni e "non devono esserci spazi tra i poligoni".
>
>
> Io uso QGis e fino a dare come regola topologia l'evita intersezioni
> ci arrivo, ma non so come dare oppure correggere a posteriori gli
> spazi tra poligoni che dovrebbero collimare.
>
>
> Siamo così dovuti ricorrere ad ArcZis che ha uno strumento di
> validazione p
>
>
> Ho dato un occhio veloce in grass, ma non mi pareva ci fosse una
> soluzione, ma forse mi sbaglio.
>
>
> Suggerimenti?
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> Gfoss@lists.gfoss.it
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> Non inviate messaggi commerciali.
> I messaggi di questa lista non rispecchiano necessariamente
> le posizioni dell'Associazione GFOSS.it.
> 502 iscritti all'11.2.2011

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
502 iscritti all'11.2.2011

_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

Ringrazio tutti per i consigli. Proverò nel week end a fare un po’ di prove anche io e vedere se non altro come potrebbe essere fatto uno strumento utile.

Ciao e grazie

luca

Il 31/05/2011 10:45, Luca Mandolesi ha scritto:

Ecco l'esempio a cui vorrei arrivare!!!

http://www.youtube.com/watch?v=LZ-fJMGF7UM

allegalo al ticket per favore.
grazie.

--
Paolo Cavallini: http://www.faunalia.it/pc