Skip to content

r3.profile

Outputs the raster map layer values lying on user-defined line(s).

r3.profile [-gc] input=name [output=name] [raster_output=name] [coordinates=east,north [,east,north,...]] [file=name] [resolution=float] [null_value=string] [units=string] [--overwrite] [--verbose] [--quiet] [--qq] [--ui]

Example:

r3.profile input=name

grass.script.run_command("r3.profile", input, output="-", raster_output=None, coordinates=None, file=None, resolution=None, null_value="*", units=None, flags=None, overwrite=False, verbose=False, quiet=False, superquiet=False)

Example:

gs.run_command("r3.profile", input="name")

Parameters

input=name [required]
    Name of input 3D raster map
output=name
    Name of file for output (use output=- for stdout)
    Default: -
raster_output=name
    Name for output raster map
coordinates=east,north [,east,north,...]
    Profile coordinate pairs
file=name
    Name of input file containing coordinate pairs
    Use instead of the 'coordinates' option. "-" reads from stdin.
resolution=float
    Resolution along profile (default = current region resolution)
null_value=string
    String representing NULL value
    Default: *
units=string
    Units
    If units are not specified, current location units are used. Meters are used by default in geographic (latlon) locations.
    Allowed values: meters, kilometers, feet, miles
-g
    Output easting and northing in first two columns of four column output
-c
    Output RRR:GGG:BBB color values for each profile point
--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 input 3D raster map
    Used as: input, raster_3d, name
output : str, optional
    Name of file for output (use output=- for stdout)
    Used as: output, file, name
    Default: -
raster_output : str, optional
    Name for output raster map
    Used as: output, raster, name
coordinates : list[tuple[float, float]] | tuple[float, float] | list[float] | str, optional
    Profile coordinate pairs
    Used as: input, coords, east,north
file : str, optional
    Name of input file containing coordinate pairs
    Use instead of the 'coordinates' option. "-" reads from stdin.
    Used as: input, file, name
resolution : float, optional
    Resolution along profile (default = current region resolution)
null_value : str, optional
    String representing NULL value
    Used as: string
    Default: *
units : str, optional
    Units
    If units are not specified, current location units are used. Meters are used by default in geographic (latlon) locations.
    Allowed values: meters, kilometers, feet, miles
flags : str, optional
    Allowed values: g, c
    g
        Output easting and northing in first two columns of four column output
    c
        Output RRR:GGG:BBB color values for each profile point
overwrite: bool, optional
    Allow output files to overwrite existing files
    Default: False
verbose: bool, optional
    Verbose module output
    Default: False
quiet: bool, optional
    Quiet module output
    Default: False
superquiet: bool, optional
    Very quiet module output
    Default: False

DESCRIPTION

This program outputs two or four column (with -g) data to stdout or an ASCII file. The default two column output consists of cumulative profile length and raster value. The optional four column output consists of easting, northing, cumulative profile length, and raster value. Profile end or "turning" points can be set manually with the coordinates argument. The profile resolution, or distance between profile points, is obtained from the current region resolution, or can be manually set with the resolution argument.

The coordinates parameter can be set to comma separated geographic coordinates for profile line endpoints. Alternatively the coordinate pairs can be piped from the text file specified by file option, or if set to "-", from stdin. In these cases the coordinate pairs should be given one comma separated pair per line.

The resolution parameter sets the distance between each profile point (resolution). The resolution must be provided in GRASS database units (i.e. decimal degrees for Lat Long databases and meters for UTM). By default r.profile uses the resolution of the current GRASS region.

The null parameter can optionally be set to change the character string representing null values.

OUTPUT FORMAT

The multi column output from r.profile is intended for easy use in other programs. The output can be piped (|) directly into other programs or saved to a file for later use. Output with geographic coordinates (-g) is compatible with v.in.ascii and can be piped direcly into this program.

r.profile -g input=elevation coordinates=... | v.in.ascii output=elevation_profile separator=space

The 2 column output is compatible with most plotting programs.

The optional RGB output provides the associated GRASS colour value for each profile point.

Option units enables to set units of the profile length output. If the units are not specified, current location units will be used. In case of geographic locations (latitude/longitude), meters are used as default unit.

NOTES

The profile resolution is measured exactly from the supplied end or "turning" point along the profile. The end of a profile segment will be an exact multiple of the profile resolution and will therefore not always match the end point coordinates entered for the segmanet.

To extract the numbers in scripts, following parameters can be used:

r.profile input=dgm12.5 coordinates=3570631,5763556 2>/dev/null

This filters out the everything except the numbers.

EXAMPLES

Extraction of values along profile defined by coordinates (variant 1)

Extract a profile with coordinates (wayoints) provided on the command line (North Carolina data set):

g.region raster=elevation -p
r.profile -g input=elevation output=profile_points.csv \
          coordinates=641712,226095,641546,224138,641546,222048,641049,221186

This will extract a profile along the track defined by the three coordinate pairs. The output file "profile_points.csv" contains east,north,distance,value (here: elevation).

Extraction of values along profile defined by coordinates (variant 2)

Coordinate pairs can also being "piped" into r.profile (variant 2a):

r.profile elevation resolution=1000 file=- << EOF
641712,226095
641546,224138
641546,222048
641049,221186
EOF

Coordinate pairs can also being "piped" into r.profile (variant 2b):

echo "641712,226095
641546,224138
641546,222048
641049,221186" > coors.txt
cat coors.txt | r.profile elevation resolution=1000 file=-

The output is printed into the terminal (unless the output parameter is used) and looks as follows:

Using resolution: 1000 [meters]
Output columns:
Along track dist. [meters], Elevation
Approx. transect length: 1964.027749 [meters]
 0.000000 84.661507
 1000.000000 98.179062
Approx. transect length: 2090.000000 [meters]
 1964.027749 83.638138
 2964.027749 89.141029
 3964.027749 78.497757
Approx. transect length: 995.014070 [meters]
 4054.027749 73.988029

SEE ALSO

v.in.ascii, r.what, r.transect, wxGUI profile tool

AUTHOR

Bob Covill

SOURCE CODE

Available at: r3.profile source code (history)
Latest change: Thursday Mar 20 21:36:57 2025 in commit 7286ecf