Hello,
in the first step you could use the 3DForcer to assign z-values...
Best regards,
Stefan
True, but thats just the easy part
Hi,
there is a custom transformer called
MeasureOrZValueInterpolator on the FME Store that I believe does what you need. It will assign given Z-values for the first and last vertex and interpolate the Z-value for all vertices in between.
David
Itay, when extracting the coordinates of the line, you actually use the index-parameter in the CoordinateExtractor to start from the beginning or from the end?
best regards Henrik
Hi Henrik,
when extracting the coordinates of the line, you actually use the index-parameter in the CoordinateExtractor to start from the beginning or from the end?
Correct, index 0 = start and index -1 =end
David, this might be helpful for populating the breakpoints inbetween if there are any, thanx
Thank you all, I think I can solve it now. I actually started doing a GeometryExtraction as WKT and was thinking of assigning z-values using regex and then use GeometryReplacer
well I guess that depends on how FME reads the line feature, since you chop it into individual vertices, the vertices order should remain intact.
Hi,
just to be clear, I suspect you can replace your whole process with the
MeasureOrZValueInterpolator, whether they contain more than 2 vertices or not:
David
Well, if you look in the store transformer you will see it uses many more transformers, that can lead to lessened preformance in comparison to the suggested process.
That is, naturally, if you are satisfied with the results of the suggested process.
It has not been my experience that the number of transformers necessarily bears any relation to performance. I wouldn't be able to say which solution was more efficient before having tested both with the data in question.
David
Hi,
One possible approach. I don't think it needs so many transformers when using FME 2013 SP2+.
1) Calculate common constants. dz = (Z-End - Z-Start) len1 = Length of the original line 2) Split the line into individual line segments, calculate their lengths. len2 i] = Length of line segment (i) (i = 0, 1, 2, 3...) 3) Calculate z-value of the first node of every segment. zn0] = Z-Start zai] = z[i - 1] + dz * (len2*i - 1] / len1) (0 < i) * linear interpolation 4) Transform every segment to each first node, append the end node (z = Z-End), change them to 3D points, and connect them into a line. If you are using FME 2013 SP2 or later, "Mutliple Feature Attribute Support" option of the AttributeCreator can be used effectively in 3).
FME Evangelist > FME 2013-SP2: Excelsior! > 4) AttributeCreator Updates
http://evangelism.safe.com/fmeevangelist115/
Takashi