ArcGIS API for Python

Dev Summit 2020: Use AI to extract data from LiDAR point clouds

You can automatically label and extract data from LiDAR point clouds using the Learn module of ArcGIS API for Python. This is possible because the Learn module now includes the ready-to-train PointCNN neural network. You can easily train PointCNN to detect the objects your organization requires.

At this year’s Developer Summit, Dmitry Kudinov demonstrated how to use a PointCNN model. He completed the workflow he earlier described in the blog PointCNN: replacing 50,000 man hours with AI but, this time, he used ArcGIS API for Python to achieve similar results with streamlined coding and data processing.


Dmitry trained the PointCNN model to detect and label wires and utility poles in an airborne LiDAR point cloud. Previously, this was the most labor-intensive part of identifying the electric utility line’s safety corridor for monitoring vegetation and encroachments.

You can watch the presentation below. Following that is a summary of the process and links to additional resources.

The process starts with the raw LiDAR point cloud as seen below.

Raw point cloud
The raw LiDAR point cloud

Next, train the PointCNN model to detect utility wires and poles.

Training the PointCNN model to detect wires and poles
Training PointCNN model to detect wires and poles

The next image shows the utility lines and poles generated by the PointCNN model (on bottom) compared to the lines and poles labelled manually (on top). Manual labels took thousands of hours to create, whereas the PointCNN model completed in a few minutes.

Comparison of manual labeling vs predictive model
The PointCNN model results are comparable to manual labeling but take fraction of the time.

See these resources for information on using ArcGIS API for Python:

About the author

Full-time tech writer, part-time Highland Games groupie. I work with several product teams at Esri to test user experiences and translate developer-speak into English.

Leave a Reply

Please Login to comment

Hello, I am learning to use PointCNN recently, but I have encountered serious errors in following the steps in the video, ————————————————————————— Exception Traceback (most recent call last) in —-> 1 pc=PointCNN(data) /opt/anaconda3/envs/tftestpro/lib/python3.7/site-packages/arcgis/learn/models/ in __init__(self, data, pretrained_path, **kwargs) 76 77 if not HAS_FASTAI: —> 78 raise_fastai_import_error(import_exception=import_exception, message=”This model requires module ‘torch_geometric’ to be installed.”, installation_steps=’ ‘) 79 80 self._backbone = None /opt/anaconda3/envs/tftestpro/lib/python3.7/site-packages/arcgis/learn/_utils/ in raise_fastai_import_error(import_exception, installation_steps, message) 93 if message is None: 94 message = “This module requires fastai, PyTorch, torchvision and scikit-image as its dependencies.” —> 95 raise Exception(f”””{import_exception} \n\n{message}\n{installation_steps}”””) 96 Exception: Traceback (most recent call last): File “/opt/anaconda3/envs/tftestpro/lib/python3.7/site-packages/arcgis/learn/models/”, line… Read more »

Next Article

ArcGIS Enterprise Q&A highlights from UC 2020

Read this article