Ciao ospite, se leggi questo messaggio significa che non sei ancora registrato. Ti consiglio di registrarti velocemente con i tuoi account social (Facebook, Google, Linkedin), basta un semplice click. Oppure clicca qui per registrarti in pochi semplici passaggi. Così potrai godere di tutte le funzionalità del nostro Forum.
Ciao ospite, se leggi questo messaggio significa che non sei ancora registrato. Ti consiglio di registrarti velocemente con i tuoi account social (Facebook, Google, Linkedin), basta un semplice click. Oppure clicca qui per registrarti in pochi semplici passaggi. Così potrai godere di tutte le funzionalità del nostro Forum.

Guarda il Video tutorial su come si usa il forum sul nostro canale YouTube. x


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
#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
#3
(12-29-2016, 10: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! :04251:

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
#4
(01-02-2017, 10: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
#5
(01-02-2017, 10:32 AM)Novarese Ha scritto:
(01-02-2017, 10: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
#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
#7
Prova con Vettore => Dissolvi, magari dopo aver fatto una copia di sicurezza dei dati....
Cita messaggio


Discussioni simili
Thread Autore Replies Views Last Post
  Creare pianta città con nomi vie, simile a questa per stampa Andreapc 0 64 07-05-2025, 03:12 PM
Last Post: Andreapc
  Procedura migliore per aggiornare QGIS 3 FedeleContra 1 2,943 10-17-2020, 11:31 AM
Last Post: agraurora
  Geodatabase e QGIS, come creare un progetto silvia.lischi 0 2,361 09-25-2019, 10:01 AM
Last Post: silvia.lischi
Wink Creare layout stampe personalizzati qpt william75 0 1,812 05-05-2019, 04:49 PM
Last Post: william75
  Impossibile creare curve di livello enrico_geraci 1 2,274 03-26-2019, 10:14 PM
Last Post: Atlas
  Creare un "Buffer" Qgis 2.18.19 _Ash_ 2 2,558 05-22-2018, 04:29 PM
Last Post: _Ash_
  Grafo Stradale QGIS Nicola Ricci 1 2,849 01-23-2018, 04:51 PM
Last Post: Novarese
  come creare una nuova location grass con qgis sonic89 8 6,999 10-02-2015, 09:59 AM
Last Post: sonic89

Vai al forum:


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