[GRASS-dev] trying to amend d.vect.chart - need for advice
Moritz Lennert
mlennert at club.worldonline.be
Wed Sep 6 08:17:23 EDT 2006
Hello,
With a colleague we are trying to amend d.vect.chart in order to
1) speed it up
2) allow a where clause
Currently, d.vect.chart loops through each vector feature and opens a
new db cursor to fetch the column information. On a map with a fair
amount of features (20464 centroids) with the table in Postgresql it
seems that the db connection is what takes the most of the time (even
worse obviously when the map is linked to a view which needs to be
recalculated for every feature).
So currently, the program's logic is as follows (in
display/d.vect.chart/plot.c):
- get number of features (little aside question: why is this done with
Vect_get_num_lines() which should return number of lines, not number of
features - as you can see I'm very new to the vector library)
- loop through each feature:
- get cat of feature
- open cursor selecting columns [and sizecol] for this feature
according to cat
- close cursor
- plot with this info
We would like to modify this according to the following logic:
- add a 'where' option
- open a cursor selecting cat, columns [and sizecol] limited by the
where option
- loop through the cursor:
- find x,y values according to cat
- plot with this info
- close cursor
I have two main questions about this:
1) Does this sound reasonable ? Anything we are missing ?
2) Is there a function to get x,y point values according to cat value ?
Thanks,
Moritz
More information about the grass-dev
mailing list