Overview of the E57 format

The E57 format for point cloud storage consists of two parts:

  • A header, which points to an XML-encoded description of the dataset, including references to where the data is stored in the file

  • The point data, as a linear list of records. Each point has a location and various attributes.

For more information about the specifics of E57, you can visit the libe57 website at http://libe57.org/.

Decoding E57 data

Using the TLcdE57ModelDecoder

Program: Using TLcdE57ModelDecoder to decode a point cloud from a .e57 file
TLcdE57ModelDecoder e57Decoder = new TLcdE57ModelDecoder();
ILcdModel e57Model = e57Decoder.decode("file.e57");

E57 model structure

The decoder produces a model that contains unspecified elements, and that can only be used for visualization.

The TLcdE57ModelDescriptor contains most of the .e57 header information.

The TLcdE57ModelDescriptor also has a data type. You can use its properties to style the LIDAR data with ILcdExpression instances in TLspPlotStyle. For more information about LIDAR data styling with ILcdExpression, see How to customize the styling of a LIDAR point cloud.

The E57 format does not require that files contain a spatial reference. If available, the reference specified in the file will be used.

If the file does not contain a spatial reference, the model decoder will use its model reference decoder to determine the spatial reference. Consult the class javadoc of TLcdE57ModelDecoder for more information.

Reducing the number of loaded points

If you want to load a file that is just too big, but you still want to see something, you can use setMaximumNumberOfPoints() to set a maximum number of points to decode. The decoder will decode at most this number of points, taken randomly from the whole file. As such, you see a lower-resolution version of the data.