Skip to main content
Solved

How to split aggregates based on points/ nodes?

  • December 12, 2016
  • 9 replies
  • 76 views

Hi all,

I am trying to find a way to split an aggregate feature based on nodes or points. The aggregate is an aggregation of lines.

I tried PointOnLineOverlayer, it does a fine job splitting where the nodes are but it deaggregates the input and outputs every single line it seems. I need output of the original aggregates only broken up where the nodes are.

I tried Clipper. The output remains the same. It seems points are rejected as clippers.

Any suggestions for a transformer to use? Please and thanks

Best answer by markatsafe

splitnetwork-2016.fmwAssuming that your original line work forms a topological network: You can clip (Clipper) the network at the node intersections and then use the NetworkTopologyBuilder to identify the connected parts. Use the GeometryExtractor and GeometryReplacer to preserve the original line segment geometry that was mangled during clipping

View original
Did this help you find an answer to your question?

9 replies

erik_jan
Contributor
Forum|alt.badge.img+18
  • Contributor
  • December 12, 2016

I tried some transformers and the only way I could accomplish this is using a LineJoiner, to join lines per aggregate, before adding the PointonLineOverlayer.

I hope that helps (not sure the output is what you need). See image:


erik_jan wrote:

I tried some transformers and the only way I could accomplish this is using a LineJoiner, to join lines per aggregate, before adding the PointonLineOverlayer.

I hope that helps (not sure the output is what you need). See image:

Hi! Thanks for your reply. Can you please let me know what you mean by ID of aggregate? It's not the Object ID is it..?

erik_jan
Contributor
Forum|alt.badge.img+18
  • Contributor
  • December 12, 2016
fariyafarhad wrote:
Hi! Thanks for your reply. Can you please let me know what you mean by ID of aggregate? It's not the Object ID is it..?
I mean any attribute that can be used to avoid lines from different aggregates to be joined by the LineJoiner transformer. This could be the OBJECTID.

 

 


erik_jan wrote:
I mean any attribute that can be used to avoid lines from different aggregates to be joined by the LineJoiner transformer. This could be the OBJECTID.

 

 

I used Counter before LineJoiner and grouped by that ID. Thanks so much for your suggestion. This worked for me!

 

 


erik_jan wrote:

I tried some transformers and the only way I could accomplish this is using a LineJoiner, to join lines per aggregate, before adding the PointonLineOverlayer.

I hope that helps (not sure the output is what you need). See image:

Hello @erik_jan

 

Sorry I am coming back to this after a few days. I did not notice this before as I got bogged down by some other work. But I came back to this today and I just realized that line joiner splits lines that have a 3-way connection. How can I stop this from happening? Or is there a workaround? Many parts of my aggregate has 3-way connections which were originally aggregated. They need to preserved through the LineJoiner. Any suggestions please?

Forum|alt.badge.img+2
  • Best Answer
  • December 19, 2016

splitnetwork-2016.fmwAssuming that your original line work forms a topological network: You can clip (Clipper) the network at the node intersections and then use the NetworkTopologyBuilder to identify the connected parts. Use the GeometryExtractor and GeometryReplacer to preserve the original line segment geometry that was mangled during clipping


markatsafe wrote:

splitnetwork-2016.fmwAssuming that your original line work forms a topological network: You can clip (Clipper) the network at the node intersections and then use the NetworkTopologyBuilder to identify the connected parts. Use the GeometryExtractor and GeometryReplacer to preserve the original line segment geometry that was mangled during clipping

Hi! Thank you for your answer. I am trying this out for my scenario. What is the purpose of the PointOnLineOverlayer at the beginning? It seems like the slipper is what's chopping the network according to the nodes.

 

 


Forum|alt.badge.img+2
  • December 19, 2016

NetworkTopologyCalculator is pretty sensitive about the quality of the data. Makes sure that there are no aggregrates or multi-part geoemtries


markatsafe wrote:

splitnetwork-2016.fmwAssuming that your original line work forms a topological network: You can clip (Clipper) the network at the node intersections and then use the NetworkTopologyBuilder to identify the connected parts. Use the GeometryExtractor and GeometryReplacer to preserve the original line segment geometry that was mangled during clipping

Thank you! Your suggestion seemed to have worked for me. I am still a bit fuzzy about why both a PointOnLineOverlayer and a Clipper is necessary. I am sure I will understand more as I take more time to study these transformers and understand how they work.

 

 


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