Is there an official specification for the XYZ format for point clouds?
I've been searching all over and I didn't find it. I've seen that there are some files which line contains:
points coordinates, (X Y Z for each point )
others contain coordinates plus colors, (X Y Z R G B for each point )
there are even others that have an "Intensity" parameter.
I need to consider all the possibilities.
E57 Format The E57 file format is a compact, vendor-neutral format for storing point clouds, images, and metadata produced by 3D imaging systems, such as laser scanners.
XYZ files are ASCII database files, where each column in a row is delimited by some separator character. Each row represents a point within a point cloud. Each column represents a point component for the point. The data from the Point Cloud XYZ file is read from or written to a point cloud geometry on an FME feature.
PCD File Format. The PCD (Point Cloud Data) is a file format for storing 3D point cloud data. It was created because existing formats did not support some of the features provided by the PCL library.
The current accepted types are: I - represents signed types int8 (char), int16 (short), and int32 (int) U - represents unsigned types uint8 (unsigned char), uint16 (unsigned short), uint32 (unsigned int) F - represents float types.
A PCD file is an image saved in the proprietary Kodak Photo CD (PCD) format. It stores a digital copy of an actual photograph that has been scanned using Kodak's photo processing hardware and stored on a compact disc (CD).
No, there is not an official specification about the .xyz format for point clouds.
The .xyz format can be considered as part of a more general type of file formats: ASCII point cloud. You can consider members of this group many other extensions like: .asc,.txt,.pts
The problem is that because of that lack of specification the contents of the file may vary according to the creator.
The most logical thing would be that the first 3 columns always represent the X,Y,Z coordinates and the rest of the columns represent some scalar field associated to that point (Maybe R,G,B values, or Nx,Ny,Nz, etc)
If you want to consider all the possibilities you would need to take in account not only a variable number of columns but also the ASCII character used for separating each column and the possible existence of 1 or more "header" lines at the beggining of the file.
The best ASCII point cloud loader that I'm aware of is the included in CloudCompare.
Here is a screenshot of the dialog:
And a link to the source code.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With