Determining different areas of different point density

Hints about any slim method, numerical or not, to quickly identify areas of pointclouds with different density as illustrated below.

In the picture there are two pointclouds, the upper half and the lower half, where the lower half has lower point density (not very visible, but anyway).

I would like to be able to quickly identify the two different areas (inside the circle) based on a density constraint and finally find the centroid of the respective areas that would emerge. Lets assume that the point distribution in each area are somewhat consistent, meaning that in this case there are not more than two different “densities” in the cloud.

In the picture the red circle would represent what I’m looking for, the area-center of the densest area (which in this case is the upper half).

Any ideas about strategy, or some spoky math which solves this kind of thing very fast?

// Rolf

Sounds like you might be interested in K-Means clusterring. I’m sure if @laurent_delrieu reads this, he’ll have something to add.

1 Like

If this was in image processing, I’d expand and blur the dots until they blended into smooth regions of different shades of grey, then threshold this.

Maybe something like this:
densitycontour.gh (8.6 KB)

2 Likes

Interesting approaches! Thank you for the hints. I’ll examine them carefully.

Although working on a very specific problem just now I will later probably go in the direction of working with image analysis, or convert some problems to images, and continue some of the problem solving from there. For now I have my hands dirty with pointclouds as the data source.

// Rolf

In order to work on density of point there is one method named
Gaussian Mixture Model


For me it is the same or similar to Kernel Density Estimation

These method are used to calculate Point Cloud density in Monté-Carlo analysis. I know there are used in spatial domain to calculate the density of debris falling on earth, there are many uses when density is changing greatly.
I put an example of that here

But I first calculate a surface associated to each point using Voronoi, each surface is converted to a density (1/m²) then this density is affected to the point, …
1 Like