Page 1 of 1

select point cluster by scalar field

Posted: Tue Dec 17, 2019 10:15 am
by matknaak
Hi,

I have got a point cloud comprising points on fractures of a rocky outcrop. The point cloud has been analysed allready so that there is only points left representing a single fracture set, and it has been classified so that there is a scalar field showing an individual number for each cluster of points belonging to a single fracture plane. So I can manually select a cluster and create a plane or surface. But is there a way to select all clusters and create planes for each cluster in one go for the entire dataset (without automating or programming involved)? If I use segmentation-label connected comp. and then the tool fit plane, I get a resonable result, but not for each cluster - some clusters will be combined. Basically, the segmentation has allready been done and is written to a scalarfield, but I seem to be unable to "select children by" a defined scalar field.

Any comments are much appreciated - thanks a lot!

cheers

Mat

Re: select point cluster by scalar field

Posted: Wed Dec 18, 2019 7:26 pm
by daniel
There's no automated way to do that with all the different (integer) values in a scalar field.

You can only do it value by value with the 'Edit > Scalar fields > Filter by value' tool. And as you seemed to have guessed already, the only way to do it in an automated way would be to use a command line script...

Re: select point cluster by scalar field

Posted: Thu Dec 19, 2019 1:58 pm
by matknaak
Hi Daniel,

thanks for your quick response. I forgott to mention that in my case the scalar values are only few discrete values (1 to 10). Nontheless, I appreciate there is currently no way. However, I could imagine that quite a few classification tools might result in scalar values clustering a point cloud. So maybe worth taking this down onto the long wish list...
As for my current problem I played a bit more with the segmentation-label connected comp. tool and with the settings for the octree level, and it gave very happy results. My problem as a dump geologist is though that I don't fully understand the concept of the octree levels. Is there anywhere where I can look it up so I can understand what I am doing?

Many thanks

mat

Re: select point cluster by scalar field

Posted: Tue Aug 18, 2020 4:37 am
by cloudnine
Hi Mat,

Keen to know how you went. Are you using DSE to determine discontinuity clusters? I too am trying to work with the mapped discontinuity clusters determined from DSE and then to calculate their dip and dip-direction. DSE only seems to output dip & dip-direction of the normal vector for each point of the point cloud, not for the clusters of points that share the same orientation.

Interested to know how you went about it using the segmentation-label connected comp tool. Did you find a way beyond this method to more efficiently do it?

Cheers,
Tristan

Re: select point cluster by scalar field

Posted: Sat Apr 06, 2024 10:07 pm
by adririquelme
Hello Tristan. The DSE program calculates the clusters of each discontinuity set using the DBSCAN algorithm, and assigns an integer number to each cluster within each discontinuity set. The orientations of the clusters can be calculated by fixing the normal vector obtained by the principal pole, or by calculating the plane that best fits each cluster. To do this, you need to deactivate the "fix normal vector" option in the cluster analysis.

The reason for fixing the normal vector is to force all cluster planes to be parallel, thus enabling the calculation of normal spacings and persistences.

Best regards;

Adri

Re: select point cluster by scalar field

Posted: Tue Apr 09, 2024 6:59 pm
by daniel
So the Connected Components tool uses a simple 'connected components labeling algorithm' applied to a regular grid. And we simply use the cells of the cloud octree considered as a given level of subdivision to convert the cloud to a grid.

The octree is a recursive subdivision of the cloud in 8 cubes, so at a level N, you can roughly imagine that the cloud will be subdivided by 2^N along all dimensions. And you have to consider the largest dimension of the bounding box, divided by 128 at level 7 for instance.