Ciao, se leggi questo messaggio significa che non hai fatto il login o che non sei ancora registrato. Se non sei iscritto CLICCA QUI per registrarti e godere di tutti i vantaggi del nostro forum.
Ciao, se leggi questo messaggio significa che non hai fatto il login o che non sei ancora registrato. Se non sei iscritto CLICCA QUI per registrarti e godere di tutti i vantaggi del nostro forum.

Benvenuti nella nostra community - Visita anche il blog

Benvenuto ospite! Login Registrati Login with Facebook



Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Metodo migliore per creare un grafo di archi delimitati da nodi
#1
Salve a tutti! Vorrei sapere qual'è il metodo migliore per costruire un grafo di archi delimitati da nodi partendo da un vettore di polilinee. Ho provato ad usare v.clean e v.net.nodes di GRASS per semplificare le linee (se ci sono metodi migliori accetto consigli).
   
Ora vorrei ottenere per il layer una tabella di attributi in cui ogni riga (corrispondente a ogni arco) abbia nodo di origine e nodo di fine.
Per esempio, per l'arco che va dal nodo 5 al nodo 6, vorrei ottenere una riga così: "a56, 40.0000, 45.0000, 40.1234, 44.9999" corrispondente a "id_arco, X_nodo_origine, Y_nodo_origine, X_nodo_fine, Y_nodo_fine".
Cita messaggio }
Thanks given by:
#2
Con "Estrai vertici" (sotto Vettore => Strumenti di geometria) ti crei i nodi a partire dalle polilinee, mentre assegni ai singoli tronchi le coordinate degli estremi col Calcolatore Campi:

round($x_at( 0) ,2)|| ',' ||  round($y_at( 0),2)|| ',' ||round($x_at( 1) ,2)|| ',' ||  round($y_at( 1),2)

Quanto al codice "a56", si può prelevare con una cosiddetta 'spatial join' (Vettore => Unisci attributi per posizione => min,max)
Cita messaggio }
Thanks given by: Jackest
#3
(29-12-2016, 11:32 AM)Novarese Ha scritto: Con "Estrai vertici" (sotto Vettore => Strumenti di geometria) ti crei i nodi a partire dalle polilinee, mentre assegni ai singoli tronchi le coordinate degli estremi col Calcolatore Campi:

round($x_at( 0) ,2)|| ',' ||  round($y_at( 0),2)|| ',' ||round($x_at( 1) ,2)|| ',' ||  round($y_at( 1),2)

Quanto al codice "a56", si può prelevare con una cosiddetta 'spatial join' (Vettore => Unisci attributi per posizione => min,max)

Grazie e buon anno! AddEmoticons04251

Alla fine ho usato semplicemente $x_at(0), $y_at(0), $x_at(1), $y_at(1) per avere una stringa più completa (è corretto?).
Adesso però se si potesse fare mi occorrebbe avere l'id di ogni nodo sempre nel layer degli archi, in modo da avere "(id_arco,x_origine,y_origine,x_fine,y_fine,id_origine,id_fine)". Sto provando a usare il calcolatore campi con le funzioni reference ma non ottengo il risultato
Cita messaggio }
Thanks given by:
#4
(02-01-2017, 11:18 AM)Jackest Ha scritto: Adesso però se si potesse fare mi occorrebbe avere l'id di ogni nodo sempre nel layer degli archi, in modo da avere "(id_arco,x_origine,y_origine,x_fine,y_fine,id_origine,id_fine)". Sto provando a usare il calcolatore campi con le funzioni reference ma non ottengo il risultato

Ma hai provato la spatial join come ti era stato indicato..?
Cita messaggio }
Thanks given by:
#5
(02-01-2017, 11:32 AM)Novarese Ha scritto:
(02-01-2017, 11:18 AM)Jackest Ha scritto: Adesso però se si potesse fare mi occorrebbe avere l'id di ogni nodo sempre nel layer degli archi, in modo da avere "(id_arco,x_origine,y_origine,x_fine,y_fine,id_origine,id_fine)". Sto provando a usare il calcolatore campi con le funzioni reference ma non ottengo il risultato

Ma hai provato la spatial join come ti era stato indicato..?

Sì, ma stavo sbagliando predicato geometrico mi sa. Ora funziona, chiedo scusa.

Ne approfitto per chiedere se è possibile splittare le linee (quindi generare gli archi) secondo un layer di nodi già creato. Perchè con v.clean(snap) del layer di linee ho ottenuto un perfetto numero di nodi, però gli archi sono troppo pochi, e sarebbe meglio che io riuscissi a spezzare il vettore orginale delle linee nei nodi già creati.

   
Le linee nere corrispondono al layer delle linee originale, quelle azzurre al vettore "pulito" con v.clean da cui ho estratto i nodi.
Ad esempio mancherebbe l'arco di collegamento fra i nodi 273 e 266.
Cita messaggio }
Thanks given by:
#6
Buongiorno! Ringraziando per i consigli ricevuti finora, ho da fare un'altra domanda.


Ho usato v.net.iso di GRASS, facendo uno split nei nodi che mi interessavano, però ora avrei bisogno di collegare alla rete certi segmenti che già dal principio erano isolati.
 
   


Esiste un tool che possa fare in automatico quelle connessioni che io ho fatto (evidentemente a mano Big Grin ) in rosso?
Cita messaggio }
Thanks given by:
#7
Prova con Vettore => Dissolvi, magari dopo aver fatto una copia di sicurezza dei dati....
Cita messaggio }
Thanks given by:



Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  come creare una nuova location grass con qgis sonic89 8 1.702 02-10-2015, 10:59 AM
Ultimo messaggio: sonic89

Vai al forum:


Utenti che stanno guardando questa discussione:
1 Ospite(i)