I'm doing forestry analysis of some point cloud data and I have used segmentation procedures (i.e. watershed algorithm, etc..) to delineate the crown boundaries of individual trees in 2D.
The vector file that represents the tree crown boundaries has a 'Tree ID' field with unique values for each tree.
I want to use the original point cloud and the vectors as inputs and find the coordinates (x,y,z) of the local maxima (i.e. the tree tops) for each tree.
I'm aware of the option to rasterize the point cloud and compute the maxima in 2D using traditional zonal statistics, but want to test the departure between the points as located this way versus locating them directly from the cloud within the polygons.
Solutions in R, QGIS or Python would be preferred, though I also have access to ArcGIS, Matlab, and ENVI.