Question

Apply attributes to lines from point data

  • 12 July 2016
  • 3 replies
  • 28 views

Badge

I have a base line dataset that I would like to attribute using a point dataset. The point dataset contains the start and end locations for many line segments, and the attribute values that I need to apply to the lines between the start and end points. The points overlie the lines accurately and I don't need to worry about picking the correct line for each point. However, I am struggling to work out how to apply the attribute between the start and end points. I have used a point on line overlay to create breaks in the lines at the correct places. I did find another similar question and a response that suggested to then use the topology builder transformer followed by a feature merger, using the node number and start or end node (output from the topology transformer) to make the join. However, that doesn't really seem to work. I am not sure that the start and end nodes are always the right way round. How do I apply the attributes to the segments between start and end points?


3 replies

Userlevel 2
Badge +12

I would try the PointonLineOverlayer first and if the points are not accurate enough the NeighborFinder transformer. Both transformer will allow you to transfer information from the points on the lines.

Badge

I would try the PointonLineOverlayer first and if the points are not accurate enough the NeighborFinder transformer. Both transformer will allow you to transfer information from the points on the lines.

I have tried that but I have large numbers of start and end points per line and the transformer does not reliably relate the appropriate attribute value (from the correct point) to the correct line segment. In some cases the value transferred is from some point way down the line somewhere. The points are very accurately located wrt to the lines so that is not a problem for consideration.

Userlevel 2
Badge +12

If you can filter out just the startpoint, you can match those to the startpoints of the line this way:

GeometryExtractor to store line geometry in an attribute

CoordinateExtractor (index 0 is start)

2DPointReplacer to replace line with point using X/Y

PointonPointOverlayer to match startpoints

GeometryReplacer to get back the line geometry.

Hope this helps.

Reply