[GRASS-dev] future thematic cartography in GRASS [was: Re: [GRASS
GIS] #974:
[Patch] add option to d.vect to make symbol size proportionate to square
root of size_column]
Moritz Lennert
mlennert at club.worldonline.be
Tue Mar 2 06:01:40 EST 2010
On 02/03/10 10:21, GRASS GIS wrote:
-------------------------------------------------
> Comment (by hamish):
> non-specific comments-
> - I worry that the d.vect interface is becoming like a 747 cockpit for
> new users. So many controls it becomes overwhelming. the solution I guess
> is good use of tabs and specific task wrapper scripts (eg addons
> d.stations and d.varea).
I agree, but see below.
> - now that d.vect has support for sizecol, rgbcol, widthcol, zcolor, etc,
> what is left for d.thematic.linepoint to do?
>
I've been thinking about this as well these days. What is still missing
right now is an easy way to display a combination of color-classified
and proportionately sized symbols. It is possible to declare an
arbitrary numeric column as z-height and use that with zcolor, but I
don't think this is very straightforward and even though ISTR you don't
see the need for that, cartographic theory (at least for thematic maps)
still calls for reduced numbers of classes.
However, I think that we now have the tools to actually script this
combining v.class and d.vect, using the first to define the classes
which we then use to fill the rgbcol or possibly size_column for those
who want. Two necessary/useful additions would probably be:
- g.colorclasses providing color schemes (possibly integrating color
combinations from [1]. I'll have to check licensing issues, but think
uDig has integrated it already, so it should be possible.)
- d.thematic.legend to display legend info (both color classes and sizes)
However, if we go this way, I would need to add a flag to d.vect which
allows sorting symbols with the largest in the back. This is absolutely
necessary for readability. However, this implies a fundamental change in
the d.vect code, as currently d.vect gets each feature from a map one at
a time and then paints it. In order to allow sorting the symbols, we
would have to sort the data first, loop through the cats in the defined
order, find each feature according to its cat and then paint it. I've
implemented this a long time ago in an alternative d.vect.chart [2]. An
added advantage of this approach would be that it would open the door to
a more database-oriented approach to displaying vectors in that it makes
it possible to use an arbitrary SQL-query (including combination of
several tables, etc) in d.vect to select those features you want to
display. See [3] for an example.
So, either I go for a more complete revision of d.vect, or I use d.vect
as a basis to create d.thematic.symbol (I like this name more than
d.thematic.linepoint).
In any case, a gui script to integrate these different elements and
provide things like a color choser for classes would be nice.
What do y'all think ?
Moritz
[1] http://www.personal.psu.edu/cab38/ColorBrewer/ColorBrewer_intro.html
[2] http://grass.itc.it/pipermail/grass5/2006-October/026503.html
[3] http://grass.itc.it/pipermail/grass5/2006-October/026504.html
More information about the grass-dev
mailing list