Solved

How to convert an Esri Line-Shape to an Esri Point-Shape using FME Desktop?

  • 12 September 2018
  • 18 replies
  • 9 views

Badge

How to convert an Esri Line-Shape to an Esri Point-Shape using FME Desktop?

The distance between the resulting points should be 1 meter.

The lines have vertex points and they are not straight.

Which transformer(s) would be best?

icon

Best answer by kfigur 13 September 2018, 16:08

View original

18 replies

Userlevel 4

Have you looked at the Chopper transformer? You can set it to chop by length.

I recommend reading the docs first.

Badge

Have you looked at the Chopper transformer? You can set it to chop by length.

I recommend reading the docs first.

I have tried this transformer already. But if I set in the writer, the geomtrie type as 'shape_point' I get the error '--this file does not accept lines' and an empty shape file.

 

And I need the exact distance of 1m between the resulting points. With this transformer I get only a approximated distance

 

 

 

Userlevel 1
Badge +21

Try a densifier to add extra vertices, followed by a chopper with mode set to by vertex and max vertices set to 1. This should turn your lines to points.

If your lines are not straight, what do you expect in terms of vertex spacing at the corners?

Userlevel 4

Here's a possible solution based on the DistanceChopper from the FME Hub:

Result when chopping a 13.4 m line into 1 m segments:

See also this template for FME 2018.1: distancechopper.fmwt

Badge

Try a densifier to add extra vertices, followed by a chopper with mode set to by vertex and max vertices set to 1. This should turn your lines to points.

If your lines are not straight, what do you expect in terms of vertex spacing at the corners?

If I add the densifier I get points and the most of them have the right distance of 1m.

 

But at the corners is the distance between the resulting points not exactly 1m, usually less.

 

 

Userlevel 4
If I add the densifier I get points and the most of them have the right distance of 1m.

 

But at the corners is the distance between the resulting points not exactly 1m, usually less.

 

 

If you need exact lenghts then I don't think the Densifyer is going to be much help, the lengths will still be somewhat approximate, as you've discovered.

 

Userlevel 2
Badge +17
Just to confirm the requirement. The distance (1 meter) between the resulting points should be measured along the original line? Or the distance should be a straight distance between the resulting points regardless of what shape the original line is?

 

 

Userlevel 1
Badge +21
If I add the densifier I get points and the most of them have the right distance of 1m.

 

But at the corners is the distance between the resulting points not exactly 1m, usually less.

 

 

I'm not clear how you expect the corners to be treated, are you expecting the corner vertex to disappear and the distance to between the points to be 1m between the adjacent vertices along the line (yellow) or the points to be 1m apart still (red)

 

 

Badge
Just to confirm the requirement. The distance (1 meter) between the resulting points should be measured along the original line? Or the distance should be a straight distance between the resulting points regardless of what shape the original line is?

 

 

The distance between the resulting points should be 1m. Even if the original line is not straight and contains corners.

 

 

Badge

I'm not clear how you expect the corners to be treated, are you expecting the corner vertex to disappear and the distance to between the points to be 1m between the adjacent vertices along the line (yellow) or the points to be 1m apart still (red)

 

 

I need the distance of 1m between the resulting points along the yellow line

 

 

Userlevel 4

Here's a possible solution based on the DistanceChopper from the FME Hub:

Result when chopping a 13.4 m line into 1 m segments:

See also this template for FME 2018.1: distancechopper.fmwt

Here's with an angled input line, exact point distance is preserved through the angle:

 

Userlevel 4

Here's a possible solution based on the DistanceChopper from the FME Hub:

Result when chopping a 13.4 m line into 1 m segments:

See also this template for FME 2018.1: distancechopper.fmwt

Here's with a complex-ish multi-vertex polyline:

 

 

 

This is my first post, so please, be easy on me :)

Here is my solution. It requires usage of a loop, so it is a bit more advanced. Here a quick tutorial, how to create a loop:

https://www.youtube.com/watch?v=fD6jeHZlPc8 (please note that this tutorial is using older version, so the interface is slightly different. Right now it is possible to perform all necessary operations from Transformers menu.

Here are screens from my workbench:

And the result:

Userlevel 4

This is my first post, so please, be easy on me :)

Here is my solution. It requires usage of a loop, so it is a bit more advanced. Here a quick tutorial, how to create a loop:

https://www.youtube.com/watch?v=fD6jeHZlPc8 (please note that this tutorial is using older version, so the interface is slightly different. Right now it is possible to perform all necessary operations from Transformers menu.

Here are screens from my workbench:

And the result:

This is a variant of what the DistanceChopper on the FME Hub does (looping over the Snipper), very nicely explained --thanks for sharing :-)
Badge

This is my first post, so please, be easy on me :)

Here is my solution. It requires usage of a loop, so it is a bit more advanced. Here a quick tutorial, how to create a loop:

https://www.youtube.com/watch?v=fD6jeHZlPc8 (please note that this tutorial is using older version, so the interface is slightly different. Right now it is possible to perform all necessary operations from Transformers menu.

Here are screens from my workbench:

And the result:

Thank you very much for your help. This variant works well. I have only one Problem left.

 

At some lines the distance between the first and the second point is not 1m. What could be the problem?

 

 

 

Userlevel 4
Thank you very much for your help. This variant works well. I have only one Problem left.

 

At some lines the distance between the first and the second point is not 1m. What could be the problem?

 

 

 

I'm guessing it's not the first and second point, but rather the last vertex that's less than 1m from the second-to-last.

 

Or, to put it differently, how would you like to space the points on a line with a lenght that isn't perfectly divisible by 1m?
Badge
I'm guessing it's not the first and second point, but rather the last vertex that's less than 1m from the second-to-last.

 

Or, to put it differently, how would you like to space the points on a line with a lenght that isn't perfectly divisible by 1m?
Oh sorry, you are right. My fault! Thanks for your advise :)

 

 

 

Userlevel 2
Badge +17

This is my first post, so please, be easy on me :)

Here is my solution. It requires usage of a loop, so it is a bit more advanced. Here a quick tutorial, how to create a loop:

https://www.youtube.com/watch?v=fD6jeHZlPc8 (please note that this tutorial is using older version, so the interface is slightly different. Right now it is possible to perform all necessary operations from Transformers menu.

Here are screens from my workbench:

And the result:

If the distance between two adjacent points are measured along the original line, the LineDivider (from FME Hub) could also be available.

 

 

Reply