This workshop was initially prepared for FOSS4G Europe 2025 but used on many other occasions. We want this workshop to be live and updated, so feel free to contribute if better options rise up, new standards get publiushed and errors or typos are recognized.
The workshop begins by exploring the ASPRS standard, helping you understand essential concepts like point classifications, return numbers, and other fundamental attributes that define LiDAR data. You’ll learn how to correctly interpret these attributes, assess data quality, and leverage them for more insightful analysis.
Moving beyond the basics, we’ll dig into powerful open-source workflows with PDAL, GRASS, WhiteboxTools for data reading, manipulation and spatial processing, and with tools like QGIS, Potree and pybabylonjs for dynamic 3D rendering. We’ll also introduce TileDB as a robust storage option to manage point-clouds as massive dataframes. Along the way, we’ll tackle real-world tasks like gridding, interpolation, vectorization, and classification, highlighting effective approaches to manage and visualize large-scale point clouds in a reproducible manner.
By integrating Python scripts with these specialized tools, you’ll discover how to automate complex processing chains and generate stunning outputs that bring your LiDAR data to life. While basic Python knowledge is helpful, it’s not mandatory — anyone eager to learn new techniques can follow along. By the end of this hands-on workshop, you’ll not only grasp the core concepts behind LiDAR data but also have the practical skills to handle and present it in exciting, visually compelling ways.
- PointCloudAcrobatics.ipynb: Notebook used for the first part of the tutorial, focused on theory, data processing, and local point cloud visualization.
- WebPointCloudAcrobatics.ipynb: Notebook deals with some commonly used libraries for Web based point cloud visualization.
The data used was downloaded from the CLSS portal, which provides LiDAR data for Slovenia. The exact tiles used were:
- GKOT_461_100.laz
- GKOT_462_100.laz
- GKOT_461_101.laz
- GKOT_462_101.laz