Color tables: Difference between revisions
(+SVN url) |
(change link from SVN to github) |
||
(22 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
== About == | == About == | ||
Color tables live in <tt>$GISBASE/etc/colors</tt> (see [ | Color tables live in <tt>$GISBASE/etc/colors</tt> (see [https://github.com/OSGeo/grass/tree/main/lib/gis/colors github]) | ||
== Modules == | == Modules == | ||
* {{cmd|r.colors}} | * {{cmd|r.colors}} ({{cmd|r.colors}} manual in GRASS 7 has colors tables embedded as well as the GUI dialog) | ||
* {{cmd|r.colors.stddev}} ([http://hamish.bowman.googlepages.com/grass_color_maps samples]) | |||
* {{cmd|r.colors.out}} | |||
* {{cmd|r3.colors}} | |||
* {{cmd|r3.colors.out}} | |||
* {{cmd|v.colors}} | * {{cmd|v.colors}} | ||
* {{cmd|v.colors.out}} | |||
* {{cmd|d.legend}} | * {{cmd|d.legend}} | ||
* {{cmd|d.colortable}} | * {{cmd|d.colortable}} | ||
=== Addons === | === Addons === | ||
* User contributed color rules in the [https://trac.osgeo.org/grass/browser/grass-addons/grass6/raster/r.colors.tools/palettes GRASS Addons repository] | |||
* Convert from [[GMT]] color tables with {{AddonCmd|r.cpt2grass}} | * Convert from [[GMT]] color tables with {{AddonCmd|r.cpt2grass}} | ||
* Use {{AddonCmd|r.colors.quantiles}} create raster colors rules based on | * Use {{AddonCmd|r.colors.quantiles}} to create raster colors rules based on ''n''-quantiles. It uses the [[GRASS_and_Rstat|R and the spgrass6 package]]. | ||
* Use {{AddonCmd|r.colors.out_sld}} to export GRASS raster colors rules in OGC SLD template v1.0.0 XML format for Geoserver and the ilk | |||
* Use {{AddonCmd|r.colors.out_vtk}} to export GRASS raster colors rules for use with VTK-based visualization software. | |||
== Repositories == | == Repositories == | ||
* There | * There is an online colormap repository with many fine [[GMT]] (and many others) gradients at | ||
: http://soliton.vm.bytemark.co.uk/pub/cpt-city/ | |||
* There are a number of command line tools for working with the GMT .cpt files at | |||
: http://soliton.vm.bytemark.co.uk/pub/jjg/en/code/cptutils/ | |||
== Examples == | == Examples == | ||
Line 117: | Line 128: | ||
=== Addons === | === Addons === | ||
These user contributions can be found in the [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.tools/palettes GRASS addons SVN repository] | These user contributions can be found in the [https://trac.osgeo.org/grass/browser/grass-addons/grass6/raster/r.colors.tools/palettes GRASS addons SVN repository] | ||
[[Image:Colortable_palette_chl_etc.gcolors.png|center]] | [[Image:Colortable_palette_chl_etc.gcolors.png|center]] | ||
Line 123: | Line 134: | ||
[[Image:Colortable_palette_sst.gcolors.png|center]] | [[Image:Colortable_palette_sst.gcolors.png|center]] | ||
[[Image:Colortable_palette_GMT_ocean.gcolors.png|center]] | |||
[[Image:Colortable_palette_roygbiv.gcolors.png|center]] | |||
[[Image:Colortable_palette_high_intensity.gcolors.png|center]] | |||
[[Image:Colortable_palette_low_intensity.gcolors.png|center]] | |||
* ''The script used to create these thumbnails can be found on the [[Talk:Color_tables|discussion page]].'' | * ''The script used to create these thumbnails can be found on the [[Talk:Color_tables|discussion page]].'' | ||
== Using GRASS color palettes in QGIS == | |||
Most of them can already be found there, you just have to hunt for them. In the raster layer properties window's style tab, select "Singleband pseudocolor" as the type, "Generate new color map", "New color ramp", for ramp type choose "cpt-city", change to the "Sort by Author" tab, and look for "grass". They can also be found in the QGIS section cpt-city's QGIS theme. | |||
If there's a new set of color rules which are not in [[QGIS]], you can prepare a .svg palette file for use with QGIS using the following commands. Consider to then open a ticket in the QGIS issue tracker asking them to add it (and attach the file of course to save someone some work :) | |||
You will need the [http://soliton.vm.bytemark.co.uk/pub/jjg/en/code/cptutils/ ''cptsvg'' command line tool from cptutils] and the GRASS 6 addon module {{AddonCmd|r.out.gmt|version=64}}. | |||
Examples: | |||
<source lang="bash"> | |||
g.region n=100 s=0 w=0 e=100 res=1 | |||
r.mapcalc "dummy = row()" | |||
r.colors dummy color=roygbiv | |||
r.out.gmt dummy out=roygbiv | |||
rm roygbiv.grd | |||
cptsvg --geometry=300x45 -o roygbiv.svg -v roygbiv.cpt | |||
r.colors dummy rules=~/grass/svn/grass-addons/grass6/raster/r.colors.tools/palettes/palette_sst.gcolors | |||
r.out.gmt dummy out=palette_sst | |||
rm palette_sst.grd | |||
cptsvg --geometry=300x45 -o palette_sst.svg -v palette_sst.cpt | |||
</source> | |||
You can then copy the resulting .svg file into <tt>/usr/share/qgis/resources/cpt-city-qgis-min/grass/</tt> on Linux (or <tt>C:\Program Files\QGIS VERSION\apps\qgis\resources\cpt-city-qgis-min\grass\</tt> on MS Windows). | |||
Another solution to export raster color tables is to slightly tweak the output of {{Cmd|r.colors.out}}, in order to provide QGIS with a regular color chart source file. It might be handy when dealing with maps produced by {{Cmd|r.composite}}, i.e. unregistered color charts. The example bellow may be adapted to ones needs (here the alpha channel defaults to 255): | |||
<source lang="bash"> | |||
r.colors.out map=my_raster rules=~/in.colors | |||
cat in.colors|sed 's/:/,/'g|sed 's/ /,/'g|awk 'BEGIN {FS=",";OFS=","};{print $1,$2,$3,$4,255,$1}'>out.colors | |||
</source> | |||
== Loading QGIS color palettes into GRASS == | |||
The GRASS GIS addon module {{AddonCmd|r.cpt2grass|version=7}} can be used after the ''svgx'' command line program from the <tt>cptutils</tt> package, using [[GMT]]'s .cpt color table format as a go-between: | |||
<source lang="bash"> | |||
svgx --output dkbluered.cpt --type cpt /usr/share/qgis/resources/cpt-city-qgis-min/h5/dkbluered.svg | |||
r.cpt2grass in=dkbluered.cpt output=dkbluered.gcolors | |||
</source> | |||
You can then use the *.gcolors file with the {{Cmd|r.colors}} rules= option (or set the color rules directly from the ''r.cpt2grass'' module). | |||
[[Category: Documentation]] | [[Category: Documentation]] | ||
[[Category: Colors]] | |||
[[Category: VTK]] | |||
[[Category: QGIS]] |
Latest revision as of 19:21, 11 May 2024
About
Color tables live in $GISBASE/etc/colors (see github)
Modules
- r.colors (r.colors manual in GRASS 7 has colors tables embedded as well as the GUI dialog)
- r.colors.stddev (samples)
- r.colors.out
- r3.colors
- r3.colors.out
- v.colors
- v.colors.out
Addons
- User contributed color rules in the GRASS Addons repository
- Convert from GMT color tables with r.cpt2grass
- Use r.colors.quantiles to create raster colors rules based on n-quantiles. It uses the R and the spgrass6 package.
- Use r.colors.out_sld to export GRASS raster colors rules in OGC SLD template v1.0.0 XML format for Geoserver and the ilk
- Use r.colors.out_vtk to export GRASS raster colors rules for use with VTK-based visualization software.
Repositories
- There is an online colormap repository with many fine GMT (and many others) gradients at
- There are a number of command line tools for working with the GMT .cpt files at
Examples
Built in
The numeric values of following color tables can be found in the here
Addons
These user contributions can be found in the GRASS addons SVN repository
- The script used to create these thumbnails can be found on the discussion page.
Using GRASS color palettes in QGIS
Most of them can already be found there, you just have to hunt for them. In the raster layer properties window's style tab, select "Singleband pseudocolor" as the type, "Generate new color map", "New color ramp", for ramp type choose "cpt-city", change to the "Sort by Author" tab, and look for "grass". They can also be found in the QGIS section cpt-city's QGIS theme.
If there's a new set of color rules which are not in QGIS, you can prepare a .svg palette file for use with QGIS using the following commands. Consider to then open a ticket in the QGIS issue tracker asking them to add it (and attach the file of course to save someone some work :)
You will need the cptsvg command line tool from cptutils and the GRASS 6 addon module r.out.gmt.
Examples:
g.region n=100 s=0 w=0 e=100 res=1
r.mapcalc "dummy = row()"
r.colors dummy color=roygbiv
r.out.gmt dummy out=roygbiv
rm roygbiv.grd
cptsvg --geometry=300x45 -o roygbiv.svg -v roygbiv.cpt
r.colors dummy rules=~/grass/svn/grass-addons/grass6/raster/r.colors.tools/palettes/palette_sst.gcolors
r.out.gmt dummy out=palette_sst
rm palette_sst.grd
cptsvg --geometry=300x45 -o palette_sst.svg -v palette_sst.cpt
You can then copy the resulting .svg file into /usr/share/qgis/resources/cpt-city-qgis-min/grass/ on Linux (or C:\Program Files\QGIS VERSION\apps\qgis\resources\cpt-city-qgis-min\grass\ on MS Windows).
Another solution to export raster color tables is to slightly tweak the output of r.colors.out, in order to provide QGIS with a regular color chart source file. It might be handy when dealing with maps produced by r.composite, i.e. unregistered color charts. The example bellow may be adapted to ones needs (here the alpha channel defaults to 255):
r.colors.out map=my_raster rules=~/in.colors
cat in.colors|sed 's/:/,/'g|sed 's/ /,/'g|awk 'BEGIN {FS=",";OFS=","};{print $1,$2,$3,$4,255,$1}'>out.colors
Loading QGIS color palettes into GRASS
The GRASS GIS addon module r.cpt2grass can be used after the svgx command line program from the cptutils package, using GMT's .cpt color table format as a go-between:
svgx --output dkbluered.cpt --type cpt /usr/share/qgis/resources/cpt-city-qgis-min/h5/dkbluered.svg
r.cpt2grass in=dkbluered.cpt output=dkbluered.gcolors
You can then use the *.gcolors file with the r.colors rules= option (or set the color rules directly from the r.cpt2grass module).