r.recode
Recodes categorical raster maps.
r.recode [-ad] input=name output=name rules=name [title=string] [--overwrite] [--verbose] [--quiet] [--qq] [--ui]
Example:
r.recode input=name output=name rules=name
grass.script.run_command("r.recode", input, output, rules, title=None, flags=None, overwrite=None, verbose=None, quiet=None, superquiet=None)
Example:
gs.run_command("r.recode", input="name", output="name", rules="name")
grass.tools.Tools.r_recode(input, output, rules, title=None, flags=None, overwrite=None, verbose=None, quiet=None, superquiet=None)
Example:
tools = Tools()
tools.r_recode(input="name", output="name", rules="name")
This grass.tools API is experimental in version 8.5 and expected to be stable in version 8.6.
Parameters
input=name [required]
Name of raster map to be recoded
output=name [required]
Name for output raster map
rules=name [required]
File containing recode rules
'-' for standard input
title=string
Title for output raster map
-a
Align the current region to the input raster map
-d
Force output to 'double' raster map type (DCELL)
--overwrite
Allow output files to overwrite existing files
--help
Print usage summary
--verbose
Verbose module output
--quiet
Quiet module output
--qq
Very quiet module output
--ui
Force launching GUI dialog
input : str, required
Name of raster map to be recoded
Used as: input, raster, name
output : str, required
Name for output raster map
Used as: output, raster, name
rules : str, required
File containing recode rules
'-' for standard input
Used as: input, file, name
title : str, optional
Title for output raster map
flags : str, optional
Allowed values: a, d
a
Align the current region to the input raster map
d
Force output to 'double' raster map type (DCELL)
overwrite : bool, optional
Allow output files to overwrite existing files
Default: None
verbose : bool, optional
Verbose module output
Default: None
quiet : bool, optional
Quiet module output
Default: None
superquiet : bool, optional
Very quiet module output
Default: None
input : str | np.ndarray, required
Name of raster map to be recoded
Used as: input, raster, name
output : str | type(np.ndarray) | type(np.array) | type(gs.array.array), required
Name for output raster map
Used as: output, raster, name
rules : str | io.StringIO, required
File containing recode rules
'-' for standard input
Used as: input, file, name
title : str, optional
Title for output raster map
flags : str, optional
Allowed values: a, d
a
Align the current region to the input raster map
d
Force output to 'double' raster map type (DCELL)
overwrite : bool, optional
Allow output files to overwrite existing files
Default: None
verbose : bool, optional
Verbose module output
Default: None
quiet : bool, optional
Quiet module output
Default: None
superquiet : bool, optional
Very quiet module output
Default: None
Returns:
result : grass.tools.support.ToolResult | np.ndarray | tuple[np.ndarray] | None
If the tool produces text as standard output, a ToolResult object will be returned. Otherwise, None
will be returned. If an array type (e.g., np.ndarray) is used for one of the raster outputs, the result will be an array and will have the shape corresponding to the computational region. If an array type is used for more than one raster output, the result will be a tuple of arrays.
DESCRIPTION
r.recode creates an output raster map by recoding input raster map based on recode rules. A title for the output raster map may be (optionally) specified by the user.
The recode rules can be read from standard input (i.e., from the keyboard, redirected from a file, or piped through another program) by entering rules=-.
Rules are defined in one of these formats:
old_low:old_high:new_low:new_high
old_low:old_high:new_val (i.e. new_high == new_low)
*:old_val:new_val (interval [inf, old_val])
old_val:*:new_val (interval [old_val, inf])
r.recode is loosely based on r.reclass and uses the GRASS Reclass Library to convert the rasters. It has routines for converting to every possible combination of raster (eg. CELL to DCELL, DCELL to FCELL, etc). Standard floating point raster precision is float (FCELL), with -d double precision (DCELL) will be written.
There are four basic routines that it accepts:
- old-low to old-high is reclassed to new-low to new high , where the user provides all four values. The program figures on the fly what type of raster should be created.
- old-low to old-high is reclassed to a single new value. Anything outside the range is null.
- * to old-high will reclass everything less than old-high to a single new value.
- old-low to * will reclass everything greater than old-low to a single new value.
These four sets of arguments can be given on the command line, or piped via stdin or a file. More than one set of arguments is accepted.
EXAMPLES
Map type conversion
To simply convert a raster between formats (eg. int to float) the user would use the first argument. For example
10:1500:0.1:15.0
would convert an input raster map with range between 10 and 1500 to a float raster raster with range between 0.1 and 15.0.
Value replacement
r.recode can be used to replace existing cell values by others. The formatting is as described above. In following example the values 1, 2 and 3 are replaced by 1.1, 7.5 resp. 0.4:
r.recode input=oldmap output=newmap rules=- << EOF
1:1:1.1:1.1
2:2:7.5:7.5
3:3:0.4:0.4
EOF
SEE ALSO
AUTHOR
CERL
SOURCE CODE
Available at: r.recode source code
(history)
Latest change: Thursday May 08 20:58:05 2025 in commit 4144ba8