GRASS logo

NOME

v.segment - Crea punti/segmenti da linee vettoriali e posizioni di input.

PAROLE CHIAVE

vettoriale, geometria

SINOSSI

v.segment
v.segment help
v.segment input=nome output=nome [llayer=integer] [file=nome] [--overwrite] [--verbose] [--quiet]

Flag:

--overwrite
Sovrascrive i file esistenti
--verbose
Output verboso del modulo
--quiet
Output quieto del modulo

Parametri:

input=nome
Nome della mappa vettoriale di input contenente le linee
output=nome
Nome della mappa vettoriale di output su cui scrivere i segmenti
llayer=integer
Tematismo di linee
Una singola mappa vettoriale può essere connessa a più tabelle di un database. Questo numero determina quale tabella viene utilizzata.
Predefinito: 1
file=nome
Nome del file contenente le regole per i segmenti. Se non è definito, le regole vengono lette dallo stdin.

DESCRIZIONE

v.segment genera segmenti o punti da linee di input e da posizioni lette da un file di testo o dallo 'stdin'.

Il formato è:

P <id del punto> <cat della linea> <scostamento (offset)> [<scostamento laterale>]
L <id del segmento> <cat della linea> <scostamento iniziale> <scostamento finale> [<scostamento laterale>]

ESEMPIO

L'utente potrebbe inviare allo stdin qualcosa di simile:
P 1 356 24.56
P 2 495 12.31
...
(inviandolo al comando tramite una pipe o ridirigendolo da un file).

NOTE

Un segmento viene creato solo per la prima linea che viene trovata in una determinata categoria.

I punti vengono generati lungo le linee alla distanza stabilita partendo dall'inizio della linea vettoriale.

Lo scostamento laterale è la distanza ortogonale dalla linea. Gli scostamenti laterali positivi sono sul lato destro della linea rispetto al senso della direzione, gli scostamenti negativi sono sulla sinistra (d.vect con display=shape,dir mostra la direzione delle linee vettoriali). Siccome la distanza del segmento è misurata lungo la linea originale, le linee che hanno uno scostamento laterale saranno più lunghe del segmento per gli angoli esterni delle linee curve, e più corti per gli angoli interni.

Tutti gli scostamenti sono misurati in unità di mappa (si veda "g.proj -p").

Per mettere un punto nel mezzo di una linea si può utilizzare il modulo v.to.db per trovare la lunghezza della linea. La metà di questa distanza può quindi essere usata come scostamento lungo la linea.

ESEMPI

Location Spearfish:
# estrae linee da una mappa ferroviaria
v.extract railroads out=myrr list=1

# congiunge segmenti per formare polilinee e riassegna i numeri di categoria
v.build.polylines myrr out=myrr_pol
v.category myrr_pol out=myrailroads option=add

# fa un'inquadratura sull'area di interesse
g.region n=4928200 s=4921100 w=605600 e=613200

# mostra linea, categoria, direzione (per trovare l'inizio)
d.vect myrailroads disp=shape,cat,dir lsize=12

# estrae un segmento di linea da 400 m a 5000 m dall'inizio della linea 1
echo "L 1 1 400 5000" | v.segment myrailroads out=myrailroads_segl
d.erase
d.vect myrailroads
d.vect myrailroads_segl col=green width=2

# posiziona un nodo a 5000 m dall'inizio della linea 1
echo "P 1 1 5000" | v.segment myrailroads out=myrailroads_segp
d.vect myrailroads_segp icon=basic/circle color=red fcolor=red size=5

# inserisce punti da un file di testo
cat mypoints.txt | v.segment myrailroads out=myrailroads_mypoints

# crea un segmento di linea lungo 1 km lungo i primi 8 km di rotaia,
# (con uno) scostamento di 500 m a sinistra dei binari.
v.segment myrailroads out=myrailroads_segl_side << EOF
L 1 1 1000 2000 -500
L 2 1 3000 4000 -500
L 3 1 5000 6000 -500
L 4 1 7000 8000 -500
EOF
d.erase
d.vect myrailroads disp=shape,dir
d.vect -c myrailroads_segl_side width=2

# Una serie di punti, disposti lungo i binari ogni 2 km
v.segment myrailroads out=myrailroads_pt2km << EOF
P 1 1 1000
P 2 1 3000
P 3 1 5000
P 4 1 7000
EOF
d.vect myrailroads_pt2km icon=basic/circle color=blue fcolor=blue size=5

# Una serie di punti, disposti lungo i binari ogni 2 km, scostamento di 500 m sulla destra
v.segment myrailroads out=myrailroads_pt2kmO500m << EOF
P 1 1 1000 500
P 2 1 3000 500
P 3 1 5000 500
P 4 1 7000 500
EOF
d.vect myrailroads_pt2kmO500m icon=basic/circle color=aqua fcolor=aqua size=5

BUG

Si è riscontrato un problema con la generazione di linee parallele nel caso di angoli interni.

VEDI ANCHE

LRS tutorial (Linear Referencing System),
d.vect, v.build.polylines, v.lrs.segment, v.parallel, v.split, v.to.db, v.to.points

AUTORE

Radim Blazek, ITC-Irst, Trento, Italy

Last changed: $Date: 2011-11-08 12:29:50 +0100(mar, 08 nov 2011) $


Main index - vector index - Full index

© 2003-2011 GRASS Development Team