Skip to main content

I have a large e57 point cloud and I hope to view it in the Potree viewer.

After transforming e57 format into the LAS format, the Potree converters (I tried potree 1.7,  2.0 and entwine) all crashed on the LAS file from FME, without much useful error reported.

 

I was using all default options in FME (one reader to read in e57, on LAS writer to write the file), no parameter adjusted.

 

Entwine reported

Maximal extents: d(-2147483648, -2147483648, -2147483648), (2147483647, 2147483647, 2147483647)]
Scaled bounds:   ,(-2147483648, -2147483648, -2147483648), (-2147483648, -2147483648, -2147483648)]
Encountered an error: Bounds are too large for the selected scale

(PoTree converter just crashed without output)

 

I'm aware that both Potree and Entwine are single-man open-source projects so this might well be their problem instead of anything to do with FME. However, if anyone has experience in e57->las for large LiDAR clouds; and/or PoTree viewer then please let me know - (I might not been solving the right problem!)

Could be a bad header? I found this but it's a couple of years old, seems like there might be a way to fix it if the bounds are really the issue: https://github.com/connormanning/entwine/issues/107

 

Alternatively you could try and create a really small pointcloud file (from the e57) and write it out to LAS. if the problem is still there you can create an issue on the PoTree github, sharing the sample and see if someone can help you out with whats wrong: https://github.com/potree/potree/issues

 


Could be a bad header? I found this but it's a couple of years old, seems like there might be a way to fix it if the bounds are really the issue: https://github.com/connormanning/entwine/issues/107

 

Alternatively you could try and create a really small pointcloud file (from the e57) and write it out to LAS. if the problem is still there you can create an issue on the PoTree github, sharing the sample and see if someone can help you out with whats wrong: https://github.com/potree/potree/issues

 

Hi I have checked the output LAS with lasinfo.exe. The header makes sense at least to my human eyes. Entwine's notrustheader does not work.

If you look at entwine's error output, those are not real numbers, all those numbers are actually max(int32).

 

I think you mentioned a good way forward - how can I create a LAS output that's just a tiny fraction of the source e57 file and test it out? I'm quite new to FME, but I imaging there should be a way of wrapping up say the first 10,000 points in e57 into an LAS and test that?

 

Actually if I can divide the source e57 (6gb) into a few chuncks (say 1gb each) first, and build them out in potree or entwine then merge the resultant octree it could work too. The source e57 has no classification or annotation or whatever - so nothing will be lost if i split it up into chuncks.

 

Is there any resource about spliting point clouds?


Hi I have checked the output LAS with lasinfo.exe. The header makes sense at least to my human eyes. Entwine's notrustheader does not work.

If you look at entwine's error output, those are not real numbers, all those numbers are actually max(int32).

 

I think you mentioned a good way forward - how can I create a LAS output that's just a tiny fraction of the source e57 file and test it out? I'm quite new to FME, but I imaging there should be a way of wrapping up say the first 10,000 points in e57 into an LAS and test that?

 

Actually if I can divide the source e57 (6gb) into a few chuncks (say 1gb each) first, and build them out in potree or entwine then merge the resultant octree it could work too. The source e57 has no classification or annotation or whatever - so nothing will be lost if i split it up into chuncks.

 

Is there any resource about spliting point clouds?

FME Has a PointCloudThinner which you can use to get the first x points, FME also has a PointCloutSplitter which you can use, I'm not sure how easy it would be to split a pointcloud up so that each one has a fairly equal number of points, however, it should be doable. Here is an example which tiles up a PointCloud based on an input grid

https://community.safe.com/s/article/tiling-point-cloud-data

 

Good luck!


Reply