# tindex

The `tindex` command is used to create a GDAL-style tile index for PDAL-readable point cloud types (see gdaltindex).

The `tindex` command has two modes. The first mode creates a spatial index file for a set of point cloud files. The second mode creates a point cloud file that is the result of merging the points from files referred to in a spatial index file that meet some criteria (usually a geographic region filter).

## tindex Creation Mode

    $ pdal tindex create <tindex> <filespec>

    --tindex               OGR-readable/writeable tile index output
    --filespec             Build: Pattern of files to index. Merge: Output filename
    --fast_boundary        Use extent instead of exact boundary
    --lyr_name             OGR layer name to write into datasource
    --tindex_name          Tile index column name
    --ogrdriver, -f        OGR driver name to use
    --t_srs                Target SRS of tile index
    --a_srs                Assign SRS of tile with no SRS to this value
    --write_absolute_path  Write absolute rather than relative file paths
    --stdin, -s            Read filespec pattern from standard input

This command will index the files referred to by `filespec` and place the result in `tindex`. The `tindex` is a vector file or database that will be created by `pdal` as necessary to store the file index. The type of the index file can be specified by specifying the OGR code for the format using the `--ogrdriver` option. If no driver is specified, the format defaults to “ESRI Shapefile”. Any filetype that can be handled by OGR is acceptable.

In vector file-speak, each file specified by `filespec` is stored as a feature in a layer in the index file. The `filespec` is a glob pattern. and normally needs to be quoted to prevent shell expansion of wildcard characters.

## tindex Merge Mode

    $ pdal tindex merge <tindex> <filespec>

This command will read the existing index file `tindex` and merge the points in the indexed files that pass any filter that might be specified, writing the output to the point cloud file specified in `filespec`. The type of the output file is determined automatically from the filename extension.

    --tindex         OGR-readable/writeable tile index output
    --filespec       Build: Pattern of files to index. Merge: Output filename
    --lyr_name       OGR layer name to write into datasource
    --tindex_name    Tile index column name
    --ogrdriver, -f  OGR driver name to use
    --bounds         Extent (in XYZ) to clip output to
    --polygon        Well-known text of polygon to clip output
    --t_srs          Spatial reference of the clipping geometry.

## Example 1:

Find all LAS files via `find`, send that file list via STDIN to `pdal tindex`, and write a SQLite tile index file with a layer named `pdal`:

    $ find las/ -iname "*.las" | pdal tindex create index.sqlite -f "SQLite" \
        --stdin --lyr_name pdal

## Example 2:

Glob a list of LAS files, output the SRS for the index entries to EPSG:4326, and write out an SQLite file.

    $ pdal tindex create index.sqlite "*.las" -f "SQLite" --lyr_name "pdal" \
        --t_srs "EPSG:4326"