[GRASS-user] Feed and manipulate the result of "v.distance -pa" in python

Nikos Alexandris nikos.alexandris at felis.uni-freiburg.de
Wed Aug 4 00:48:30 EDT 2010


Hi!

I need to convert the following bash-one-liner:

v.distance --q -pa from=ref_points to=coi_points upload=cat column=anycol | 
cut -d"|" -f2 | sort -nu | tail -1

into python.

My unsolved problem is that "v.distance -pa" returns for example thousands of 
lines in the following format:
...
7839|16
7839|17
7839|22
7839|23
7839|24

Reading the main command in python is not the problem (although I am a bit 
confused between grass.pipe, grass.feed, grass.read). Are there any examples 
(scripts in grass trunk maybe?) to follow in order to split the output, keep 
the second "column", sort and keep the maximum? Actually the "split" is what 
worries me most. I 've been looking for quite some time to find something that 
gives me a strait answer but no luck yet.

The idea is to feed later on v.what.vect with a "dmax=" as this seems to 
reduce the eXtremely slow "v.distance" process as suggested by MoritzL in [1] 
("v.distance" is running for 2 days here over large files[*]!).

I timed two different versions of v.what.vect (with and without "dmax=") and 
it seems to make a difference (tested however in small spearfish vector data). 
All this as part of a horrible script of mine [2]. I feel however that this 
fits as an enhancement to "v.what.vect" itself.

Regards, Nikos
---

[1] <http://lists.osgeo.org/pipermail/grass-user/2009-May/050330.html>

[*] e.g. first result after >10h:

Finding nearest lines...
Finding nearest areas...
404347 categories read from the map
404347 categories exist in the table
404347 categories read from the map exist in the table
404347 records updated
...

[2] Script "pareto_3" within the tarred attached file in 
<http://trac.osgeo.org/grass/ticket/804>


More information about the grass-user mailing list