[GRASS-user] to shorten lines

ivan marchesini marchesini at unipg.it
Fri Jul 13 10:05:01 EDT 2007


Many thanks Markus...
I did this way (for a line only, which has category=163 ... now I will
create a cycle for each line of the map):

with this I obtain the length of the line subtracted of 20 meters:
echo "`v.report map=Reticol layer=1 option=area units=meters | grep 163
| cut -f3 -d'|'`-20" | bc -l

with this I create a segment which is 40 meters shorter than the
previous one (20 meters from each node):
echo "L 1 163 20 3434.21" | v.segment input=Reticolo_050407_LAST
output=prova

but no way to do v.overlay with two lines, so I create a buffer of 1
centimeter around the line:
v.buffer input=prova output=prova_buf type=line layer=1 buffer=0.01
scale=1.0 tolerance=0.01

then I will put all the buffers into a single map (v.patch)
and at the end:
v.overlay to obtain the lines network cutted of 20 meters at each
node...

Grazie...
Ivan




Il giorno dom, 08/07/2007 alle 12.27 -0700, Markus Neteler ha scritto:
> 
> ivan marchesini wrote:
> > 
> > Dear Users...
> > I have a vector lines map...
> > I would like to shorten each line of the map.... the amount of the
> > shortening could be fixed (10 meters.. may be)
> > I would like to do this in each part of the line...  i.e.:
> > 
> > old lines:
> > ____________
> > 
> > new lines:
> >  __________
> > 
> > 
> > any idea about a quick way to solve this problem...???
> > 
> > thanks...
> > 
> > Ivan
> > 
> 
> Hi Ivan,
> 
> pseudo-code (for a script or so):
> 
> - fetch all vector lengths with v.report
> - calculate length - desired shortening (nice SQL excercise)
> - use v.segment with
>     L <segment id> <line cat> <start offset> <end offset>
>   to create the segments at then end to be removed
> - use v.overlay with NOT
> 
> cheers
> Markus
-- 
Ti prego di cercare di non inviarmi files .doc, .xls, .ppt, .dwg.
Preferisco formati liberi.
Please try to avoid to send me  .doc, .xls, .ppt, .dwg files.
I prefer free formats.
http://it.wikipedia.org/wiki/Formato_aperto
http://en.wikipedia.org/wiki/Open_format

Ivan Marchesini
Department of Civil and Environmental Engineering
University of Perugia
Via G. Duranti 93/a 
06125
Perugia (Italy)
e-mail: marchesini at unipg.it
        ivan.marchesini at gmail.com
tel: +39(0)755853760
fax (university): +39(0)755853756
fax (home): +39(0)5782830887
jabber: geoivan73 at jabber.org




More information about the grass-user mailing list