Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PDAL voxel filtering problems #4216

Open
Adiyasa2000 opened this issue Oct 27, 2023 · 2 comments
Open

PDAL voxel filtering problems #4216

Adiyasa2000 opened this issue Oct 27, 2023 · 2 comments

Comments

@Adiyasa2000
Copy link

Adiyasa2000 commented Oct 27, 2023

Hello

Our team is using PDAL for point cloud processing and facing a recurring issue. We're getting multiple layers of points at the same XY coordinates but with different Z values when using voxel filtering methods.

Additionally, we've noticed variations in results between .e57 and .las formats.

We seek your expertise to understand these issues and find solutions. Your insights will greatly help us improve our point cloud processing workflow and be much appreciated.

We ran the processing 4 times with following parameters;

  1. Voxelcentroidnearestneighbor. Voxelsize 0.002. Format .e57 -> .e57
  2. Voxelcentroidnearestneighbor. Voxelsize 0.002. Format .e57 -> .las
  3. Voxelcenternearestneighbor. Voxelsize 0.002. Format .e57 -> .e57
  4. Voxelcenternearestneighbor. Voxelsize 0.002. Format .e57 -> .las

The results can be seen in the attachments. The pictures show a cross-section of part of the point cloud, shown from the side.

Our main goal is to automate a processing flow for filtering and (preferably) classifying our point clouds. The data is used for situation plans, and therefor an accurate representation of terrain and a classification of objects is the goal.

Main questions;

  • What is the reason behind the multiple layers of points? And is there a way to resolve this?
  • What could be the reason behind the different results showing from the .e57 and the .las format?

Secondary question;

  • When setting the voxel size to 0.002 (2mm), a horisontal distance of multiple cm still results, why does this happen?

I've used PDAL in the Anaconda environment in Python 3.11. The scripts I've used have been made in Visual Studio Code, and ran with the Anaconda Prompt. The scripts are also attached (they 2 scripts have been modified into a total of 4 versions for the different format outputs and file names)(Also it wasn't possible to upload .json or .txt files, so the code for the scripts are shown on 2 picutres).

Voxelcenter .json script
VxlCenter_json

Voxelcenter .e57
VxlCenterNN_002_e57

Voxelcenter .las
VxlCenterNN_002_las

Voxelcentroid .json script
VxlCentroid_json

Voxelcentroid .e57
VxlCentroidNN_002_e57

Voxelcentroid .las
VxlCentroidNN_002_las

@abellgithub
Copy link
Contributor

abellgithub commented Nov 1, 2023

It's not clear to me what you're expecting that you think is wrong. If you're using voxel filtering, you should get points at different Z levels. A voxel is a 3-dimensional entity (a 3-D version of a pixel).

Note that the value ".002" isn't necessarily 2 mm. It's .002 units of the input point cloud. You can use pdal info --metadata to tell you the spatial reference information of the data (if any).

@chambbj
Copy link
Member

chambbj commented Nov 6, 2023

I don't know enough about e57 to comment there, but for LAS it seems like you'd need to set your scale appropriately to expect anything near that level of precision.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants