The user can specify all needed parameters on the command line, and run the program non-interactively. If the user does not specify any categories (e.g., using the optional cats=range[,range,...] argument), then all the category values and labels for the named raster map layer that occur in the map are printed. The entire map is read using r.describe, to determine which categories occur in the map. If a listing of categories is specified, then the labels for those categories only are printed. The cats may be specified as single category values, or as ranges of values. The user may also (optionally) specify that a field separator other than a space or tab be used to separate the category value from its corresponding category label in the output, by using the separator=character|space|tab option (see example below). If no field separator is specified by the user, a tab is used to separate these fields in the output, by default.
The output is sent to standard output in the form of one category per line, with the category value first on the line, then an ASCII TAB character (or whatever single character or space is specified using the separator parameter), then the label for the category.
The output from r.category can be redirected into a file, or piped into another program.
cat:Label val1:val2:Label
stdin
0:no data 2: . 5: . ## explicit category labels 7: .
5.5:5:9 label description or 15:30 label description
In the format line
$1
refers to the value num*5.0+1000
(ie, using the first 2 coefficients)$2
refers to the value num*5.0+1005
(ie, using the last 2 coefficients)$1.2
will print $1
with 2 decimal places.
Also, the form $?xxx$yyy$
translates into yyy
if the category is 1, xxx
otherwise. The $yyy$
is optional. Thus
$1 meter$?s
will become:
1 meter
(for category 1)
2 meters
(for category 2), etc.
format='Elevation: $1.2 to $2.2 feet' ## Format Statement
coefficients="5.0,1000,5.0,1005" ## Coefficients
The format and coefficients above would be used to generate the following statement in creation of the format appropriate category string for category "num":
sprintf(buff,"Elevation: %.2f to %.2f feet", num*5.0+1000, num*5.0*1005)
Note: while both the format and coefficient lines must be present a blank line for the format string will effectively suppress automatic label generation.
To use a "$
" in the label without triggering the plural test,
put "$$
" in the format string.
Use 'single quotes' when using a "$
" on the command line to
avoid unwanted shell substitution.
r.category map=landclass96 1 developed 2 agriculture 3 herbaceous 4 shrubland 5 forest 6 water 7 sediment
r.category map=landclass96 cats=2,5-7 2 agriculture 5 forest 6 water 7 sediment
2
and 5
through 7
.
r.category map=landclass96 cats=3,4 separator=comma 3,herbaceous 4,shrubland
3
and 4
, but uses ",
" (instead of a tab)
as the character separating the category values from the category
values in the output.
r.category map=landclass96 cats=3,4 output_format=json
[ { "category": 3, "description": "herbaceous" }, { "category": 4, "description": "shrubland" } ]
r.category diseasemap separator=":" rules=- << EOF 1:potential absence 2:potential presence EOF
d.what.rast, r.coin, r.describe, r.support
Available at: r.category source code (history)
Latest change: Tuesday Dec 17 20:17:20 2024 in commit: ab90c5e5a9b668894da360fa97ffd4a51a38931e
Main index | Raster index | Topics index | Keywords index | Graphical index | Full index
© 2003-2024 GRASS Development Team, GRASS GIS 8.5.0dev Reference Manual