## NAME

r.out.xyz - Exports a raster map to a text file as x,y,z values based on cell centers.

## KEYWORDS

raster, export, output, ASCII, conversion

## SYNOPSIS

r.out.xyz
r.out.xyz --help
r.out.xyz [-i] input=name[,name,...] [output=name] [separator=character] [--overwrite] [--help] [--verbose] [--quiet] [--ui]

### Flags:

-i
  Include no data values
--overwrite
  Allow output files to overwrite existing files
--help
  Print usage summary
--verbose
  Verbose module output
--quiet
  Quiet module output
--ui
  Force launching GUI dialog

### Parameters:

input=name[,name,...] [required]
  Name of input raster map(s)
output=name
  Name for output file (if omitted or "-" output to stdout)
separator=character
  Field separator
  Special characters: pipe, comma, space, tab, newline
  Default: pipe

## DESCRIPTION

The r.out.xyz module exports a raster map as a list of x,y,z values into an ASCII text file.

## NOTES

This module will by default not export x,y coordinates for raster cells containing a NULL value. This includes cells masked by a raster mask. Using the flag -i also these raster cells will be included in the exported data.

This module, as all GRASS raster modules, will export cells based on the current region settings. See the g.region module for details.

The r.out.ascii module should be used to export an array (of size row x column) containing z values.

r.out.xyz can combine several input raster maps, which can be convenient when it comes to e.g. produce ASCII point cloud files.

r.out.xyz is simply a front-end to "`r.stats -1g[n]`".

## EXAMPLES

In this example, a LiDAR elevation map in the North Carolina sample dataset is exported to CSV format.

    g.region raster=elev_lid792_1m -p
    r.out.xyz input=elev_lid792_1m output=elev_lid792_1m.csv separator=","

In this example, elevation data from the North Carolina dataset are exported along with R,G,B triplet of the related orthophoto into a combined file (requires the import of the supplementary high-resolution color orthophoto, here called "ortho2010_t792"):

    g.region raster=elev_lid792_1m res=1 -a -p
    r.out.xyz input=elev_lid792_1m,ortho2010_t792.red,ortho2010_t792.green,ortho2010_t792.blue \
            separator=space output=pointcloud.asc

    # validate: X Y Z R G B
    head -n 3 pointcloud.asc
    638300.5 220749.5 126.338218689 78 84 71
    638301.5 220749.5 126.3381958008 93 101 86
    638302.5 220749.5 126.3414840698 68 77 59

## TODO

Implement this script as a r.out.ascii option?

## SEE ALSO

g.region, r.mask r.out.ascii, r.stats

## AUTHOR

M. Hamish Bowman
Dept. Marine Science
Otago University, New Zealand

## SOURCE CODE

Available at: r.out.xyz source code (history)

Latest change: Thursday Nov 06 22:27:54 2025 in commit: 298b38614712934179355ea767403d6bfea8f5f9

Main index | Raster index | Topics index | Keywords index | Graphical index | Full index

© 2003-2026 GRASS Development Team, GRASS 8.5.0 Reference Manual