Translates a raster file into xyz format.


gdal2xyz [--help] [--help-general]
    [-skip <factor>]
    [-srcwin <xoff> <yoff> <xsize> <ysize>]
    [-b <band>]... [-allbands]
    [-srcnodata <value>] [-dstnodata <value>]
    <src_dataset> <dst_dataset>


The gdal2xyz utility can be used to translate a raster file into xyz format. gdal2xyz can be used as an alternative to gdal_translate of=xyz. Features include:

  • Select more then one band

  • Skip or replace nodata value

  • Return the output as numpy arrays.


gdal2xyz is a Python utility, and is only available if GDAL Python bindings are available.


Show this help message and exit


Gives a brief usage message for the generic GDAL commandline options and exit.


How many rows/cols to skip in each iteration.

-srcwin <xoff> <yoff> <xsize> <ysize>

Selects a subwindow from the source image for copying based on pixel/line location.

-b, -band <band>

Select band band from the input spectral bands for output. Bands are numbered from 1 in the order spectral bands are specified. Multiple -b switches may be used. When no -b switch is used, the first band will be used. In order to use all input bands set -allbands or -b 0.


Select all input bands.


Use comma instead of space as a delimiter.


Exclude the output lines with nodata value (as determined by srcnodata)


The nodata value of the dataset (for skipping or replacing) Default (None) - Use the dataset nodata value; Sequence/Number - Use the given nodata value (per band or per dataset).


Replace source nodata with a given nodata. Has an effect only if not setting -skipnodata. Default(None) - Use srcnodata, no replacement; Sequence/Number - Replace the srcnodata with the given nodata value (per band or per dataset).

-h, --help

Show help message and exit.


The source dataset name. It can be either file name, URL of data source or subdataset name for multi-dataset files.


The destination file name.


gdal2xyz -b 1 -b 2 -dstnodata 0 input.tif output.txt

To create a text file in xyz format from the input file input.tif. The first columns, x and y, are the coordinates of the centers of each cell. The remaining columns represent the first and second bands. We also replace the dataset nodata values with zeros.


gdal2xyz output values with a limited precision. Use gdal_translate -of XYZ if more precision is desired.