readers.text#

The text reader reads data from ASCII text files. Each point is represented in the file as a single line. Each line is expected to be divided into a number of fields by a separator. Each field represents a value for a point’s dimension. Each value needs to be formatted properly for C++ language double-precision values.

The text reader expects a header line to indicate the dimensions are in each subsequent line. There are two types of header lines.

Quoted dimension names#

When the first character of the header is a double quote, each dimension name is assumed to be surrounded by double quotes. A single separator character is expected between the dimension names (spaces are stripped). If no separator character is found, a space is assumed. You can set the [separator] character if it differs from that in the header. Note that PDAL requires dimension names that consist only of alphabetic characters and underscores. Edit the header line or use the [header] option to set the dimension names to ones that PDAL understands.

Unquoted dimension names#

The first non alpha-numeric character encountered is treated as a separator between dimension names. The separator in the header line can be overridden by the [separator] option.

Each line in the file must contain the same number of fields as indicated by dimension names in the header. Spaces are generally ignored in the input unless used as a separator. When a space character is used as a separator, any number of consecutive spaces are treated as single space and leading/trailing spaces are ignored.

Blank lines are ignored after the header line is read.

Default Embedded Stage

This stage is enabled by default

Streamable Stage

This stage supports streaming operations

Example Input File#

This input file contains X, Y and Z value for 10 points.

X,Y,Z
289814.15,4320978.61,170.76
289814.64,4320978.84,170.76
289815.12,4320979.06,170.75
289815.60,4320979.28,170.74
289816.08,4320979.50,170.68
289816.56,4320979.71,170.66
289817.03,4320979.92,170.63
289817.53,4320980.16,170.62
289818.01,4320980.38,170.61
289818.50,4320980.59,170.58

Example #1#

[
    {
        "type":"readers.text",
        "filename":"inputfile.txt"
    },
    {
        "type":"writers.text",
        "filename":"outputfile.txt"
    }
]

Example #2#

This reads the data in the input file as Red, Green and Blue instead of as X, Y and Z.

[
    {
        "type":"readers.text",
        "filename":"inputfile.txt",
        "header":"Red, Green, Blue",
        "skip":1
    },
    {
        "type":"writers.text",
        "filename":"outputfile.txt"
    }
]

Options#

filename

text file to read, or “STDIN” to read from standard in [Required]

count

Maximum number of points to read. [Default: unlimited]

override_srs

Spatial reference to apply to the data. Overrides any SRS in the input itself. Can be specified as a WKT, PROJ or EPSG string. Can’t use with ‘default_srs’. [Default: none]

default_srs

Spatial reference to apply to the data if the input does not specify one. Can be specified as a WKT, PROJ or EPSG string. Can’t use with ‘override_srs’. [Default: none]

header

String to use as the file header. All lines in the file are assumed to be records containing point data unless skipped with the [skip] option. [Default: None]

separator

Separator character to override that found in header line. [Default: None]

skip

Number of lines to ignore at the beginning of the file. [Default: 0]