A LiDAR user is telling me that his LiDAR data acquired from my organization has only integer LiDAR in certain areas. He is requesting non-integer LiDAR for those areas. First, can anyone help explain integer vs non integer LiDAR to me?

  • 2
    What format is the data in? The LAS specification says that coordinates are stored as long integers and scaled by a factor stored in the header. For the values to be integer values, the scale would have to be >1. It's usually 0.01. – Rob Skelly Aug 11 '15 at 16:44

I imagine that "non-integer" (in this context, a very incorrect term) is indicating floating point in the z values. The [x,y,z] data is always collected as float, stored as integer and scaled using the X, Y or Z scale factor in the PUBLIC RECORD HEADER. Depending on the sensor, you can rely on decimal precision to 4-5 decimal places.

All of the LAS standards (1.0 - 1.4) state: "The scale factor fields contain a double floating point value that is used to scale the corresponding X, Y, and Z long values within the point records. The corresponding X, Y, and Z scale factor must be multiplied by the X, Y, or Z point record value to get the actual X, Y, or Z coordinate. For example, if the X, Y, and Z coordinates are intended to have two decimal point values, then each scale factor will contain the number 0.01." Most software for processing lidar will do this automatically during processing or export.

If the data is in an ASCII format and was rounded for storage purposes, it is possible that the data had a scaling factor applied (eg., [z * 10000] would scale to 16-bit) and the original data can be retrieved by merely dividing by the scaling factor. This should be indicated in any associated metadata.

It is also possible that the data was rounded for misguided processing purposes. If this is the case it is quite problematic and will cause considerable bias when using the data. Even if the data represents filtered bare earth, rounding the data will bring out the bias of the given filtering algorithm applied (eg., contour, tin, interpolation). If you discover that this data has just been rounded, and not scaled, I would request the raw data from the vendor and reprocess everything.

Keep in mind that, unless calibrated in post processing, the return intensity values are always 8-bit integer (0-255). Although, I believe that some vendors were looking into 16-bit intensity values but, the data would still be integer and not 32-bit or 64-bit floating point.


Storing in integer instead of floating point is just a trick to reduce the size of the dataset which has little impact in practice.

Maybe the user is talking about discrete vs full waveform data for the area, which makes more difference. In "discrete" LiDAR, one pulse coming back to the sensor is recorded as a set of "individual returns", while with full waveform the returning intensité is recorder in one graph with a very short time step.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.