Skip to main content

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

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:


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..?
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.

 

 


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!

 

 


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?

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


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.

 

 


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


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.

 

 


Reply