GDALTINDEX(1)

NAME
gdaltindex - Builds a shapefile as a raster tileindex.

SYNOPSIS

    Usage: gdaltindex [--help] [--long-usage] [--help-general]
                      [-overwrite] [-recursive] [-filename_filter <val>]...
                      [-min_pixel_size <val>] [-max_pixel_size <val>]
                      [-of <output_format>] [-tileindex <field_name>]
                      [-write_absolute_path] [-skip_different_projection]
                      [-t_srs <srs_def>] [-src_srs_name <field_name>]
                      [-src_srs_format {AUTO|WKT|EPSG|PROJ}] [-lyr_name <name>]
                      [-lco <NAME>=<VALUE>]... [-gti_filename <filename>]
                      [-tr <xres> <yres>] [-te <xmin> <ymin> <xmax> <ymax>]
                      [-ot <datatype>] [-bandcount <val>] [-nodata <val>]...
                      [-colorinterp <val>]... [-mask] [-mo <name>=<value>]...
                      [-fetch_md <gdal_md_name> <fld_name> <fld_type>]... [--quiet]
                      <index_file> <file_or_dir>...

DESCRIPTION

This program creates an OGR-supported dataset with a record for each input raster file, an attribute containing the filename, and a polygon geometry outlining the raster. This output is suitable for use with MapServer as a raster tileindex, or as input for the GTI driver.

--help
    Show this help message and exit

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

-overwrite
    Added in version 3.9.

    Overwrite the tile index if it already exists.

-recursive
    Added in version 3.9.

    Whether directories specified in <file_or_dir> should be explored recursively.

-filename_filter <val>
    Added in version 3.9.

    Pattern that the filenames contained in directories pointed by <file_or_dir> should follow. '*' is a wildcard character that matches any number of any characters including none. '?' is a wildcard character that matches a single character. Comparisons are done in a case insensitive way. Several filters may be specified.

    For example :-filename_filter "*.tif" -filename_filter "*.tiff"

-min_pixel_size <val>
    Added in version 3.9.

    Minimum pixel size in term of geospatial extent per pixel (resolution) that a raster should have to be selected. The pixel size is evaluated after reprojection of its extent to the target SRS defined by -t_srs.

-max_pixel_size <val>
    Added in version 3.9.

    Maximum pixel size in term of geospatial extent per pixel (resolution) that a raster should have to be selected. The pixel size is evaluated after reprojection of its extent to the target SRS defined by -t_srs.

-of <output_format>
    The OGR format of the output tile index file. If not specified, the format is guessed from the extension.

-tileindex <field_name>
    The output field name to hold the file path/location to the indexed rasters. The default tile index field name is location.

-write_absolute_path
    The absolute path to the raster files is stored in the tile index file. By default the raster filenames will be put in the file exactly as they are specified on the command line.

-skip_different_projection
    Only files with same projection as files already inserted in the tileindex will be inserted (unless -t_srs is specified). Default does not check projection and accepts all inputs.

-t_srs <target_srs>
    Geometries of input files will be transformed to the desired target coordinate reference system. Default creates simple rectangular polygons in the same coordinate reference system as the input rasters.

-src_srs_name <field_name>
    The name of the field to store the SRS of each tile. This field name can be used as the value of the TILESRS keyword in MapServer

-src_srs_format {AUTO|WKT|EPSG|PROJ}
    The format in which the SRS of each tile must be written. Types can be AUTO, WKT, EPSG, PROJ. This option should be used together with -src_srs_format.

-lyr_name <name>
    Layer name to create/append to in the output tile index file.

-lco <NAME>=<VALUE>
    Added in version 3.9.

    Layer creation option (format specific)

<index_file>
    The name of the output file to create/append to. The default dataset will be created if it doesn't already exist, otherwise it will append to the existing dataset.

<file_or_dir>
    The input GDAL raster files, can be multiple files separated by spaces. Wildcards may also be used. Stores the file locations in the same style as specified here, unless -write_absolute_path option is also used.

    Starting with GDAL 3.9, this can also be a directory name. -recursive can also be used to recurse down to sub-directories.

    It is also possible to use the generic option --optfile filelist.txt to specify a list of source files.

OPTIONS SPECIFIC TO USE BY THE GDAL GTI DRIVER

gdaltindex can be used to generate a tile index suitable for use by the GTI driver. There are two possibilities:

•   either use directly a vector tile index generated by gdaltindex as the input of the GTI driver

•   or generate a small XML .gti wrapper file, for easier use with non-file-based formats such as databases, or for vector formats that do not support setting layer metadata items.

    Formats that support layer metadata are for example GeoPackage (-of GPKG), FlatGeoBuf (-of FlatGeoBuf) or PostGIS (-of PG)

    Setting -tr and -ot is recommended to avoid the GTI driver to have to deduce them by opening the first tile in the index. If the tiles have nodata or mask band, -nodata and -mask should also be set.

    In a GTI context, the extent of all tiles referenced in the tile index must be expressed in a single SRS. Consequently, if input tiles may have different SRS, either -t_srs or -skip_different_projection should be specified.

