The RXP reader read from files in the RXP format, the in-house streaming format used by RIEGL Laser Measurement Systems GmbH.


This software has not been developed by RIEGL, and RIEGL will not provide any support for this driver. Please do not contact RIEGL with any questions or issues regarding this driver. RIEGL is not responsible for damages or other issues that arise from use of this driver. This driver has been tested against RiVLib version 1.39 on a Ubuntu 14.04 using gcc43.

Dynamic Plugin

This stage requires a dynamic plugin to operate

Streamable Stage

This stage supports streaming operations


To build PDAL with rxp support, set RiVLib_DIR to the path of your local RiVLib installation. RiVLib can be obtained from the RIEGL download pages with a properly enabled user account. The RiVLib files do not need to be in a system-level directory, though they could be (e.g. they could be in /usr/local, or just in your home directory somewhere).


This example rescales the points, given in the scanner’s own coordinate system, to values that can be written to a las file. Only points with a valid gps time, as determined by a pps pulse, are read from the rxp, since the sync_to_pps option is “true”. Reflectance values are mapped to intensity values using sensible defaults.

        "type": "readers.rxp",
        "filename": "120304_204030.rxp",
        "sync_to_pps": "true",
        "reflectance_as_intensity": "true"
        "type": "writers.las",
        "filename": "outputfile.las",
        "discard_high_return_numbers": "true"

We set the discard_high_return_numbers option to true on the writers.las. RXP files can contain more returns per shot than is supported by las, and so we need to explicitly tell the las writer to ignore those high return number points. You could also use filters.python to filter those points earlier in the pipeline.



File to read from, or rdtp URI for network-accessible scanner. [Required]


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


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


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


Boolean to switch from file-based reading to RDTP-based. [Default: false]


If “true”, ensure all incoming points have a valid pps timestamp, usually provided by some sort of GPS clock. If “false”, use the scanner’s internal time. [Default: true]


If “true”, in addition to storing reflectance values directly, also stores the values as Intensity by mapping the reflectance values in the range from min_reflectance to max_reflectance to the range 0-65535. Values less than min_reflectance are assigned the value 0. Values greater max_reflectance are assigned the value 65535. [Default: true]


The low end of the reflectance-to-intensity map. [Default: -25.0]


The high end of the reflectance-to-intensity map. [Default: 5.0]