[GRASS-user] using label in r.mapcalc query?

Glynn Clements glynn at gclements.plus.com
Sat Oct 15 11:04:14 PDT 2016


Ahmet Temiz wrote:

> I am confused about using label values in r.mapcalc.
> 
> r.category curvt_cat
> 1 conc
> 2 flat
> 3 conx
> 
> 
> r.mapcalc "dene = if ( curvt_cat == /* I want to use label values here
> instead of  categories    */ )"
> 
> like this :
> 
> r.mapcalc "dene = if ( curvt_cat == 'conc' )"
> 
> it gives
> Invalid map <conc>
> 
> ?How can I use label in r.mapcalc query??

You can't. r.mapcalc doesn't have a string type.

You'll need to parse the output from r.category to determine the
numeric category corresponding to the label, then use that in the
r.mapcalc expression.

The @ modifier reads the category label and converts it to a float. 
This is basically a hack which had some utility in the GRASS 4.x era,
before GRASS supported floating-point maps.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-user mailing list