[GRASS-user] Vector map attributes

Moritz Lennert mlennert at club.worldonline.be
Wed Mar 25 12:22:53 EDT 2009


On 25/03/09 11:05, Craig Leat wrote:
> Hello
> 
> I have a vector map with points representing latrines and each point
> has an attribute describing the place name. I ran v.edit to snap
> points with a threshold of 5m

Because you think that these points are actually duplicates, or because 
you want the information about all latrines within a certain radius to 
be regrouped ?

> and v.info reports 7296 features for the
> cleaned map. I now wish to count the number of latrines in each place,
> so I ran:
>> echo "SELECT *,count(Area) FROM MT_San_clean GROUP BY Area" | db.select
> and get a total of 10537, so the results are bogus.
> 
> Running the following command I can see the reason for the bogus results:
>> v.category in=MT_San_clean opt=print
> 1331/566/571/691/1332/456/416/410/405/561/390
> 1294/1249/1265/1229/1225/1273/1233
> v.edit has assigned multiple categories to points when they were snapped.
> 
> To get a meaningful count of points by Area I can think of two solutions:
> 1) Use awk to filter out the first category for each feature from the
> output of v.category opt=print and feed this list of cats into
> db.select,
> however I'm not sure of the sql syntax for WHERE "cat=MyListOfCats".

Create a table MyCats containing your cats and the use WHERE "cat in 
(select * from MyCats)"


> 2) Use awk to filter out all, but the first category for each feature
> from the output of v.category opt=print and feed this list of cats
> into v.category opt=del,
> however I'm not sure of the relationship between feature ids and cats,
> and v.category wants a list of ids.

use v.edit select= cats= to find out ids.

> 
> Can someone please suggest an easier way or give me a pointer to
> implement either of my ideas? 

How about v.edit catdel= cats= ?

Or v.clean tool=rmdupl (although the man page says "pay attention to 
categories!" - don't know what that means).

Moritz


More information about the grass-user mailing list