-gti_filename <name>
    Added in version 3.9.

    Filename of the XML Virtual Tile Index file to generate, that can be used as an input for the GDAL GTI / Virtual Raster Tile Index driver. This can be useful when writing the tile index in a vector format that does not support writing layer metadata items.

-tr <xres> <yres>
    Added in version 3.9.

    Target resolution in SRS unit per pixel.

    Written in the XML Virtual Tile Index if -gti_filename is specified, or as RESX and RESY layer metadata items for formats that support layer metadata.

-te <xmin> <ymin> <xmax> <ymax>
    Added in version 3.9.

    Target extent in SRS unit.

    Written in the XML Virtual Tile Index if -gti_filename is specified, or as MINX, MINY, MAXX and MAXY layer metadata items for formats that support layer metadata.

-ot <datatype>
    Added in version 3.9.

    Data type of the tiles of the tile index: Byte, Int8, UInt16, Int16, UInt32, Int32, UInt64, Int64, Float32, Float64, CInt16, CInt32, CFloat32 or CFloat64

    Written in the XML Virtual Tile Index if -gti_filename is specified, or as DATA_TYPE layer metadata item for formats that support layer metadata.

-bandcount <val>
    Added in version 3.9.

    Number of bands of the tiles of the tile index.

    Written in the XML Virtual Tile Index if -gti_filename is specified, or as BAND_COUNT layer metadata item for formats that support layer metadata.

    A mix of tiles with N and N+1 bands is allowed, provided that the color interpretation of the (N+1)th band is alpha. The N+1 value must be written as the band count in that situation.

    If -nodata or -colorinterp are specified and have multiple values, the band count is also inferred from that number.

-nodata <val>[,<val>...]
    Added in version 3.9.

    Nodata value of the tiles of the tile index.

    Written in the XML Virtual Tile Index if -gti_filename is specified, or as NODATA layer metadata item for formats that support layer metadata.

-colorinterp <val>[,<val>...]
    Added in version 3.9.

    Color interpretation of of the tiles of the tile index: red, green, blue, alpha, gray, undefined.

    Written in the XML Virtual Tile Index if -gti_filename is specified, or as COLOR_INTERPRETATION layer metadata item for formats that support layer metadata.

-mask
    Added in version 3.9.

    Whether tiles in the tile index have a mask band.

    Written in the XML Virtual Tile Index if -gti_filename is specified, or as MASK_BAND layer metadata item for formats that support layer metadata.

-mo <KEY>=<VALUE>
    Added in version 3.9.

    Write an arbitrary layer metadata item, for formats that support layer metadata. This option may be repeated.

    NOTE: This option cannot be used together -gti_filename

-fetch_md <gdal_md_name> <fld_name> <fld_type>
    Added in version 3.9.

    Fetch a metadata item from the raster tile and write it as a field in the tile index.

    <gdal_md_name> should be the name of the raster metadata item. {PIXEL_SIZE} may be used as a special name to indicate the pixel size.

    <fld_name> should be the name of the field to create in the tile index.

    <fld_type> should be the name of the type to create. One of String, Integer, Integer64, Real, Date, DateTime

    This option may be repeated.

    For example: -fetch_md TIFFTAG_DATETIME creation_date DateTime

EXAMPLES

  Example 1

Produce a shapefile (doq_index.shp) with a record for every image that the utility found in the doq folder. Each record holds information that points to the location of the image and also a bounding rectangle shape showing the bounds of the image:

    gdaltindex doq_index.shp doq/*.tif

  Example 2

Perform the same command as before, but now we create a GeoPackage instead of a Shapefile.

    gdaltindex -of GPKG doq_index.gpkg doq/*.tif

  Example 3

The -t_srs option can also be used to transform all input rasters into the same output projection:

    gdaltindex -t_srs EPSG:4326 -src_srs_name src_srs tile_index_mixed_srs.shp *.tif

  Example 4

Make a tile index from files listed in a text file, with metadata suitable for use by the GDAL GTI / Virtual Raster Tile Index driver.

    gdaltindex tile_index.gti.gpkg -ot Byte -tr 60 60 -colorinterp Red,Green,Blue --optfile my_list.txt

C API

This utility is also callable from C with GDALTileIndex().

SEE ALSO

Common options for raster programs for other command-line options, and in particular the --optfile switch that can be used to specify a list of input datasets.

AUTHOR
Frank Warmerdam <warmerdam@pobox.com>

COPYRIGHT
1998-2025