The pdal::Stage
object encapsulates the reading, writing, and
filtering capabilities for PDAL.
Readers provide data to Pipeline operations. Readers might be a simple file type, like readers.las, a complex database like readers.oci, or a network service like readers.greyhound.
Note
Readers provide pdal::Dimension
to Pipeline. PDAL attempts
to normalize common dimension types, like X, Y, Z, or Intensity, which are
often found in LiDAR point clouds. Not all dimension types need to be fixed, however.
Database drivers typically return unstructured lists of dimensions.
Writers consume data provided by Readers. Some writers can consume any dimension type, while others only understand fixed dimension names.
Note
Some writers can only consume known dimension names, while PDAL doesn’t yet have a registery for the dimension types, you can see the base dimension types at https://github.com/PDAL/PDAL/blob/master/include/pdal/Dimension.hpp
Filters operate on data as inline operations. They can remove, modify, reorganize, and add points to the data stream as it goes by. Some filters can only operate on dimensions they understand (consider filters.reprojection doing geographic reprojection on XYZ coordinates), while others do not interrogate the point data at all and simply reorganize or split data.