Solved

I would like to know how I can transfer z-coordinates from nearest neighbour point features to all the vertices of a polyline in such a way that each vertex gets a unique z (so multiple unique z's per polyline)?


Badge

The Z-coordinates are not the same and varying. The points are located within a buffer of 0.1meter and extend over the entire area of the polyline. I have to join them based on a search area I think of 0.1 meters. The points are created from a las and transformed using the pointcloudtopointcourcer. As an example, I would like to have for this polyline which has 5 vertices 5 unique z-values from the closest points.

icon

Best answer by daveatsafe 24 October 2022, 22:52

View original

12 replies

Userlevel 2
Badge +17

Hi @sibe​,

It may be possible to do this with the NeighborFinder and some vertex manipulation in Python, but the simplest way to get the same result would be use the SurfaceDraper transformer with the original compete las file used for the Points/Lines input.

Badge

Thank you very much. I got it working :) One question, the breaklines parameter I don't understand. What is the breaklines feature used for?

Badge

It seems this tool is always using some kind of interpolation. Is it also possible to only take the closest point for the Z-coordinate?

Userlevel 2
Badge +17

Thank you very much. I got it working :) One question, the breaklines parameter I don't understand. What is the breaklines feature used for?

Breaklines are used to force the edges of the generated triangles into a desired orientation. For example, road edges are often used as breaklines, to ensure that edges in the triangulation follow the edge of the road. This gives you better definition in the resulting surface.

Userlevel 2
Badge +17

It seems this tool is always using some kind of interpolation. Is it also possible to only take the closest point for the Z-coordinate?

Please set the Interpolation to CONSTANT to use the Z value of the closest vertex.

Badge

Please set the Interpolation to CONSTANT to use the Z value of the closest vertex.

I tried that, but it seems it doesn't take the closest value in some instances. For this vertex it assigned a Z of +0.06, while the closest point was -0.149? The point was located within the surface tolerance of 0.25. Drape method set to VERTEX and existing elevation Replace Z.

Userlevel 2
Badge +17

Please set the Interpolation to CONSTANT to use the Z value of the closest vertex.

Try setting the surface tolerance to 0.

Badge

Please set the Interpolation to CONSTANT to use the Z value of the closest vertex.

That did it thank you

Badge

Hi, one more question regarding the constant interpolation in the surface draper tool. For the constant interpolation the documentation says: ''Interpolation method: CONSTANT: The z value of each output point is set to the z value of the closest vertex in the underlying model.'' Does this mean X, Y and Z is taken into account when the closest Z value is joined from the LAS to the 2D feature vertex? (surface tolerance is set to 0)

Userlevel 2
Badge +17

Hi, one more question regarding the constant interpolation in the surface draper tool. For the constant interpolation the documentation says: ''Interpolation method: CONSTANT: The z value of each output point is set to the z value of the closest vertex in the underlying model.'' Does this mean X, Y and Z is taken into account when the closest Z value is joined from the LAS to the 2D feature vertex? (surface tolerance is set to 0)

The X and Y are used to determine the closest vertex. The Z is used to set the elevation on the draped feature.

Badge

The X and Y are used to determine the closest vertex. The Z is used to set the elevation on the draped feature.

Just to clarify for me: Does this mean that when the constant interpolation method is used in the surface draper tool that no Delaunay triangulation is used? Or that Delauney Triangulation is used but only looking at X, Y to find the nearest neighbour as you stated. The Z is then copied based on X, Y nearest neighbour.

Userlevel 2
Badge +17

The X and Y are used to determine the closest vertex. The Z is used to set the elevation on the draped feature.

The Delauney triangulation is done in either case, to make use of the Surface Tolerance filtering. The nearest surface vertex in XY to the drapee vertex is used to supply the Z value.

Reply