Skip to main content
Question

Generate a Point at ends of Aggregated Polyline


Forum|alt.badge.img

Hello everyone,

 

I am a bit puzzled with what I thought would be simple, but is giving me a difficult time.

 

I have aggregated polyline (Gas Main) and need to generate a point at any ends ( to buffer and capture streets within that buffer to show potential growth).

 

In review what I need:

 

A point to be created at any end of an aggregated polyline.

 

Exported in ArcMap Esri GDB

 

Thanks

22 replies

david_r
Evangelist
  • July 17, 2019

Have you tried using a CoordinateExtractor with index -1 (end) followed by a VertexCreator to create the point?


Forum|alt.badge.img
  • Author
  • July 17, 2019
david_r wrote:

Have you tried using a CoordinateExtractor with index -1 (end) followed by a VertexCreator to create the point?

Ive never used Coordinate Extractor. Will the -1 variable capture the multiple ends of the aggregated line? Dataset is gas main so I need only the points at the ends.

 

I can give this a try.


david_r
Evangelist
  • July 17, 2019

The CoordinateExtractor set at -1 will only give you the very last vertex of the aggregate geometry. If you need one point for each segment, insert a Deaggregator just before the CoordinateExtractor.


Forum|alt.badge.img
  • Author
  • July 17, 2019
david_r wrote:

The CoordinateExtractor set at -1 will only give you the very last vertex of the aggregate geometry. If you need one point for each segment, insert a Deaggregator just before the CoordinateExtractor.

Let me build it out now and give it a try. I will follow up in just a few minutes. Thanks!


Forum|alt.badge.img
  • Author
  • July 17, 2019
david_r wrote:

The CoordinateExtractor set at -1 will only give you the very last vertex of the aggregate geometry. If you need one point for each segment, insert a Deaggregator just before the CoordinateExtractor.

David it only created a single point but the polyline has a lot of end areas.

I need to generate a point at every endpoint so I can then buffer and capture streets within those buffers.

If I deaggregate wouldnt it make a point at the end of every segment which would be to many points.

 

This sure is a puzzle.


Forum|alt.badge.img
  • Author
  • July 17, 2019
david_r wrote:

The CoordinateExtractor set at -1 will only give you the very last vertex of the aggregate geometry. If you need one point for each segment, insert a Deaggregator just before the CoordinateExtractor.

as I thought I used deaggregator and it made to many points. I just need the ends after its all be aggregated.


Forum|alt.badge.img
  • Author
  • July 17, 2019

Here is sample of the data.

 

This polyline is Aggregated and I need to generate a point at each of those end points.


david_r
Evangelist
  • July 17, 2019
sav426 wrote:

as I thought I used deaggregator and it made to many points. I just need the ends after its all be aggregated.

What is an "end" in this context? I thought it was the final vertex of each segment, but do you perhaps mean topological ends, i.e. en final vertex of each segment that's unconnected to any other segments?

Forum|alt.badge.img
  • Author
  • July 17, 2019
david_r wrote:
What is an "end" in this context? I thought it was the final vertex of each segment, but do you perhaps mean topological ends, i.e. en final vertex of each segment that's unconnected to any other segments?

I posted a photo to try and clarify. Can you see it? When I deaggregate it generates way to many points. Perhaps Im using wrong terminology when I say "end".

 

I have to provide a list of names that appear within a buffer from the "ends" of mains. My plan was to generate a point and buffer than spatial join for results.

 

Hope the photo provides more clarity.


david_r
Evangelist
  • July 17, 2019
sav426 wrote:

I posted a photo to try and clarify. Can you see it? When I deaggregate it generates way to many points. Perhaps Im using wrong terminology when I say "end".

 

I have to provide a list of names that appear within a buffer from the "ends" of mains. My plan was to generate a point and buffer than spatial join for results.

 

Hope the photo provides more clarity.

Could you perhaps also upload an illustration where you've given a few examples of where the points should be in relation to the lines?


Forum|alt.badge.img
  • Author
  • July 17, 2019
david_r wrote:

Could you perhaps also upload an illustration where you've given a few examples of where the points should be in relation to the lines?

yes I have quick meeting then will upload that for you. Thanks


