geotrellis / geotrellis-pointcloud

GeoTrellis PointCloud library to work with any pointcloud data on Spark
Apache License 2.0
26 stars 10 forks source link

Prioritize Point Promotion when building EPT pyramid #71

Open echeipesh opened 4 years ago

echeipesh commented 4 years ago

image

On the left, we can see the triangulation interpolation of a region west of Lake Champlain. This is contrasted to a more conventional inverse distance weighted (IDW) reconstruction on the right.

The TIN appears to give a more textured model, and that model seems to more accurately represent the ground. This is an artifact of the 2.5-dimension reconstruction, which is in contrast to a true 3-d surface fit, which would capture the upper surface of the tree canopy. The TIN model captures treed areas as a noisy height field, and we happened to sample on grid points that favored the ground level. Our sampling would be sensitive to minor variations in the sampling grid as a result. On the other hand, the IDW model does a much more thorough job of capturing tree cover, and it would do so stably (with little variation if we were to perturb the sampling grid).

This issue is about the noisy height field:

Normally it would be possible to filter point cloud to remove canopy returns. However, the result above was generated from the intermediate levels of the EPT pyramid.

When the EPT pyramid is built the choice of which points get promoted is random. At higher, less resolute, zoom levels the only points present may be from tree returns. It may not be practical to query at lower zoom level because the volume of points returned will push the latency ultimately resulting in a timeout.

This issue could be avoided if there was a way to control which points get promoted when EPT tree is constructed. Several strategies are possible:

Note: This is a placeholder issue for work that would have done on entwine