The PCD Writer supports writing to Point Cloud Data (PCD) formatted files, which are used by the Point Cloud Library (PCL).

By default, compression is not enabled, and the PCD writer will output ASCII formatted data.

Default Embedded Stage

This stage is enabled by default

Streamable Stage

This stage supports streaming operations


X, Y, and Z dimensions will be written as single-precision floats by default to be compatible with most of the existing PCL point types. These dimensions can be forced to double-precision using the order option, but the PCL code reading this data must be capable of reading double-precision fields (i.e., it is not the responsibility of PDAL to ensure this compatibility).


When working with large coordinate values it is recommended that users first translate the coordinate values using filters.transformation to avoid loss of precision when writing single-precision XYZ data.





PCD file to write [Required]


Level of PCD compression to use (ascii, binary, compressed) [Default: “ascii”]


Decimal Precision for output of values. This can be overridden for individual dimensions using the order option. [Default: 2]


Comma-separated list of dimension names in the desired output order. For example “X,Y,Z,Red,Green,Blue”. Dimension names can optionally be followed by a PDAL type (e.g., Unsigned32) and dimension-specific precision (used only with “ascii” compression). Ex: “X=Float:2, Y=Float:2, Z=Float:3, Intensity=Unsigned32” If no precision is specified the value provided with the precision option is used. The default dimension type is double precision float. [Default: none]


If true, writes all dimensions. Dimensions specified with the order option precede those not specified. [Default: true]


An expression that limits points passed to a writer. Points that don’t pass the expression skip the stage but are available to subsequent stages in a pipeline. [Default: no filtering]


A strategy for merging points skipped by a ‘where’ option when running in standard mode. If true, the skipped points are added to the first point view returned by the skipped filter. If false, skipped points are placed in their own point view. If auto, skipped points are merged into the returned point view provided that only one point view is returned and it has the same point count as it did when the writer was run. [Default: auto]