[GRASS-user] ps.map legend with rgbcolumn colors

Luigi Ponti lponti at infinito.it
Thu Mar 4 07:49:22 EST 2010


Dear Hamish,

It definitely helped!

On 04/03/2010 03:21, Hamish wrote:
> Luigi Ponti wrote:
>   
>> I haven't been able to find this in previous discussions
>> but it seems like a trivial yet impossible (for me) to solve
>> thing. (Running grass6.4-svn windows standalone installer
>> win7.)
>>     
>
> (it needs to be explained better in the docs.)
>  
>   
>> I am trying to get a ps.map using an input file like the
>> following:
>>
>> [...]
>>
>> I would like to print a categorical legend with the same
>> colors as the rgbcolumn, but I only get one gray color that
>> is different from the RGB_COLOR definitions:
>> https://docs.google.com/fileview?id=0B0EpsfMZ-IZYNzI2ZjRjMTQtNTNiNi00NTJkLWJlZjAtNzAyN2E0MTM3OWUw&hl=it
>>     
>
> nice!
>   

It is global ecological zones from FAO http://www.fao.org/geonetwork/ 
with color scheme from http://colorbrewer2.org/ and underlying shaded 
relief from globe relief http://www.ngdc.noaa.gov/mgg/topo/globe.html 
(there is also 10m scale shoreline from http://www.naturalearthdata.com/).

I am impressed with ps.map results (never used before): it does look a 
lot more like a printed map.

>   
>> Any pointer?
>>     
>
> the vector legend is by map, not by category. Because you only used the
> vareas instruction once, you only get one entry in the vector legend.
>
> two alternatives:
>
> 1) add one vareas instruction for every vector zone, and add a
>     where column_name = 'zonename'
>   

On my system it needs to be unquoted (at least in my case, where values 
were integers) -- I mean, no quotes at all.

> to each one. You might have to explicitly give the fill color, I don't
> think it is smart enough to know that the SQL query only results in 1.
>   

Yes, it is not smart enough; I had to use fcolor option with R:G:B 
triplet in vareas in place of rgbcolumn.

> Set the label to be each zonename.
> (easiest way for a few values)
>   

Thanks: I have gone this way, for now. See link below:
https://docs.google.com/fileview?id=0B0EpsfMZ-IZYYmYwYmRlMWItY2Y4NS00MTNhLWEzZWUtZjQ2Y2U0OTU2YzRi&hl=it

One thing I am not able to do yet, is to use system fonts (e.g. Arial). 
I have tried by setting absolute path but it doesn't seem to work. I am 
afraid this is more of a postscript question... Is ps.map able to access 
and embed GRASS fonts? (ok, tried to get GRASS in.)

> 2) take the 'v.colors -s' approach, and create a dummy raster map
> containing a category file and color table matching what's in the
> vector's DB. Then use the colortable command to display it. example:
>   

This is a great example that I need to study a bit more.

Thanks for your help,

Luigi

> (this exposes a bug in the ps.map categorical legend though! the fill
> colors get rearranged!)
>
> # North Carolina sample dataset
>
> g.copy v=soils_wake,soils_wakeL
>
> # assign soil type ID number to each soil of the 77 soil types
> v.db.addcol soils_wakeL col='DSL_NUM integer'
> SOIL_TYPES=`v.db.select soils_wake col=DSL_NAME | sort | uniq`
> i=0
> (
> for TYPE in $SOIL_TYPES ; do
>   i=`expr $i + 1`
>   echo "UPDATE soils_wakeL SET DSL_NUM=$i WHERE DSL_NAME='$TYPE';"
> done 
> ) | db.execute
>
> v.extract in=soils_wakeL out=soils_wakeLc type=area where="DSL_NUM > 70"
> d.vect soils_wakeLc type=area -c where="DSL_NUM > 70"
>
> v.colors -s map=soils_wakeLc column=DSL_NUM color=random
>
> d.erase
> d.vect soils_wakeLc type=area -a 
> g.rename vcolors_23877,soils_wakeLc.legend
>
> #create cats file:
> v.db.select -c soils_wakeLc columns=DSL_NUM,DSL_NAME fs=":" | \
>   sort | uniq | r.category soils_wakeLc.legend rules=-
>
> d.legend soils_wakeLc.legend
>
> ps.map in=test.psm out=test.ps && gv test.ps &
>
>
> #----test.psm
> # ps.map input file
> border y
>    color black
>    width 1
>    end
>
> raster elevation_shade
>
> vareas soils_wakeLc
>    rgbcolumn GRASSRGB
>    label  SOIL_CODE
>    lpos 1
>    end
>
> #vlegend
> #   where 5.5 8
> #   border black
> #   font arial
> #   fontsize 12
> #   cols 1
> #   end
>
> colortable
>    where 1 8
>    raster soils_wakeLc.legend
>    font arial
>    fontsize 12
>    cols 1
>    nodata Yes
>    end
> end
> #----
>
>
>
> hope it helps,
> Hamish
>
>
>
>       
>
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/grass-user/attachments/20100304/27cd75a5/attachment.html


More information about the grass-user mailing list