[GRASS-user] displaying many thematic maps from one vector dataset

Moritz Lennert mlennert at club.worldonline.be
Fri Apr 17 03:44:57 EDT 2009


On 16/04/09 21:54, Vishal Mehta wrote:
> Hi Moritz, all,
> 
> In displaying this kind thematic vector data, how can I assign a 
> transparent color to the value zero? (zero is Not the null value of the 
> GRASS vector dataset)

The easiest is probably to use a where= clause such as

where="value<>0"

Moritz

> 
> Thanks,
> Vishal
> 
> On Wed, Apr 8, 2009 at 10:24 AM, Moritz Lennert 
> <mlennert at club.worldonline.be <mailto:mlennert at club.worldonline.be>> wrote:
> 
>     On 08/04/09 18:48, Vishal Mehta wrote:
> 
>         Hi Moritz,
>         Regarding legends with d.graph, these are the main issues where
>         I found I needed to do too much of trial and error, some of
>         which I think could probably be avoided/improved in a future
>         version...
> 
>         1. the legend ends up with some strange additions beyond just
>         the range of data: like what are those numbers after each range
>         e.g. in the example below where did | 0 and | 5 come from? It
>         would be nice to not have this automatically displayed.
>         60 - 80 | 0
>         80-100 | 5
> 
> 
>     This comes from my scientific background which says that a legend
>     should include information about the frequencies of observations in
>     each class. This is what these numbers show. But I agree that this
>     should probably be optional.
> 
> 
> 
>         2. there could be a flag on d.graph, which allows the output to
>         have a "< minbreak" and "> maxbreak" option, so that for cases
>         like the one we are discussing, the legend does not keep
>         changing based on different data ranges.
> 
> 
>     d.graph is "just" a drawing module. Any such flags will have to go
>     into d.thematic.area, or a specific d.thematic.legend module, but
>     yes, sounds good.
> 
> 
> 
>         3. size and position
>         Here, I wanted to get a legend file separately, and save a
>         legend png. To do this I had to play with the size and other
>         parameters extensively to make the symbols and associated text
>         match up. It would be great to be able to do the following with
>         some flags, for the case where the legend alone is displayed:
>         (i) set the overall size of the display within which the legend
>         will be displayed
>         (ii) set the position of the legend within the display with
>         options like lowerleft, upperright, center, etc
> 
> 
>     positioning in d.graph is in percentage, so the size of the display
>     should not make a difference for the relative localisation.
> 
> 
>         (iii) set the size of the legend as a fraction/percentage of the
>         display.
> 
> 
>     Size of text is in percentage, but size of symbols aren't. But I
>     guess you mean the legend as a whole. There should probably be some
>     way to calculate the size of the different elements given a general
>     value from the user. Again, this would have to be a parameter for
>     d.thematic.*.
> 
> 
>         (iv) make the background transparent (or not)
> 
> 
>     At this stage the background is transparent, but I could add a flag
>     to allow non-transparent (you can do it yourself by just drawing a
>     white rectangle underneath).
> 
> 
>         such that the above settings 'automatically' set up the symbol
>         and corresponding text all properly lined up..
> 
> 
>     d.graph does not have any "alignment" feature, you have to work with
>     the percentage positioning, but one problem (I think) is that
>     different fonts have different sizes, so a same size but different
>     font will lead to different alignments.
> 
> 
> 
>         I am aware that if I was just better at this I could do it
>         quickly enough..but the above functionality would make it easier
>         for less-than-expert people like myself, who try to use
>         open-source as much as possible despite the handicap of having
>         been groomed on Windows...
> 
> 
>     Cartography is currently one of the weak points of GRASS, although
>     you can't beat it for automatic cartography as you are doing (well,
>     gmt can do that, but don't know about thematic cartography in gmt).
> 
>     Thank you for the extensive feedback, though. I get the feeling that
>     there should be some d.thematic.legend module which uses the output
>     of the -l flag of d.thematic.area to then create a nice-looking legend.
> 
>     You might also want to have a look at ps.map which allows some more
>     sophisticated cartography and offers an automatic legend.
> 
>     Moritz
> 
> 
> 
> 
> -- 
> Vishal K. Mehta, PhD
> Scientist
> Stockholm Environment Institute - US
> 133 D St Suite F
> Davis CA 95616
> www.sei-us.org <http://www.sei-us.org>



More information about the grass-user mailing list