I am seeking a way to generate surfaces (polygons in a 3D space) of different heights from LIDAR point clouds, whose spacing is 4 points per square meter. The typical application is like roofs, which may include holes, due to different heights.
However, most tools, which I can find, only generate the boundaries or footprints.
ArcGIS: the examples are like: http://desktop.arcgis.com/en/arcmap/10.3/manage-data/las-dataset/lidar-solutions-data-area-delineation-from-lidar-points.htm and Creating boundary polygon shapefile from set of LAS files using ArcGIS Desktop?
LAStools lasboundary.exe at http://www.cs.unc.edu/~isenburg/lastools/
Python mayavi package: the example is like: https://stackoverflow.com/questions/33376657/from-point-cloud-to-surface-using-python
My initial thought is to do conversion from grid to polygons. Las file can be easy to convert to TIN, and then to grid, but grids are missing height information. Thus, the way is difficult to delineate detailed roof structures.
I also have a 30-centimeter and a 1-meter resolution orthophotos, if these do help, but no stereo photos.
The concrete expectation is like the following picture. The multi-color points are LIDAR point cloud, and the pink lines, which are 'digitized manually', indicate our expectation. However, it is easy to get the outside building boundary (the selected blue-green line), once buildings are classified, but no roofs with different heights (smaller inner polygons) are delineated.