Re: [GRASS-Italia] analisi di rete
Quello che intendevo è che se non posso ignorare o correggere l'errore non posso portare avanti l'analisi. Il cambio di versione è obbligatorio quindi. Il giorno 18 dicembre 2016 21:32, Markus Neteler ha scritto: > 2016-12-18 21:28 GMT+01:00 Daniele Bonaposta >: > > Quindi non posso utilizzare il modulo? > > Certo che sì. Cmq, consiglio di aggiornare la version. > Attualmente è disponibile GRASS GIS 7.2.0RC2 che molto stabile. Il > finale 7.2.0 sarà 99% identico. > > Markus > > > -- > Markus Neteler > http://www.mundialis.de - free data with free software > http://grass.osgeo.org > http://courses.neteler.org/blog > -- _ Daniele Bonaposta, Cartografia - G.I.S. via Don Minzoni 13a 40121 - Bologna mobile: +39.338.3377044 e-mail: daniele.bonapo...@gmail.com *Linked*in: http://www.linkedin.com/pub/daniele-bonaposta/26/487/872 _ ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete
2016-12-18 21:28 GMT+01:00 Daniele Bonaposta : > Quindi non posso utilizzare il modulo? Certo che sì. Cmq, consiglio di aggiornare la version. Attualmente è disponibile GRASS GIS 7.2.0RC2 che molto stabile. Il finale 7.2.0 sarà 99% identico. Markus -- Markus Neteler http://www.mundialis.de - free data with free software http://grass.osgeo.org http://courses.neteler.org/blog ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete
Quindi non posso utilizzare il modulo? Il giorno 17 dicembre 2016 17:06, Markus Neteler ha scritto: > On Dec 17, 2016 5:05 PM, "Daniele Bonaposta" > wrote: > > > > > > Il 16/dic/2016 18:20, "Markus Neteler" ha scritto: > >> > >> Ciao Daniele, > >> > >> On Dec 16, 2016 4:52 PM, "Daniele Bonaposta" < > daniele.bonapo...@gmail.com> wrote: > >> > > >> > Ciao a tutti, > >> > scrivo per un errore che ho con il modulo v.net.iso: > >> > WARNING: Errore dglShortestPath: Head Node Not Found > >> > Ho cercato di capire il problema e trovare una soluzione, > >> > ma non ne vengo a capo. > >> > > >> > E' un problema topologico? > >> > >> Non necessariamente... Di quale versione di GRASS si tratta su quale > sistema operativo? > > > > > > Grass 7.0.4 > > Ubuntu 14.04 > > E' stato risolto dopo > > >> > >> Saluti, > >> Markus > > ___ > GRASS-Italia mailing list > GRASS-Italia@listserv.unipr.it > http://listserv.unipr.it/mailman/listinfo/grass-italia > -- _ Daniele Bonaposta, Cartografia - G.I.S. via Don Minzoni 13a 40121 - Bologna mobile: +39.338.3377044 e-mail: daniele.bonapo...@gmail.com *Linked*in: http://www.linkedin.com/pub/daniele-bonaposta/26/487/872 _ ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete
On Dec 17, 2016 5:05 PM, "Daniele Bonaposta" wrote: > > > Il 16/dic/2016 18:20, "Markus Neteler" ha scritto: >> >> Ciao Daniele, >> >> On Dec 16, 2016 4:52 PM, "Daniele Bonaposta" wrote: >> > >> > Ciao a tutti, >> > scrivo per un errore che ho con il modulo v.net.iso: >> > WARNING: Errore dglShortestPath: Head Node Not Found >> > Ho cercato di capire il problema e trovare una soluzione, >> > ma non ne vengo a capo. >> > >> > E' un problema topologico? >> >> Non necessariamente... Di quale versione di GRASS si tratta su quale sistema operativo? > > > Grass 7.0.4 > Ubuntu 14.04 E' stato risolto dopo >> >> Saluti, >> Markus ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete
Il 16/dic/2016 18:20, "Markus Neteler" ha scritto: > Ciao Daniele, > > On Dec 16, 2016 4:52 PM, "Daniele Bonaposta" > wrote: > > > > Ciao a tutti, > > scrivo per un errore che ho con il modulo v.net.iso: > > WARNING: Errore dglShortestPath: Head Node Not Found > > Ho cercato di capire il problema e trovare una soluzione, > > ma non ne vengo a capo. > > > > E' un problema topologico? > > Non necessariamente... Di quale versione di GRASS si tratta su quale > sistema operativo? > Grass 7.0.4 Ubuntu 14.04 > Saluti, > Markus > ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete
Ciao Daniele, On Dec 16, 2016 4:52 PM, "Daniele Bonaposta" wrote: > > Ciao a tutti, > scrivo per un errore che ho con il modulo v.net.iso: > WARNING: Errore dglShortestPath: Head Node Not Found > Ho cercato di capire il problema e trovare una soluzione, > ma non ne vengo a capo. > > E' un problema topologico? Non necessariamente... Di quale versione di GRASS si tratta su quale sistema operativo? Saluti, Markus ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete; v.net.path v.net.salesman etc
Ciao Paolo, grazie assai. > Ciao Gabriele, > ho fatto alcune prove: è la topologia della rete stradale a dare > problemi, infatti anche nei casi in cui funziona spesso i percorsi sono > lunghissimi (vedi ad es. il percorso 32-37). > GRASS usa uno schema spaziale di tipo G1 (come ArcInfo): non si possono > avere cavalcavia, se due linee si incontrano creano un nodo, le reti > sono "piatte". Io non lo avrei capito. E' un passo avanti e questo è un altro problema :) > Infatti se spezzo le linee agli incroci > > v.clean input=network@network output=network_clean tool=break > > i nodi sono raggiungibili ed il comando > > echo "2 44 49"|v.net.path --overwrite input=network_clean output=percorso > > crea un percorso tra i due punti. Ora provo subito a utilizzare v.clean e a calcolare un percorso con 3-4 punti. > Nota che l'uso che ho fatto di v.clean potrebbe non essere la soluzione > giusta (anche se serve a capire cosa succede) perché collega ad es. la > strada su un cavalcavia con quella passante sotto, permette di prendere > una corsia contromano su uno svincolo ecc. > Questo succede anche nel tutorial, in > > http://www.ing.unitn.it/~grass/docs/tutorial_64/htdocs/esercitazione/network_analysis/node4.html > > i tratti di autostrada sono percorsi contromano (ma non se ne è accorto > nessuno ;) ). E nemmeno io :D Paolo, siccome questa analisi la devo applicare anche sulle linee di autobus (individuate attraverso le fermate) forse posso risolvere utilizzando bene c_avanti e c_indietro (come da tutorial) e inserendo delle fermate fittizie per "costringere" grass a passare in determinati punti.. Che ne pensi? > Il problema dei contromano può essere risolto usando dei costi > backward=-1 (chiudendo cioè le strade in senso contrario a quello di > marcia), ammesso che il verso di digitalizzazione delle strade sia > quello giusto. > Non saprei come risolvere i problemi sui cavalcavia. Ehm. > Puoi ovviamente cambiare mappa della rete stradale. Ti faccio sapere come va. Grazie > ciao Paolo Gabriele > ps mi hai mandato il mapset, non la location, ma la ho ricreata. Si lo sapevo ma ho dimenticato di dirtelo..sorry. -- View this message in context: http://grass-italia.587033.n2.nabble.com/analisi-di-rete-v-net-path-v-net-salesman-etc-tp6070745p6075062.html Sent from the GRASS-Italia mailing list archive at Nabble.com. ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete; v.net.path v.net.salesman etc
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Ciao Gabriele, ho fatto alcune prove: è la topologia della rete stradale a dare problemi, infatti anche nei casi in cui funziona spesso i percorsi sono lunghissimi (vedi ad es. il percorso 32-37). GRASS usa uno schema spaziale di tipo G1 (come ArcInfo): non si possono avere cavalcavia, se due linee si incontrano creano un nodo, le reti sono "piatte". Infatti se spezzo le linee agli incroci v.clean input=network@network output=network_clean tool=break i nodi sono raggiungibili ed il comando echo "2 44 49"|v.net.path --overwrite input=network_clean output=percorso crea un percorso tra i due punti. Nota che l'uso che ho fatto di v.clean potrebbe non essere la soluzione giusta (anche se serve a capire cosa succede) perché collega ad es. la strada su un cavalcavia con quella passante sotto, permette di prendere una corsia contromano su uno svincolo ecc. Questo succede anche nel tutorial, in http://www.ing.unitn.it/~grass/docs/tutorial_64/htdocs/esercitazione/network_analysis/node4.html i tratti di autostrada sono percorsi contromano (ma non se ne è accorto nessuno ;) ). Il problema dei contromano può essere risolto usando dei costi backward=-1 (chiudendo cioè le strade in senso contrario a quello di marcia), ammesso che il verso di digitalizzazione delle strade sia quello giusto. Non saprei come risolvere i problemi sui cavalcavia. Puoi ovviamente cambiare mappa della rete stradale. ciaoPaolo ps mi hai mandato il mapset, non la location, ma la ho ricreata. On 02/28/2011 06:40 PM, Gabriele N. wrote: > E per alcuni casi riesco a anche a fare collegamenti tra tre punti. Ho > provato a cambiare tolleranze, a ricostruire il grafo ma niente. Ti ho > inviato via mail il mapset. > > Grazie mille > > Gabriele -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk1sEFEACgkQsbjfGi+aQw7NRwCgvhUzNAImdzPP8l3P/3ps10WV /YMAoL8jCrDrfSTIFU5B4dNN+9L2pwK3 =ohk9 -END PGP SIGNATURE- ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete; v.net.path v.net.salesman etc
Ottimo Paolo. L'errore è rimasto però il tuo script è molto utile. Ricapitolando: # Creo il grafo della rete (vettoriale network)con le linee sul layer 1 e i nodi sul layer 2. I nodi(punti) e poi li "tratto" con lo script tuo per ottenere un file di testo (lcats.txt) formattato bene e da dare in input a v.net.path. Quindi con von.category input=network option=print layer=2 > file_categorie.txt creo la lista dei cat # poi lancio lo script tuo (l'ho chiamato "v.net.path_categorie_per_percorso_piu_punti_sequenziali.sh" :) ) che va bene nel caso di cat sequenziali)--> v.net.path_categorie_per_percorso_piu_punti_sequenziali.sh e ottengo il file lcats.txt formattato bene per v.net.path, cioè: 2 1 2 2 2 3 2 3 4 2 4 5 2 5 6 .. # questo file posso darlo in input a v.net.path e avrò il percorso minimo passante per quei punti (se non avessi errore sul routing). Nel mio caso comunque lo ritocco a manina poichè non mi interesssano tutte le sequenze al momento. v.net.path --overwrite input=network output=percorso file=/home/gab/lcats.txt E per alcuni casi riesco a anche a fare collegamenti tra tre punti. Ho provato a cambiare tolleranze, a ricostruire il grafo ma niente. Ti ho inviato via mail il mapset. Grazie mille Gabriele -- View this message in context: http://grass-italia.587033.n2.nabble.com/analisi-di-rete-v-net-path-v-net-salesman-etc-tp6070745p6074206.html Sent from the GRASS-Italia mailing list archive at Nabble.com. ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete; v.net.path v.net.salesman etc
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Ciao Gabriele, On 02/28/2011 10:59 AM, Gabriele N. wrote: > La mia idea è quella di avere un ID sequenziale da passare a GRASS per far > capire gli spostamenti di una linea da punto a punto; questo ID univoco poi > lo posso usare come cat e successivamente dovrei dare in input a v.net.path > qualcosa come > 2 1 2 > 2 2 3 > 2 3 4 > etc. > Che dici? puoi creare un file simile con - - #!/bin/bash file_categorie=file_categorie.txt file_layer_categorie=lcats.txt layer=2 if [ -e $file_layer_categorie ] then rm $file_layer_categorie fi while read cat do let "cat_1=$cat+1" echo $layer $cat $cat_1>> $file_layer_categorie done < $file_categorie - che scrive il layer, la categoria e la categoria+1. Ovviamente se le categorie sono sequenziali puoi usare un ciclo for senza creare prima il file con v.category - #!/bin/bash file_layer_categorie=lcats.txt layer=2 start=1 stop=10 if [ -e $file_layer_categorie ] then rm $file_layer_categorie fi for (( i=start; i <= stop; i++)) do let "j=$i+1" echo $layer $i $j>> $file_layer_categorie done - ma il primo approccio ti tutela rispetto al fatto di sbagliare gli estremi. Se non è troppo pesante mandami il mapset, questa sera do un'occhiata. ciaoPaolo -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk1rjb0ACgkQsbjfGi+aQw6qewCguc7xSygbDUMXqRnSiLT9+MiR FGwAoLf9oGInpabQzryUebS3N4oLT3Zt =Nj24 -END PGP SIGNATURE- ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete; v.net.path v.net.salesman etc
Ciao Paolo Paolo Zatelli wrote: > > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > Ciao Gabriele, > > On 02/27/2011 11:00 PM, Gabriele N. wrote: >> Avevo già seguito abbastanza attentamente il tutorial e avevo provato >> anche >> l'opzione da te consigliata; tuttavia preferisco la modalità di >> inserimento >> attraverso un file di testo anche perchè i punti per ogni percorso >> dovrebbero essere più di dieci. A tal proposito ho provato con >> v.out.ascii >> ma mi sembra che non esista la possibilità di ottenere, a partire da un >> vector puntuale, un file di testo formattato bene per darlo in input a >> v.net.path? >> > > puoi usare v.category input=mappa option=print layer=1 > > file_categorie.txt > > per avere la lista delle categorie (ovviamente mettendo il nome della > mappa ed il layer giusto) > Puoi aggiungere il layer con uno script banale > > - --- > #!/bin/bash > > file_categorie=file_categorie.txt > file_layer_categorie=lcats.txt > > rm $file_layer_categorie > > layer=1 > > while read cat > do > echo $layer $cat >> $file_layer_categorie > done < $file_categorie > - --- > Buono. Con v.category input=network option=print layer=2 > file_categorie.txt e poi con il tuo script ho ottenuto in output il file lcats.txt ottenendo qualcosa del genere: 1 1 1 2 1 3 che credo possa andare bene per generare tutti i percorsi possibili a partire dal punto base 1. Paolo Zatelli wrote: > > ma GRASS non può sapere quale percorso vuoi fare, se costruisci i > percorsi con una regola sulle categorie puoi modificare lo script sopra > per scrivere le categorie. > La mia idea è quella di avere un ID sequenziale da passare a GRASS per far capire gli spostamenti di una linea da punto a punto; questo ID univoco poi lo posso usare come cat e successivamente dovrei dare in input a v.net.path qualcosa come 2 1 2 2 2 3 2 3 4 etc. Che dici? Paolo Zatelli wrote: > >> E tornando al problema principale, ecco un esempio: > > senza fare prove con la mappa non sono in grado di aiutarti, se la > geometria e la topologia sono giuste controllerei la tabella: queste > categorie sono presenti nel campo chiave delal tabella (i punti sono > cioè collegati ad un record)? > Credo sia tutto ok ma se ti va/se puoi dare un'occhiata posso inviarti il mapset col network sulla mail pvt. Grazie mille Gabriele -- View this message in context: http://grass-italia.587033.n2.nabble.com/analisi-di-rete-v-net-path-v-net-salesman-etc-tp6070745p6072596.html Sent from the GRASS-Italia mailing list archive at Nabble.com. ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete; v.net.path v.net.salesman etc
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Ciao Gabriele, On 02/27/2011 11:00 PM, Gabriele N. wrote: > Avevo già seguito abbastanza attentamente il tutorial e avevo provato anche > l'opzione da te consigliata; tuttavia preferisco la modalità di inserimento > attraverso un file di testo anche perchè i punti per ogni percorso > dovrebbero essere più di dieci. A tal proposito ho provato con v.out.ascii > ma mi sembra che non esista la possibilità di ottenere, a partire da un > vector puntuale, un file di testo formattato bene per darlo in input a > v.net.path? > puoi usare v.category input=mappa option=print layer=1 > file_categorie.txt per avere la lista delle categorie (ovviamente mettendo il nome della mappa ed il layer giusto) Puoi aggiungere il layer con uno script banale - --- #!/bin/bash file_categorie=file_categorie.txt file_layer_categorie=lcats.txt rm $file_layer_categorie layer=1 while read cat do echo $layer $cat >> $file_layer_categorie done < $file_categorie - --- ma GRASS non può sapere quale percorso vuoi fare, se costruisci i percorsi con una regola sulle categorie puoi modificare lo script sopra per scrivere le categorie. > E tornando al problema principale, ecco un esempio: > #col file di testo ad esempio così > 2 36 30 > 2 30 9 > ..Point with category [9] is not reachable from point > with category [30] 1 destination(s) unreachable (including points out of > threshold) > > e anche con echo "`printf '2 36 30\n2 30 9'`"|v.net.path --overwrite > --verbose input=network output=prova lo stesso :( senza fare prove con la mappa non sono in grado di aiutarti, se la geometria e la topologia sono giuste controllerei la tabella: queste categorie sono presenti nel campo chiave delal tabella (i punti sono cioè collegati ad un record)? ciaoPaolo -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk1rWusACgkQsbjfGi+aQw6pyQCgm8lQ3B1ob57CesTuZ8h5oAGR w8YAoM2+k420fdWQ3bfSnwXDqFjEj06J =V1fv -END PGP SIGNATURE- ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete; v.net.path v.net.salesman etc
Ciao Paolo e grazie. Paolo Zatelli wrote: > >> Ciao a tutti. >> Ho un problema che non riesco proprio a capire con l'analisi di rete (sto >> seguendo l'ottimo tutorial di Zatelli). > > fa piacere sapere che qualcuno apprezza il nostro lavoro ;) > Lo apprezzo eccome! Avevo già seguito abbastanza attentamente il tutorial e avevo provato anche l'opzione da te consigliata; tuttavia preferisco la modalità di inserimento attraverso un file di testo anche perchè i punti per ogni percorso dovrebbero essere più di dieci. A tal proposito ho provato con v.out.ascii ma mi sembra che non esista la possibilità di ottenere, a partire da un vector puntuale, un file di testo formattato bene per darlo in input a v.net.path? E tornando al problema principale, ecco un esempio: #col file di testo ad esempio così 2 36 30 2 30 9 ..Point with category [9] is not reachable from point with category [30] 1 destination(s) unreachable (including points out of threshold) e anche con echo "`printf '2 36 30\n2 30 9'`"|v.net.path --overwrite --verbose input=network output=prova lo stesso :( Paolo Zatelli wrote: > > Difficile invece dire perché i punti con categoria 44 o 49 non sono > connessi, hai applicato v.net con l'opzione "operation=connect" ? > si :/ , come da tutorial :) Ah, ubuntu 10.10 grass 6.4.0 Grazie Gabriele -- View this message in context: http://grass-italia.587033.n2.nabble.com/analisi-di-rete-v-net-path-v-net-salesman-etc-tp6070745p6071262.html Sent from the GRASS-Italia mailing list archive at Nabble.com. ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] analisi di rete; v.net.path v.net.salesman etc
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Ciao Gabriele, On 02/27/2011 07:04 PM, Gabriele N. wrote: > Ciao a tutti. > Ho un problema che non riesco proprio a capire con l'analisi di rete (sto > seguendo l'ottimo tutorial di Zatelli). fa piacere sapere che qualcuno apprezza il nostro lavoro ;) > Ho costruito la rete (network) ed ho sul layer 1 le linee e sul layer 2 i > punti che sono connessi alla rete. > Ora il mio obiettivo è quello di costruire il minimo percorso partendo da un > punto e giungere ad un altro, oppure partendo da un punto, toccare altri > punti e giungere ad uno finale. > > Ho iniziato con soli due punti; il problema è che solo per alcune categorie > (cat di network sul layer 2) v.net.path funziona. > Ho provato sia con > echo "1 30 36"|v.net.path --overwrite --verbose input=network > output=percorso > che generando un file di testo che contenga un id e le categorie del nodo di > partenza e di arrivo; ad es: > 1 30 36. > > Se provo ad inserire più di un punto (ad es 1 30 36 49) oppure a cambiare > categorie(ad es da 44 a 49): > Flattening the graph... > Graph was built > Point with category [44] is not reachable from point with category [49] > 1 destination(s) unreachable (including points out of threshold) > > Eppure mi sembrano connessi e non capisco proprio la differenza con il 30 e > il 36. > devi ripetere il numero del layer e le categorie di entrambi i punti per ogni tratto, vedi ad es. nel tutorial http://www.ing.unitn.it/~grass/docs/tutorial_64/htdocs/esercitazione/network_analysis/node2.html prima dell'ultima figura: echo "`printf '2 21 26\n2 26 27'`"|v.net.path --overwrite --verbose input=network output=path_21_26_27 va dal punto 21 al 27 passando per il 26 "\n" è un "a capo", printf serve ad interpretarlo. Se salvi i punti in un file devi inserire: 2 21 26 2 26 27 Difficile invece dire perché i punti con categoria 44 o 49 non sono connessi, hai applicato v.net con l'opzione "operation=connect" ? > Spero che qualcuno mi possa aiutare. > > Grazie > ciaoPaolo -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk1qmlYACgkQsbjfGi+aQw4XfACeJqfx4gp4cQGqXichDwFNHY9u LQkAoKSp3GvbFwukUSoRtDqq0NWw1j9S =apci -END PGP SIGNATURE- ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia