Available variables from LAS file

Hi,

I was wondering which variables were parsed by ION when importing a LAS file? I’ve managed to get the Intensity and Classification to work, but none of the multi-word ones like Scan Angle or GPS Time. Here is a reference I used for the LAS specification: http://www.asprs.org/wp-content/uploads/2019/07/LAS_1_4_r15.pdf

I am using the point format 6 with las version 1.4

Cheers
Juraj

Hi Juraj,

Intensity and Classification are the only two per-point properties preserved by our tilers at this time (see: Styling and Filtering 3D Tiles – Cesium).

Other users have requested support for additional/arbitrary properties, and we have a ticket open for it and do plan to support it in the future. I do not have a timeline for it at the moment, though.

For our own knowledge as we look to work on this, are there particular properties you care about in particular, or can you share what you are ultimately trying to achieve with those properties? Is the goal to display per-point metadata?

Thanks,
Matt

Hi Matt,

Thanks for a quick response. To be honest, I must have seen the page you referenced and totally forgot about the limitation.

I’m working on a research project, where we use flight trajectories for meteorological observations. I have hundreds of overlapping flights which I segment and cluster. From those I get a point cloud dataset with ~10M points and I want to geolocate and colorcode different atmospheric properties.

In order to make 3D tiles for Cesium, I’m exporting my data in LAS format and loading it to the ION platform. I was planning to use different fields in the LAS to encode my point data and then access these attributes from the Cesium3DTileStyle. By changing the style, I was hoping to dynamically filter and shade the result.

I guess this mean that I’m indeed trying to display per point metadata. :slight_smile: The relevant fields I wanted to use would be the ones with more bytes to them. I.e. the GPS Time, Point Source ID, Scan Angle, and the Red, Green, Blue channels present in the Point Data Record Format 7.

Any suggestions?

Cheers
Juraj

Hi Juraj,

Interesting, thanks for giving us more details on your project. I’ve added your use case to the ticket we’re using to track this feature (supporting arbitrary point cloud properties).

One point I should clarify from my previous post: the colors of points are preserved by the tiler as well. The colors should be used by default in CesiumJS, and here’s an example of how you can access them in a style.

You can also use those values to define custom fields like this. Click the Hide Points button to hide points that are close to white. This could allow you to dynamically shade and filter the points—so long as you were using one of the available properties, which I know is at best a partial solution given your use case.

There’s more information on styling with color data 3D Tiles spec: 3d-tiles/specification/Styling at main · CesiumGS/3d-tiles · GitHub

Are you just trying to style and filter points based on the per-point data, or do you also need users to be able to click on a point and, for example, see a box with numerical values of the per-point data? The latter is actually a more difficult change, because we don’t store the per-point data on the CPU; it’s only on the GPU when the tileset is loaded in. Styling points based on their data is done on the GPU, but actually retrieving those values and doing something with them on the CPU is harder.

Matt