๐ŸŒฉ๏ธ
LAZ 1.4 ยท COPC ยท PDAL ยท Three.js 3D

LiDAR Point Clouds,
Queried at Cloud Scale

GeoQ reads LAZ 1.4 and COPC (Cloud-Optimized Point Cloud) files via the DuckDB PDAL extension โ€” applying spatial filters, SQL analytics, and exporting results, all without downloading the full file.

Try It Now โ†’ See 3D Viewer

What You Can Do

Full SQL power over LAZ/COPC point clouds โ€” locally or streaming from cloud object storage.

๐Ÿ“ฆ
LAZ 1.4 & COPC Support
Read any conformant LAZ 1.4 or Cloud-Optimized Point Cloud file. COPC's spatial octree enables efficient range-request streaming โ€” only the tiles you need are fetched.
๐Ÿ”ฒ
Bounding Box Spatial Filter
Pass --bbox "minX,minY,maxX,maxY" to push the spatial predicate into the PDAL reader. Only matching points are returned โ€” zero over-read.
๐Ÿ”บ
WKT Polygon Filter
Supply an arbitrary WKT polygon via --filter-wkt for precise area-of-interest clipping beyond simple rectangles.
๐Ÿ—„๏ธ
Full SQL Analytics
Use --sql to run any DuckDB query against the points table: GROUP BY classification, percentile intensities, density grids, or spatial aggregations.
โ˜๏ธ
S3 & HTTPS Sources
Point --source at an s3:// URI or HTTPS URL. DuckDB httpfs fetches only the byte ranges needed โ€” no full file download.
๐Ÿ–ฅ๏ธ
3D Web Visualization
Register a COPC source in the web UI and the Three.js point cloud viewer renders it in the browser with interactive pan, zoom, and classification coloring.
๐Ÿ“ค
Multi-Format Export
Results stream to CSV, GeoJSON, JSON, or native LAZ. Export a spatial subset back as a COPC-structured LAZ for downstream pipelines.
๐Ÿ”Œ
On-Demand Extension Loading
The PDAL extension is loaded the first time a point cloud command runs โ€” no manual install step. Community extensions are auto-downloaded from the DuckDB extension registry.

Point Cloud Commands

# Classify and count points in a bounding box from S3 geoq cloud point-cloud \ --source s3://lidar-bucket/city.copc.laz \ --bbox "-122.5,37.7,-122.3,37.9" \ --sql "SELECT classification, COUNT(*) as cnt, AVG(intensity) as avg_intensity FROM points GROUP BY classification ORDER BY cnt DESC" \ --output csv # Polygon filter for a specific building footprint geoq cloud point-cloud \ --source data.copc.laz \ --filter-wkt "POLYGON((-122.41 37.80,-122.40 37.80,-122.40 37.81,-122.41 37.81,-122.41 37.80))" \ --output geojson # Export a filtered subset as LAZ geoq cloud point-cloud \ --source https://cdn.example.com/survey.copc.laz \ --bbox "-122.5,37.7,-122.3,37.9" \ --output laz \ --out-file filtered.laz # Open interactive DuckDB SQL UI for live exploration geoq cloud point-cloud \ --source data.copc.laz \ --ui

Who Uses Point Cloud Queries?

๐Ÿ™๏ธ
Urban Planning & Digital Twins
Extract building heights, tree canopy coverage, and impervious surface ratios from city-wide COPC scans stored in S3 โ€” all without a full dataset download.
Urban LiDARDigital Twin
โšก
Infrastructure Inspection
Compare repeat LAZ surveys of powerline corridors or pipeline routes. Query point density changes and detect anomalies using SQL aggregations in seconds.
PowerlinesPipeline Survey
๐ŸŒฒ
Forestry & Biomass Estimation
Calculate canopy height models, tree density, and volume estimates from airborne LiDAR โ€” using SQL GROUP BY and spatial aggregations against COPC files on cloud storage.
ForestryBiomass

Ready to Query the Sky?

One command. Any LAZ or COPC file. Local or cloud. Start in seconds.

Get the CLI โ†’ โ† Back to Home