Solved

get a given point distance


Badge

Hello,

I am interested in how to get a given point distnce with FME.

I have points arranged by counter (pontID is ascending) and I want to get the next point's distance. I tried NeighborFinder, but the problem is that sometimes an other point is closer,so it gives a wrong distance.

Thanks!

icon

Best answer by ebygomm 5 March 2020, 15:52

View original

6 replies

Userlevel 4

Lots of different ways, but one way could be

  1. Sorter on point ID, in ascending, numerical order
  2. LineBuilder to get a line from all the points
  3. Chopper, mode = By Vertex, max vertices = 2 to split into individual line segments
  4. LengthCalculator to get segment lengths
Userlevel 1
Badge +10

Another way, if the points are in order

  • Coordinate extractor to get coordinates if they don't already exists as attributes
  • Attributecreator with adjacent feature mapping turned on look at one subsequent feature
  • Arithmetic expression to calculate distance using the coordinates of the existing feature, and the coordinates of the adjacent feature
Userlevel 1
Badge +10

A neighbourfinder with a group by then?

Badge

Lots of different ways, but one way could be

  1. Sorter on point ID, in ascending, numerical order
  2. LineBuilder to get a line from all the points
  3. Chopper, mode = By Vertex, max vertices = 2 to split into individual line segments
  4. LengthCalculator to get segment lengths

i tried this way, but I got in trouble to match the points with the line attributes, cause the line builder gets only the first point's datas...

Userlevel 4

i tried this way, but I got in trouble to match the points with the line attributes, cause the line builder gets only the first point's datas...

Can you post a small sample dataset here? Or at least post some screenshots that details the issue?

Badge +3

Like so. Use LineBuilder to also act kind of like a Chopper by pairing the Points first by making a copy of the Points with ID incremented by +1, and then creating Line segments. The LengthCalculator will the measure the distance between the line vertices.

*EDIT* And just realised how similar this solution is to the concepts from @david_r and @ebygomm! Without meaning to, I ended up sketching a hybrid of the 2 solutions. In theory @ebygomm 's solution will be a bit more efficient, although I'm not sure whether NeighborFinder's distance is a Geographic or Cartesian calculation? I went to building Lines instead to make sure the right length for the coordinate system could be extracted. I think the Help implies it is a Cartesian distance only whereas I think the solution you wanted was a Geographic distance that accounted for surface curvature?

 

Reply