๐ฐ๏ธ Point Cloud Ingestion (LAZ / LAS)
MIRROR supports ingestion, querying, and experimentation with LiDAR-based point cloud data using an integrated Jupyter Notebook environment powered by PDAL and PostgreSQL.
This enables users to work with .laz / .las files interactively, visualize metadata, and validate storage inside the Postgres database using spatial extensions.
โ What's Included in This Feature
๐ฆ A custom Jupyter container (citymap-jupyter-pdal) with:
- PDAL
- PostgreSQL client libraries
- Notebook support
๐ง PostgreSQL is extended with:
pointcloud-
pointcloud_postgis -
๐ Full integration with your MIRROR database using the shared Docker network:
citymap-network
๐ Mounted notebooks/ folder where users can:
- Upload
.lazor.lasfiles - Create PDAL ingestion pipelines
- Write point clouds directly into PostgreSQL
- Run SQL for validation
๐งช Accessing the Notebook
Once the setup is complete, go to:
Youโll land on the fully functional Jupyter Notebook environment pre-connected to the database.
Folder Structure
Make sure you have the following:
๐งฌ Reusable Ingestion Pipeline with PDAL
The Jupyter notebook uses pdal pipeline with the writers.pgpointcloud driver to ingest .laz files into PostgreSQL.
Example logic (within the notebook):
{
"pipeline": [
"sample_data.laz",
{
"type": "writers.pgpointcloud",
"connection": "host='db-pg' dbname='citydb_v4' user='citymap' password='test'",
"table": "lidar_building_patch",
"srid": 4326
}
]
}
Note
You can customize the table name, CRS (SRID), or add filters as needed.
๐ฅ Demo Video
Want to see it in action?
Volume and Storage
Point cloud ingestion can be disk intensive โ ensure Docker has enough memory and volume capacity allocated.
Testing
Always start with a small .laz file to confirm pipeline logic before scaling to large datasets.