Skip to main content

i would like to ask about Aggregaator transformer

 

i have several lines with intersection nodes with another lines

i used network topology calculator and aggregator combine by network id with generate list and it works great but my problem

when i am using deaggregate transformer or List Exploder to show again the attribute of each line ,

it has a list say for specific line consists from 3 line so it has three id for the three line .

 

but after i use list exploder ,i found in the inspector it does not know exactly which id of line relates to this segment ,it refers to the whole line (as this id ) ,when i choose the second id ,it refers to the same whole line .

but it should specifies ,which segment refers to this id not the whole line .

How could i solve it ?

i have another question about line combiner , after i tried to combin on attribute by network id ,break attribute yes ,it can not able to combine all the lines that has the same network id but aggregator can do that .

do any one have suggestion ,How could i let line Combiner work with combine on network id as Aggregator

FME 2018

Thanks for helping in advance

Once multiple lines are Aggregated, they form 1 single multi-part geometry, so the Attribution applies to all parts of that Geometry and will no longer be associated with specific parts.

You may want to try a different type of Aggregate Geometry: Paths.

Paths can be built with ShortestPathFinder or PathBuilder. Again, from my own very similar project to yours, I used PathBuilder to find a "single" aggregated line from the Branch End Point to the Branch-Mains Connection Point based on the NetworkTopologyCalculator NetworkIDs. This formed an Aggregate Path that still kept all the Attributes (as an ordered List) against the individual line segments that made up the Path, and reversing this aggregate (using PathSplitter) would put the attributes back against the individual line segments they came from.

Further, a tip from the forums showed my how to create a single line segemnt out of the Path Segments, by using GeometryRefiner.


Once multiple lines are Aggregated, they form 1 single multi-part geometry, so the Attribution applies to all parts of that Geometry and will no longer be associated with specific parts.

You may want to try a different type of Aggregate Geometry: Paths.

Paths can be built with ShortestPathFinder or PathBuilder. Again, from my own very similar project to yours, I used PathBuilder to find a "single" aggregated line from the Branch End Point to the Branch-Mains Connection Point based on the NetworkTopologyCalculator NetworkIDs. This formed an Aggregate Path that still kept all the Attributes (as an ordered List) against the individual line segments that made up the Path, and reversing this aggregate (using PathSplitter) would put the attributes back against the individual line segments they came from.

Further, a tip from the forums showed my how to create a single line segemnt out of the Path Segments, by using GeometryRefiner.

Thanks alot to guide me what should i do ,i will read about Path Builder and Geometry Refiner .Thanks for mentioning that.


If your requirement is to restore original attributes stored in a list generated by the Aggregator to each part when de-aggregating the aggregate feature with the Deaggregator, specify the list name to the List Attribute to Explode parameter in the Deaggregator.

Regarding the second question, if you need to preserve the original lines as parts of the resulting geometry after combining them with the LineCombiner, set Yes to the Preserve Lines as Path Segments parameter.

Be aware that the LineCombiner won't combine 3 or more lines belonging to the same group connected at the same node. "combining" is not equal to "aggregating".


If your requirement is to restore original attributes stored in a list generated by the Aggregator to each part when de-aggregating the aggregate feature with the Deaggregator, specify the list name to the List Attribute to Explode parameter in the Deaggregator.

Regarding the second question, if you need to preserve the original lines as parts of the resulting geometry after combining them with the LineCombiner, set Yes to the Preserve Lines as Path Segments parameter.

Be aware that the LineCombiner won't combine 3 or more lines belonging to the same group connected at the same node. "combining" is not equal to "aggregating".

thanks for explaining


Thanks alot to guide me what should i do ,i will read about Path Builder and Geometry Refiner .Thanks for mentioning that.

Apologies, I also forgot LineCombiner that @takashi also points outs as another method. Whilst I didn't use it to build my Network Branches, I have used it for similarly aggregating lines into Paths where the lines weren't ordered or had segments that were in the reverse direction. In the process it correctly places each Line in the right Path order, so long as the lines connect at the end points.

LineCombiner is great for when you need as the Output a single multi-part Line that is correctly drawn in one direction, and the "Preserve Lines as Path Segments" is set to "Yes" will preserve the component parts, put them in the right order, but also will add a flag attribute to say whether or not the Path segment is reversed.


Apologies, I also forgot LineCombiner that @takashi also points outs as another method. Whilst I didn't use it to build my Network Branches, I have used it for similarly aggregating lines into Paths where the lines weren't ordered or had segments that were in the reverse direction. In the process it correctly places each Line in the right Path order, so long as the lines connect at the end points.

LineCombiner is great for when you need as the Output a single multi-part Line that is correctly drawn in one direction, and the "Preserve Lines as Path Segments" is set to "Yes" will preserve the component parts, put them in the right order, but also will add a flag attribute to say whether or not the Path segment is reversed.

thanks , i have read about Line builder in one article but i have problem to use it ,because i believe to use it ,i should connect it to node port out from topology builder

when i use topology builder it should show me nodes

from node to node

i am using group by id in topology builder assume data clean yes , to provide intersection and crossing lines.

it looks great in Edge port but for Node port ,all nodes that i have from node 1 ... to node 2 or reverse ,only 2 number ,i am not sure why

 

if i use topology builder without group by i got intersection and self intersection that i do not need

i tried to use chopper before it ,it generates too much node for each single line,i tried use buffer , i found it shows me in inpector from and node to ,,both of them have the same node number .

i used topology builder no then yes ,it has lots of intersetion that i do not need ,best output for me from topology builder clean data yes only from edge port ,node port has node number 1 and two only

could u explain to me,how could i use topology builder with group by but without problem

thanks alot for helping

 


thanks , i have read about Line builder in one article but i have problem to use it ,because i believe to use it ,i should connect it to node port out from topology builder

when i use topology builder it should show me nodes

from node to node

i am using group by id in topology builder assume data clean yes , to provide intersection and crossing lines.

it looks great in Edge port but for Node port ,all nodes that i have from node 1 ... to node 2 or reverse ,only 2 number ,i am not sure why

 

if i use topology builder without group by i got intersection and self intersection that i do not need

i tried to use chopper before it ,it generates too much node for each single line,i tried use buffer , i found it shows me in inpector from and node to ,,both of them have the same node number .

i used topology builder no then yes ,it has lots of intersetion that i do not need ,best output for me from topology builder clean data yes only from edge port ,node port has node number 1 and two only

could u explain to me,how could i use topology builder with group by but without problem

thanks alot for helping

 

Sorry typo, I meant LineCombiner rather than LineBuilder! Fixed reply.


Reply