Convert points to lines: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
m (prettify)
(+Converting CSV points file into lines map)
Line 1: Line 1:
'''Q:''' Is there a way to construct a vector line(s) map connecting selected points?
'''Q:''' Is there a way to construct a vector line(s) map connecting selected points?


'''A:''' You can use {{cmd|v.in.lines|version=65}} for that. The input can be generated with {{cmd|v.out.ascii}}.
'''A:''' There are two possibilities:
 
=== Converting points map into lines map ===
 
You can use {{cmd|v.in.lines|version=65}} for that. The input can be generated with {{cmd|v.out.ascii}}.


Spearfish example:
Spearfish example:
Line 15: Line 19:
</source>
</source>


=== Converting CSV points file into lines map ===
Suppose you have a CSV file "mypoints.csv" containing three point-pairs to be connected (start point coordinates, end point coordinates):
  east1,north1,east2,north2
  593493,4914730,589860,4922000
  590400,4922820,593549,4925500
  600375,4925235,606635,4920773
We can convert these three point pairs into three lines:
<source lang="bash">
  cat mypoints.csv | grep -v "north1" | awk -F',' '{printf "%f,%f\n%f,%f\nNaN,NaN\n",$1, $2 ,$3 ,$4}' > mypoints_formatted.csv
  v.in.lines in=mypoints_formatted.csv out=mylines fs=,
  v.category in=mylines out=lines_with_cat option=add
</source>


[[Category: FAQ]]
[[Category: FAQ]]

Revision as of 10:24, 13 December 2010

Q: Is there a way to construct a vector line(s) map connecting selected points?

A: There are two possibilities:

Converting points map into lines map

You can use v.in.lines for that. The input can be generated with v.out.ascii.

Spearfish example:

  v.out.ascii archsites fs=, where="cat=1 or cat= 3"
  593493,4914730,1
  589860,4922000,3
 
  # so:
  v.out.ascii archsites fs=, where="cat=1 or cat= 3" | cut -d',' -f1,2 | \
      v.in.lines in=- out=myline fs=,
  v.category in=myline out=line_with_cat option=add

Converting CSV points file into lines map

Suppose you have a CSV file "mypoints.csv" containing three point-pairs to be connected (start point coordinates, end point coordinates):

 east1,north1,east2,north2
 593493,4914730,589860,4922000
 590400,4922820,593549,4925500
 600375,4925235,606635,4920773

We can convert these three point pairs into three lines:

  cat mypoints.csv | grep -v "north1" | awk -F',' '{printf "%f,%f\n%f,%f\nNaN,NaN\n",$1, $2 ,$3 ,$4}' > mypoints_formatted.csv
  v.in.lines in=mypoints_formatted.csv out=mylines fs=,
  v.category in=mylines out=lines_with_cat option=add