I am working on converting point cloud data from the E57 format to the LAS format. However, I’ve encountered an issue with the intensity component.
In the original E57 file, the intensity values range between 0 and 1. After the conversion, the intensity values in the LAS file become a constant integer with five digits.
I would appreciate any guidance or suggestions on how to retain the original intensity format during the conversion process.
Best answer by virtualcitymatt
I was able to reproduce the issue with fake data (2023.1). I get values of 32768, is that what you get?
I can see in my log that FME is trying to convert the datatype from Real32 (or Real32) into UInt16.
In Las intensity is defined as a 16 bit unsigned integer (e.g., 0 - 65536).
I’m not sure how FME is converting the float to uint data but it looks like whatever it’s doing it not correct.
it looks like you will need to do the calculation yourself, there are two options:
The PointCloudComponentTypeCoercer is easy but it will set the range of intensity to be the min and max of whatever dataset is going into it.
The PointCloudExpressionEvaluator here is better because it will spread out all of the data between 0 and 1 across the whole range of the intensity range.
Did this help you find an answer to your question?
This post is closed to further activity.
It may be a question with a best answer, an implemented idea, or just a post needing no comment.
If you have a follow-up or related question, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.
I was able to reproduce the issue with fake data (2023.1). I get values of 32768, is that what you get?
I can see in my log that FME is trying to convert the datatype from Real32 (or Real32) into UInt16.
In Las intensity is defined as a 16 bit unsigned integer (e.g., 0 - 65536).
I’m not sure how FME is converting the float to uint data but it looks like whatever it’s doing it not correct.
it looks like you will need to do the calculation yourself, there are two options:
The PointCloudComponentTypeCoercer is easy but it will set the range of intensity to be the min and max of whatever dataset is going into it.
The PointCloudExpressionEvaluator here is better because it will spread out all of the data between 0 and 1 across the whole range of the intensity range.
We use 3 different kinds of cookies. You can choose which cookies you want to accept. We need basic cookies to make this site work, therefore these are the minimum you can select. Learn more about our cookies.