Select to view content in your preferred language

How to extract info from LAS files, using SDK for .NET

605
2
09-22-2022 12:51 AM
GabrieleMarta
New Contributor

Hi,

I have to obtain many informations from .las files containing LiDAR data.
I have to do that programmatically through my .NET Add-In (written in C#) for ArcGIS Pro 2.9, possibly without loading them in TOC as layers.
These information are natively accessible from the Catalog pane of ArcGIS Pro, by going on the Properties of the specific LAS file and on the Details of it, as shown below.

GabrieleMarta_0-1663832688894.png

GabrieleMarta_1-1663832719122.png

I've tried exploring some class of the SDK like CIMLASDatasetLayer, LASDatasetLayer, LasDatasetItem, but none of them helped me much.
For instance, I don't know how to get the list of Classification codes (Unassigned, Groud, etc) or the LAS version (1.2) or the Generating Software (TerraScan).

Tags (3)
0 Kudos
2 Replies
GKmieliauskas
Esri Regular Contributor

Hi,

Have you tried PointCloudSceneLayer class? It has GetAvailableClassFlagsAndLabels method where you can read properties from one of your print screens.

"Classification flag values provide a secondary description of the point cloud data (beyond their classification code). Flags include Synthetic, key-point, withheld, and overlap. Less common are scan direction and edge of flight line. Classification flags are used in a PointCloudFilterDefinition to filter which point cloud data is rendered (or not)"

More info you can find here:

https://github.com/esri/arcgis-pro-sdk/wiki/ProConcepts-Scene-Layers 

 

0 Kudos
GabrieleMarta
New Contributor

Hi and thank you for the response.

If I load my LAS file in TOC in a project, the corresponding layer type in debug is LASDatasetLayer (ArcGIS internal class) and not a PointCloudSceneLayer. The same is also true for the related layer definitions.

GabrieleMarta_0-1663952669038.png

However, even if I managed to do some conversion, I would not know how to read the information of the Las version... I don't know if it is really possible through the SDK.

0 Kudos