# gdallocationinfo

Raster query tool

## Synopsis

    Usage: gdallocationinfo [--help] [--long-usage] [--help-general]
                            [-xml] [-lifonly] [-valonly] [-E] [-field_sep <sep>]
                            [-ignore_extra_input] [-b <band>]...
                            [-overview <overview_level>]
                            [-r nearest|bilinear|cubic|cubicspline]
                            [[-l_srs <srs_def>]|[-geoloc]|[-wgs84]]
                            [-oo <NAME>=<VALUE>]...
                            <srcfile> <x> <y>

## Description

The gdallocationinfo utility provide a mechanism to query information about a pixel given its location in one of a variety of coordinate systems. Several reporting options are provided.

--help

  Show this help message and exit

--help-general

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

-xml

  The output report will be XML formatted for convenient post processing. (Example 2).

-lifonly

  The only output is filenames production from the LocationInfo request against the database (i.e. for identifying impacted file from VRT).

-valonly

  The only output is the pixel values of the selected pixel on each of the selected bands. By default, the value of each band is output on a separate line, unless `-field_sep` is specified.

-b <band>

  Selects a band to query. Multiple bands can be listed. By default all bands are queried.

-r {nearest|bilinear|cubic|cubicspline}

  Added in version 3.10.

  Select a sampling algorithm. The default is `nearest`.

  The available methods are:

  `nearest` applies a nearest neighbour.

  `bilinear` applies a bilinear convolution kernel.

  `cubic` applies a cubic convolution kernel.

  `cubicspline` applies a B-Spline convolution kernel.

-overview <overview_level>

  Query the (overview_level)th overview (overview_level=1 is the 1st overview), instead of the base band. Note that the x,y location (if the coordinate system is pixel/line) must still be given with respect to the base band.

-l_srs <srs_def>

  The coordinate system of the input x, y location.

-geoloc

  Indicates input x,y points are in the georeferencing system of the image.

-wgs84

  Indicates input x,y points are WGS84 long, lat.

-oo <NAME>=<VALUE>

  Dataset open option (format specific)

-ignore_extra_input

  Added in version 3.9.

  Set this flag to avoid extra non-numeric content at end of input lines to be appended to the output lines in -valonly mode (requires `-field_sep` to be also defined), or as a dedicated field in default or `-xml` modes.

-E

  Added in version 3.9.

  Enable Echo mode, where input coordinates are prepended to the output lines in `-valonly` mode.

-field_sep <sep>

  Added in version 3.9.

  Defines the field separator, used in `-valonly` mode, to separate different values. It defaults to the new-line character, which means that when querying a raster with several bands, the output will contain one value per line, which may make it hard to recognize which value belongs to which set of input x,y points when several ones are provided. Defining the field separator is also needed

<srcfile>

  The source GDAL raster datasource name.

<x>

  X location of target pixel. By default the coordinate system is pixel/line unless -l_srs, -wgs84 or -geoloc supplied.

<y>

  Y location of target pixel. By default the coordinate system is pixel/line unless -l_srs, -wgs84 or -geoloc supplied.

This utility is intended to provide a variety of information about a pixel. Currently it reports:

- The location of the pixel in pixel/line space.

- The result of a LocationInfo metadata query against the datasource. This is implemented for VRT files which will report the file(s) used to satisfy requests for that pixel, and by the MBTiles driver.

- The raster pixel value of that pixel for all or a subset of the bands.

- The unscaled pixel value if a Scale and/or Offset apply to the band.

The pixel selected is requested by x/y coordinate on the command line, or read from stdin. More than one coordinate pair can be supplied when reading coordinates from stdin. By default integer pixel/line coordinates are expected. However with use of the `-geoloc`, `-wgs84`, or `-l_srs` switches it is possible to specify the location in other coordinate systems.

The default report is in a human readable text format. It is possible to instead request xml output with the -xml switch.

For scripting purposes, the -valonly and -lifonly switches are provided to restrict output to the actual pixel values, or the LocationInfo files identified for the pixel.

It is anticipated that additional reporting capabilities will be added to gdallocationinfo in the future.

## Examples

### Example 1: Reporting on pixel (256,256) on the file `utm.tif`

    $ gdallocationinfo utm.tif 256 256
    Report:
    Location: (256P,256L)
    Band 1:
        Value: 115

### Example 2: Querying a VRT file providing the location in WGS84, and getting the result in XML

    $ gdallocationinfo -xml -wgs84 utm.vrt -117.5 33.75
    <Report pixel="217" line="282">
        <BandReport band="1">
            <LocationInfo>
            <File>utm.tif</File>
            </LocationInfo>
            <Value>16</Value>
        </BandReport>
    </Report>

### Example 3: Reading locations from stdin

    $ cat coordinates.txt
    443020 3748359
    441197 3749005
    443852 3747743

    $ cat coordinates.txt | gdallocationinfo -geoloc utmsmall.tif
    Report:
      Location: (38P,49L)
      Band 1:
        Value: 214
    Report:
      Location: (7P,38L)
      Band 1:
        Value: 107
    Report:
      Location: (52P,59L)
      Band 1:
        Value: 148

    $ cat coordinates.txt | gdallocationinfo -geoloc -valonly -E -field_sep , utmsmall.tif
    443020,3748359,214
    441197,3749005,107
    443852,3747743,148