Salve.
Sto cercando di fare una cosa apparentemente semplice, senza successo: trasformare un
contour da linee a poligoni. Uso questi comandi:
#set the region around contour
v.in.region output=region_line type=line
v.patch input=contour,region_line output=patched
v.clean input=patched@paolo type=line tool=snap thresh=1 output=patched_1
v.clean input=patched@paolo type=line tool=break output=patched_break
v.type input=patched_break@paolo output=patched_break_boundaries type=line,boundary
v.centroids input=patched_break_boundaries output=polygons
Il problema e' che le aree non diventano chiuse, quindi i centroidi non si applicano.
Qualcuno ha idea del perche'?
Grazie.
--
Paolo Cavallini - Faunalia
www.faunalia.eu
Full contact details at www.faunalia.eu/pc
Il 10 febbraio 2012 07:45, Paolo Cavallini <cavallini@faunalia.it> ha scritto:
Salve.
Sto cercando di fare una cosa apparentemente semplice, senza successo: trasformare un
contour da linee a poligoni. Uso questi comandi:
#set the region around contour
v.in.region output=region_line type=line
v.patch input=contour,region_line output=patched
v.clean input=patched@paolo type=line tool=snap thresh=1 output=patched_1
v.clean input=patched@paolo type=line tool=break output=patched_break
v.type input=patched_break@paolo output=patched_break_boundaries type=line,boundary
v.centroids input=patched_break_boundaries output=polygons
non so se sia corretto, ma con un problema più o meno analogo (dovevo
anche rimuovere i... ''piccoli angoli tra geometrie') avevo risolto
con un'unica istruzione v.clean
l'ordine dei tools è rilevante non solo perchè è accoppiato con i
valori di thresh (da scegliere ad hoc in funzione delle proprie
esigenze e dei dati), ma anche perchè cambia completamente il tipo di
lavoro che v.clean svolge sulle geometrie.
non so se sia corretto, ma con un problema più o meno analogo (dovevo
anche rimuovere i... ''piccoli angoli tra geometrie') avevo risolto
con un'unica istruzione v.clean
l'ordine dei tools è rilevante non solo perchè è accoppiato con i
valori di thresh (da scegliere ad hoc in funzione delle proprie
esigenze e dei dati), ma anche perchè cambia completamente il tipo di
lavoro che v.clean svolge sulle geometrie.
Grazie.
Ho dato comandi singoli perche' voglio trovare una procedura usabile anche con il
plugin grass-qgis, senza obbligare all'uso della temutissima CLI.
Nel mio caso, mi pare che rmdangle,rmline,rmsa,rmdupl non servano, quindi l'unica
differenza e' che tu applichi contemporaneamente break e snap (ma esegue prima l'uno
o l'altro?). In ogni caso, ho riprovato col tuo comando "unificato", e non ho trovato
differenze.
L'output e' sospetto:
Numero di nodi: 87
Numero di primitive:52
Numero di punti:0
Numero di linee:0
Numero di confini:52
Numero di centroidi:0
Numero di aree:17
Numero di isole:17
Numero di confini non corretti:35
Numero di aree senza centroide:17
Mah?
Saluti.
--
Paolo Cavallini - Faunalia
www.faunalia.eu
Full contact details at www.faunalia.eu/pc
2012/2/11 Paolo Cavallini <cavallini@faunalia.it>:
Il 11/02/2012 16:18, Markus Neteler ha scritto:
Non sto seguendo in dettaglio ma magari sulla lista in
inglese ricevi un suggerimento?
gia' provato, non ho risolto, acc!
Cmq, c'erano dei suggerimenti...
i suggerimenti erano, mi pare, gli stessi di Paolo Craveri, ovvero di aggiungere
tool=snap,break,rmdupl,rmsa
Provato nuovamente, il risultato non cambia.
Nessun altro puo' provare e dirmi dove sbaglio?
Giuro che se si trova la soluzione lo documento tutto perbenino sul wiki.
Grazie.
--
Paolo Cavallini - Faunalia
www.faunalia.eu
Full contact details at www.faunalia.eu/pc
Il 12/02/2012 11:26, Luca Sigfrido Percich ha scritto:
se usi l'opzione -error di v.clean hai la possibilità di salvare in un
layer gli errori e di andare a vedere dove stanno quei 35 confini non
corretti. Se hai intersecato le curve di livello con un boundary
rettangolare, dovresti avere dei dangling arcs da rimuovere con
rmdangle, a meno che le isolinee non fossero già tagliate. O potresti
avere degli "undershot" (punti in cui le isolinee non arrivano al
boundary).
Verificato, non ci sono ne' gli uni ne' gli altri (d'altronde, v.clean dovrebbe
proprio ripulire questo).
Qualcuno ci riesce a chiudere queste aree? Se volete posso mettere a disposizione una
location di esempio.
NB: non lo faccio per risolvere un problema mio, ma per trovare una soluzione ad un
problema, per tutti.
Saluti, e grazie.
--
Paolo Cavallini - Faunalia
www.faunalia.eu
Full contact details at www.faunalia.eu/pc
Il giorno dom, 12/02/2012 alle 16.35 +0100, Paolo Cavallini ha scritto:
Verificato, non ci sono ne' gli uni ne' gli altri (d'altronde, v.clean dovrebbe
proprio ripulire questo).
Non se non glielo chiedi tu (rmdangle). E anche se glielo chiedi, in
funzione della tolleranza che imposti, non è detto che elimini tutti gli
sporchi. E anche eliminati gli sporchi, non è detto che il risultato sia
topologicamente corretto.
Qualcuno ci riesce a chiudere queste aree? Se volete posso mettere a disposizione una
location di esempio.
Metti i dati a disposizione, provo a dargli un occhio appena ho tempo.
Salve.
Sto cercando di fare una cosa apparentemente semplice, senza successo:
trasformare un
contour da linee a poligoni. Uso questi comandi:
#set the region around contour
v.in.region output=region_line type=line
v.patch input=contour,region_line output=patched
v.clean input=patched@paolo type=line tool=snap thresh=1 output=patched_1
v.clean input=patched@paolo type=line tool=break output=patched_break
v.type input=patched_break@paolo output=patched_break_boundaries
type=line,boundary
v.centroids input=patched_break_boundaries output=polygons
Il problema e' che le aree non diventano chiuse, quindi i centroidi non si
applicano.
Ciao Paolo.
Ho provato dal plugin GRASS in QGIS a simulare la chiusura di una linea
perfettamente snappata e funziona.
Poi ho spezzato la linea ed ho spostato a mano due vertici; quindi con
v.clean l'ho snappata e poi lho chiusa chiusa come poligono e pure ha
funzionato.
cmq non ho capito un tuo passaggio
con *v.patch input=contour,region_line output=patched* hai messo insiem
contour (che è poligono?) con region_line (che è linea?).......se è così,
potrebbe esser qua il problema?
ho provato con i tuoi dati e i tuoi comandi, stesso problema. Vengono
chiusi solo alcuni dei poligoni ad isola, e rimane la segnalazione dei
35 confini non corretti. Penso che il problema stia li.
Ad occhio sembra che le linee tocchino il rettangolo esterno, ma la cosa
strana è che se diamo:
il vettoriale cln_error rimanga vuoto, mentre in teoria dovrebbe
riportare i punti di intersezione trovati, ovvero tutti i punti di
intersezione fra le parti terminali delle isolinee e il rettangolo
esterno.
Prova a ridurre di un metro il rettangolo in modo da essere sicuro che
intersechi le linee.
Sig
Il giorno dom, 12/02/2012 alle 17.24 +0100, Paolo Cavallini ha scritto:
Il 12/02/2012 17:12, Luca Sigfrido Percich ha scritto:
> Metti i dati a disposizione, provo a dargli un occhio appena ho tempo.
Magari mi è sfuggito ma mi pare che questo link non c'era
nel tuo email alla lista in inglese. Potresti pubblicare il link
anche lì?
L'ho preparato ora; lo mando.
Cmq:
The requested URL /~paolo/tast.tar.gz was not found on this server.
sorry, typo: http://int.faunalia.it/~paolo/test.tar.gz
(la domenica *sarebbe* fatta per il riposo ).
--
Paolo Cavallini - Faunalia
www.faunalia.eu
Full contact details at www.faunalia.eu/pc
Il 12/02/2012 19:05, Luca Sigfrido Percich ha scritto:
Prova a ridurre di un metro il rettangolo in modo da essere sicuro che
intersechi le linee.
Provero', ma in questo caso vuol dire che lo snap non funziona.
Ho guardato, e anche zoommando non pare ci sia un gap.
Grazie.
--
Paolo Cavallini - Faunalia
www.faunalia.eu
Full contact details at www.faunalia.eu/pc
ciao
penso che qualche gap ci sia;
con la location test se creo una spezzata chiusa completamente
contenuta in region_line i poligoni (63) vengono creati correttamente:
ciao
penso che qualche gap ci sia;
con la location test se creo una spezzata chiusa completamente
contenuta in region_line i poligoni (63) vengono creati correttamente:
Ottimo.
...
Se non passo attraverso lo shapefile v.clean non spezza gli archi
(break); non ho capito perchè...
Un caso per Markus Metz. Sicuramente non è necessario. "Basta" capire
il pezzo mancante - un caso per la lista in inglese con il link ai dati.
con *v.patch input=contour,region_line output=patched* hai messo insiem
contour (che è poligono?) con region_line (che è linea?).......se è così,
potrebbe esser qua il problema?
No: ho messo insieme contour (linea) e region (linea). Poi ho cercato di trasformare il tutto in poligoni, ed e' li' che fallisce.
Grazie.