Embedding Metadata into Point Cloud Data for an Orchard

Hi Cesium Community,

I’m a beginner in Cesium and I have a point cloud dataset of an orchard in .las format. I need to embed metadata, such as IDs, to each tree and be able to display this metadata when hovering or clicking on the tree.

I’ve tried a workaround by creating points in GeoJSON to overlay on each tree, but this method isn’t ideal.

I have a few questions regarding the best approach to achieve this:

  1. Should I use a Python library like pylas along with machine learning clustering methods to segment each tree?
  2. Is it better to use software like CloudCompare to segment the trees and embed the metadata?

Ultimately, I want the data to be displayed similarly to “Cesium OSM Buildings,” with interactive metadata.

Please see the attached link to the orchard dataset.

Thank you for your help!


There are several options for embedding metadata into point clouds. Some details may depend on the exact workflow that is used for creating the point cloud data, and how the data should be used in client applications.

One general question is how the metadata information (i.e. the IDs in your case) should be assigned to the data, or transported from the source data into the actual tileset. You mentioned that you have LAS files as the input. There already are some forms of “metadata” in LAS that can be transported through the tiling process. This functionality has recently been introduced, and is described in Preserving More Metadata for Point Clouds Using 3D Tiles – Cesium

The LAS specification lists a few predefined “Point Data Record Format Classification Values”, in Table 17 of https://www.asprs.org/wp-content/uploads/2019/03/LAS_1_4_r14.pdf . This includes classification values “64-255 | User Definable” (as the last row in this table). It might be possible to use this, to assign classifications to the trees, which should then show up in the tiled data as well. Do you think that this could be a viable approach for you?