I'm searching a way to project 2D (break)lines and polygons (they are in an Esri shapefile but I can translate them to something different if needed, like geojson for example) on a point cloud (seems a priori harder because of the definition of what is a projection on a point cloud) or a triangular mesh (*.ply format, or eventually other formats if you have better proposals) and thus having new points along the triangles edges with Z attributes.

These 2D lines need to have a new Z attribute (in geom or attribute table, I don't know if 3D shapes does exist) with altitude after the operation. And the mesh should also have these new points.

I'm using open sources softwares under Ubuntu like PDAL, PCL, CloudCompare, QGIS, SAGA-GIS and libraries (GDAL/OGR). GIS are not always nice with huge amount of 3D data. Command line interface-tools are welcome.

  1. About loading point file formats:
    • first: with *.ply files : QGIS can't open them. So I was trying to convert these in a vector format (*.shp) using for example CloudCompare (it's for the moment the only software I found that can do that). But it only keeps the vertices (I can't find a way to import a 3D triangular mesh, for example by importing the vertices in a shape and the triangles in an other, which would be a nice way to do that), not the edges of triangles from the original mesh *.ply, so I will have to re-run a triangulation algorithm (see below) within QGIS.
    • Then: with *.las files; using lastools' las2shp or the same export to *.shp process as before will also convert my points of interests to a vector format (shp). But I will then also need to run a triangulation algorithm. Prior to that, I've tried to mesh the *.las and then exporting the triangles vertices as explained for the *.ply format.
  2. Then, with the rendered points in vector format:
    • first: it's really slow (display and math on them), it take about minutes only to refresh the zoom level (I fear a little about math or SQL operations on them...)
    • Then: I'm stuck with the triangulation process. As some vertices are "under" others, they shouldn't be all used, i.e. all triangles faces should be oriented upwards because, AFAIK, GIS softwares can't handle true 3D; they uses 2D Delaunay. Geometric intersections are also only 2D in GIS softwares. So, if I intersect 2D lines with the triangles edges, I may have "errors" with edges that are below other and that shouldn't exist topologically.
      This is because two points that seem OK to be linked in 2D by the (2D)Delaunay triangulation should not necessarily be linked (some surely were not, for example in the previous 3D mesh generation process, outside GIS, e.g. in CC or meshlab) as they are really far each others in 3D (but not in 2D)!

After that I can't see how to get the Z value on an intersection between a triangle edge and my 2D line of interest which is really 2D and that I want to project on the triangles. Projecting, here, is of course the same as extracting the Z values from the triangles' edges.

  • You say you are using "open sources softwares under Ubuntu like PDAL, PCL, CloudCompare, QGIS, SAGA-GIS and libraries (GDAL/OGR)", but what GIS software have you actually used to try and answer your own question before posting it here? – PolyGeo Jul 17 '16 at 22:51
  • Mainly QGIS but installing "lastools" wasn't possible, I mean, these tools are dedicated to run on Windows, they are *.exe. And loading LIDAR data is a pain on my machine :( – s.k Jul 18 '16 at 2:47
  • Precisely how did you try to use QGIS to answer your own question before posting it here? – PolyGeo Jul 18 '16 at 4:04
  • @PolyGeo You are right, I updated the main post for more readability. – s.k Jul 19 '16 at 6:38
  • Is it really not possible? I didn't find any viable solution yet. – s.k Sep 23 '16 at 20:11

Your Answer


By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.