I costi possono rappresentare la lunghezza delle linee oppure attributi salvati in una tabella di database. I valori di questi attributi sono considerati come costi dell'intero segmento, e non come costi per attraversare un'unità di lunghezza (p.es. metri) del segmento. Per esempio, se il limite di velocità è 100 Km/h, il costo per attraversare un segmento lungo 10 Km dev'essere calcolato come lungh/vel = 10 Km/(100 Km/h) = 0.1 h. Sono possibili assegnazioni di costo sia per gli archi che per i nodi, e anche costi diversi per le due direzioni di una linea vettoriale. Per le aree i costi vengono calcolati lungo i bordi.
Il vettoriale in ingresso dev'essere preparato con v.net operation=connect per collegare i punti che rappresentano i nodi dei centri alla rete.
I nodi dovono stare sulle isolinee.
Isodistanze:
Isocrone:
# Spearfish # nodo di partenza: echo "591280.5|4926396.0|1" | v.in.ascii in=- out=startnode g.copy vect=roads,myroads #connettere il punto alla rete v.net myroads points=startnode out=myroads_net op=connect thresh=200 # definire isodistanze sulla rete v.net.iso input=myroads_net output=myroads_net_iso ccats=1-100000 costs=1000,2000,5000
v.category myroads_net_iso option=report # ... riporta 4 categorie: #cat | distanza dal punto in metri #1 0 - < 1000 #2 1000 - < 2000 #3 2000 - < 5000 #4 >= 5000
g.region n=4928200 s=4922300 w=589200 e=596500 d.mon x0 d.vect myroads_net_iso col=blue cats=1 d.vect myroads_net_iso col=green cats=2 d.vect myroads_net_iso col=orange cats=3 d.vect myroads_net_iso col=magenta cats=4 d.vect myroads_net col=red icon=basic/triangle fcol=green size=12 layer=2
# Spearfish # nodo di partenza: echo "591280.5|4926396.0|1" | v.in.ascii in=- out=startnode g.copy vect=roads,myroads # connettere il punto alla rete v.net myroads points=startnode out=myroads_net op=connect thresh=200
# definire i costi # creare una categoria unica per ogni strada nel layer 3 v.category in=myroads_net out=myroads_net_time opt=add cat=1 layer=3 type=line # aggiungere una nuova tabella per il layer 3 v.db.addtable myroads_net_time layer=3 col="cat integer,label varchar(43),length double precision,speed double precision,cost double precision,bcost double precision" # copiare il tipo di strada sul layer 3 v.to.db myroads_net_time layer=3 qlayer=1 opt=query qcolumn=label columns=label # caricare la lunghezza della strada in miglia v.to.db myroads_net_time layer=3 type=line option=length col=length unit=miles # impostare i limiti di velocita in miglia/ora v.db.update myroads_net_time layer=3 col=speed val="5.0" v.db.update myroads_net_time layer=3 col=speed val="75.0" where="label='interstate'" v.db.update myroads_net_time layer=3 col=speed val="75.0" where="label='primary highway, hard surface'" v.db.update myroads_net_time layer=3 col=speed val="50.0" where="label='secondary highway, hard surface'" v.db.update myroads_net_time layer=3 col=speed val="25.0" where="label='light-duty road, improved surface'" v.db.update myroads_net_time layer=3 col=speed val="5.0" where="label='unimproved road'" # definire i costi di viaggio come tempo di percorrenza in minuti: # impostare i costi in avanti v.db.update myroads_net_time layer=3 col=cost val="length / speed * 60" # impostare i costi all'indietro v.db.update myroads_net_time layer=3 col=bcost val="length / speed * 60" # definire isoaree sulla rete utilizzando il tempo di percorrenza: v.net.iso input=myroads_net_time output=myroads_net_iso_time alayer=3 nlayer=2 afcol=cost abcol=bcost ccats=1-100000 costs=1,2,5
# add table with labels and coloring v.db.addtable myroads_net_iso_time columns="cat integer,trav_time varchar(20),GRASSRGB varchar(11)" # etichette v.db.update map=myroads_net_iso_time layer=1 column=trav_time value="0 - 1" where="cat = 1" v.db.update map=myroads_net_iso_time layer=1 column=trav_time value="1 - 2" where="cat = 2" v.db.update map=myroads_net_iso_time layer=1 column=trav_time value="2 - 5" where="cat = 3" v.db.update map=myroads_net_iso_time layer=1 column=trav_time value="> 5" where="cat = 4" # colori # cats=1: blue v.db.update map=myroads_net_iso_time layer=1 column=GRASSRGB value="000:000:255" where="cat = 1" # cats=2: green v.db.update map=myroads_net_iso_time layer=1 column=GRASSRGB value="000:255:000" where="cat = 2" # cats=3: orange v.db.update map=myroads_net_iso_time layer=1 column=GRASSRGB value="255:128:000" where="cat = 3" # cats=4: magenta v.db.update map=myroads_net_iso_time layer=1 column=GRASSRGB value="255:000:255" where="cat = 4" # vedere i risultati g.region n=4928200 s=4922300 w=589200 e=596500 d.mon x0 d.vect myroads_net_iso_time layer=1 -a rgb_col=GRASSRGB d.vect myroads_net col=red icon=basic/triangle fcol=green size=12 layer=2
Last changed: $Date: 2011-11-08 10:42:51 +0100(mar, 08 nov 2011) $
Main index - vector index - Full index
© 2003-2011 GRASS Development Team