ebygomm
Influencer
Forum|alt.badge.img+31
  • Influencer
  • July 17, 2019

I would probably use a topology builder here and then test for nodes that only have 1 element in their list


david_r
Evangelist
  • July 17, 2019
ebygomm wrote:

I would probably use a topology builder here and then test for nodes that only have 1 element in their list

For "line terminations", that would be a great solution, yes.

Forum|alt.badge.img
  • Author
  • July 17, 2019

I just used Paint to mark points where "ends" of gas main is. It would be where the mains end generate a point at those ends. In other words where the main stops in real world a point there. I did not mark every end I hope this makes sense.


Forum|alt.badge.img
  • Author
  • July 17, 2019
ebygomm wrote:

I would probably use a topology builder here and then test for nodes that only have 1 element in their list

im not familiar with this. I will look into this. Do you have sample flow as listed below?

 

Thanks so much


jdh
Contributor
Forum|alt.badge.img+28
  • Contributor
  • July 17, 2019
sav426 wrote:

im not familiar with this. I will look into this. Do you have sample flow as listed below?

 

Thanks so much

TopologyBuilder with the following parameters

Aggregate Handling: Deaggregate

List Accumulation/Generate List From Input Edges: _edges (or anything really)

Advanced Parameters Generate From: End Nodes Only

 

 

Then on the Node port add a ListElementCounter (_edge) followed by a Tester (_element_count = 1)

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

TopologyBuilder with the following parameters

Aggregate Handling: Deaggregate

List Accumulation/Generate List From Input Edges: _edges (or anything really)

Advanced Parameters Generate From: End Nodes Only

 

 

Then on the Node port add a ListElementCounter (_edge) followed by a Tester (_element_count = 1)

you are amazing. Let me try now. Will update soon as I build it up


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

TopologyBuilder with the following parameters

Aggregate Handling: Deaggregate

List Accumulation/Generate List From Input Edges: _edges (or anything really)

Advanced Parameters Generate From: End Nodes Only

 

 

Then on the Node port add a ListElementCounter (_edge) followed by a Tester (_element_count = 1)

Hi JDH,

 

I am having trouble with following:

I place in List Builder but not sure what to pick. Choices are: _edge_id, _faces, _from_node, L or R edge or face

 

Do I pick any of them?

 

Advanced parameters (End Nodes Only_. Is that in a different transformer? That option is not available in TopologyBuilder

 

Thanks


jdh
Contributor
Forum|alt.badge.img+28
  • Contributor
  • July 17, 2019
sav426 wrote:

Hi JDH,

 

I am having trouble with following:

I place in List Builder but not sure what to pick. Choices are: _edge_id, _faces, _from_node, L or R edge or face

 

Do I pick any of them?

 

Advanced parameters (End Nodes Only_. Is that in a different transformer? That option is not available in TopologyBuilder

 

Thanks

What version of FME are you using, there's been significant GUI changes to the transformer recently.


ebygomm
Influencer
Forum|alt.badge.img+31
  • Influencer
  • July 17, 2019
sav426 wrote:

Hi JDH,

 

I am having trouble with following:

I place in List Builder but not sure what to pick. Choices are: _edge_id, _faces, _from_node, L or R edge or face

 

Do I pick any of them?

 

Advanced parameters (End Nodes Only_. Is that in a different transformer? That option is not available in TopologyBuilder

 

Thanks

In 2018 this is how I create points where a line doesn't meet any other line


Forum|alt.badge.img
  • Author
  • July 17, 2019
ebygomm wrote:

In 2018 this is how I create points where a line doesn't meet any other line

it wont write it, it ponly outputs a single point unless I explode the list but then it loses all coordinate attrbutes etc and wont let me readd. I havent been stumped like this in while :(


jovitaatsafe
Safer
Forum|alt.badge.img+11
sav426 wrote:

Ive never used Coordinate Extractor. Will the -1 variable capture the multiple ends of the aggregated line? Dataset is gas main so I need only the points at the ends.

 

I can give this a try.

Hi @sav426,

the -1 index is the last coordinate in the feature. There's a bit more information on the CoordinateExtractor here that explains the parameters in the transformer.


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