Skip to main content
Question

Generate areas boundaries with fixed amount of features inside

  • September 15, 2019
  • 3 replies
  • 68 views

Forum|alt.badge.img

Hi Community

 

In ArcGIS i create lines and points and for each project i need to create Area's that contain a (almost) fixed amount of features inside the area. The Boundary of the Areas that are generated should not intersect any other features. For example i have a total of 33 features and i want to make area's (zones) that that have about 10 features inside and 0 features that are not fully within. Below i show a rough example of my data and another example of my goal.

keep in mind that i do not know before hand how many features are going to be processed. it can be up to 50k or just a few hundred. but i always want groups of about 10 features.

The shape of the area's boundary should be as generalized as possible (no complex shapes) as this might happen when you try to force a fixed amount of features inside.

How would you aproach this problem? I have tried it myself several times and i always get stuck somewhere down the road. I need some advice or inspiration to start over from scratch agian. So please let me know what your workflow would consist of, what key elements would you use to achieve my goal?

My Data (example)

The result i need to get (polygons or just lines as a boundary is fine too)

 

I am looking forward to see your take on this with your creativity!

 

My regards

Nick J

3 replies

jdh
Contributor
Forum|alt.badge.img+28
  • Contributor
  • September 16, 2019

You could look at this in two different ways.

 

 

Clustering problem, use k-means or another hard centroid/connectivity based algorithm where the number of clusters = number of features/average features per cluster.

 

Once the clusters have been established use a HullAccumulator to create the bounding polygons.

See https://knowledge.safe.com/content/idea/59941/k-means-point-clustering-using-fme.html for an implementation of k-means point clustering in FME (PointClusterer Custom transformer). It would have to be adapted to take lines as wells as points as input.

 

 

Space partitioning problem, dividing the space into non-overlapping regions. https://en.wikipedia.org/wiki/Space_partitioning

I'm not aware of any existing implementations in FME, but examples of some of the algorithms are available online in both R and Python.


Forum|alt.badge.img
  • Author
  • September 17, 2019
jdh wrote:

You could look at this in two different ways.

 

 

Clustering problem, use k-means or another hard centroid/connectivity based algorithm where the number of clusters = number of features/average features per cluster.

 

Once the clusters have been established use a HullAccumulator to create the bounding polygons.

See https://knowledge.safe.com/content/idea/59941/k-means-point-clustering-using-fme.html for an implementation of k-means point clustering in FME (PointClusterer Custom transformer). It would have to be adapted to take lines as wells as points as input.

 

 

Space partitioning problem, dividing the space into non-overlapping regions. https://en.wikipedia.org/wiki/Space_partitioning

I'm not aware of any existing implementations in FME, but examples of some of the algorithms are available online in both R and Python.

Thank you so much for you comment. I will look into these topics, may i ask how you learned of this information? is it part of your study?

I previously used a spatial sorting with the hilbert curve, but i didnt end up with the result i need.


jdh
Contributor
Forum|alt.badge.img+28
  • Contributor
  • September 17, 2019
nick-j wrote:

Thank you so much for you comment. I will look into these topics, may i ask how you learned of this information? is it part of your study?

I previously used a spatial sorting with the hilbert curve, but i didnt end up with the result i need.

While I did learn about clustering in school, mostly it's just experience.


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings