[FOSSGIS-Talk] Farbcodierung Neigungen (slope) in GRASS GIS;

Markus Neteler neteler at osgeo.org
Do Mai 5 21:14:35 CEST 2016


Hallo Stefan,

2016-05-02 0:00 GMT+02:00  <net-ecke at gmx.net>:
> Hallo,
>
> ich habe aus einem digitalen Geländemodell Karten zu Neigungen (slope),
> Expositionen (aspect), etc. erzeugt und würde die jetzt gerne mit r.color
> farbcodieren.
> Und zwar so, dass nur Werte innerhalb eines gewissen Bereichs farbig
> angezeigt werden, der Rest soll weiss bleiben.
>
> Also z.B. sollen die Werte für Neigungen zwischen 30 bis 90 Grad mit einer
> Farbskala codiert werden (z.B. "bcyr: blue through cyan through yellow to
> red"), alles unter 30° Neigung soll weiss bleiben.
>
> Gibt es dazu eine Synthax, das so in einer Regeldatei (z.B.
> "Farbregel_slopes.txt") festzulegen, die man dann mit dem Befehl r.color
> verwendet.

Es gibt zwei Moeglichkeiten:

1) Filtern (neue Karte), dann färben (einfach):

g.region raster=slope -p
r.mapcalc "slope_above_30deg = if(slope > 30.0, slope, null() )"
r.colors slope_above_30deg color=bcyr


2) Spezielle Farbtabelle erzeugen (ist komplizierter!)

g.region raster=slope -p
r.univar slope
# --> maximalen Wert herauslesen (oder per -g und
#      eval shell Funktion automatisieren)
#
# Textdatei "farbregel_slopes.txt" erzeugen mit ungefähr diesem Inhalt
# (die Schwellwerte über 30 Grad müssen dann entsprechend aus der
# Statistik der Neigungskarte berechnet werden, hier Beispiel!):

0 white
29.999 white
30 blue
35 cyan
40 yellow
50 red

r.colors slope color=farbregel_slopes.txt

Die erste Variante ist einfacher :-)

Schöne Grüße,
Markus