PCD (Point Cloud Data) Quick Facts
Jump to:
Format Type Identifier |
PCD |
Reader/Writer |
Both |
Licensing Level |
Professional and above |
Dependencies |
None |
Dataset Type |
Folder or File |
Feature Type |
File base name |
Typical File Extensions |
.pcd |
Automated Translation Support |
Yes |
User-Defined Attributes |
No |
Coordinate System Support |
No |
Generic Color Support |
No |
Spatial Index |
Never |
Schema Required |
No |
Transaction Support |
No |
Geometry Type Attribute |
pcd_type |
Encoding Support | No |
PCD Geometry Support
Geometry |
Supported? |
aggregate | no |
circles |
no |
circular arc |
no |
donut polygon |
no |
elliptical arc |
no |
ellipses |
no |
line |
no |
none |
no |
point |
no |
point cloud |
yes |
polygon |
no |
raster |
no |
solid |
no |
surface |
no |
text |
no |
z values |
yes |
Supported Component Types
PCD only supports numeric data in its point clouds, so text-based data cannot be saved in this format. The supported component types in PCD are:
- Signed and unsigned 1-byte integers
- Signed and unsigned 2-byte integers
- Signed and unsigned 4-byte integers
- 4-byte floating point numbers
- 8-byte floating point numbers
Components with Special Semantics
PCD can support point clouds with arbitrarily named components. Components with certain names will be treated with special meaning as described in the table below.
Component Name |
Meaning |
---|---|
x | Spatial coordinate, x dimension |
y | Spatial coordinate, y dimension |
z | Spatial coordinate, z dimension |
normal_x | Normal vector, x component |
normal_y | Normal vector, y component |
normal_z | Normal vector, z component |
intensity | |
color_a | Color, Alpha component, UInt8 |
color_r | Color, Red component, UInt8 |
color_g | Color, Green component, UInt8 |
color_b | Color, Blue component, UInt8 |
Color
PCD supports color with a 4-byte rgb or rgba component; this contains the same information as the group of color_red, color_green, color_blue, and color_alpha components.
The reader will automatically split an rgb or rgba field into the 3 separate components so FME can correctly handle the color information. The reader will also create a color_alpha component if the input PCD has the rgba field instead of an rgb field. Since each byte of the color field maps to a single color channel, each component will have the type UInt8.
On write, color components will be packed into a single color field: if color_alpha is not present, an rgb field will be generated (instead of an rgba field). Any color component not present in the cloud will have its value set to 0 by default. PCD defaults color to a 4-byte floating point type field, and this behavior is maintained in the writer (therefore, color values may appear unexpectedly).
Supplying color fields in a handwritten PCD can also be done using the 3 color_red, color_green, and color_blue fields set to unsigned 1-byte fields. The PCD reader will pass these components as-is to FME, where their color will be treated natively.