copc-rust
Pure-Rust COPC reader, writer, and shared core primitives for cloud-optimized point clouds. No C libraries, no build scripts; internal unsafe is limited to read-only memory mapping of writer spill files.
Crates
| Crate | Description |
|---|---|
copc-core |
Shared COPC metadata, hierarchy entries, voxel keys, bounds, streaming LAS records, and errors |
copc-reader |
COPC header/info parsing, recursive hierarchy access, and chunked-LAZ point iteration |
copc-writer |
COPC writer with source-trait point access, native LOD distribution, mmap spill support, and streaming LAS/LAZ intake |
Usage
use CopcFile;
let file = open?;
for entry in file.hierarchy_walk
use ;
let mut reader = from_path?;
for point in reader.points?
use ;
convert_las_to_copc_streaming?;
Supported Now
- Public COPC hierarchy types for availability, indexing, and tile serving
- COPC info VLR and recursive hierarchy page parsing
- Chunked-LAZ point iteration in
copc-reader - All-points, LOD-selected, and bounds-selected reader point iteration
- Source-trait writer API for caller-owned point storage
- Streaming LAS/LAZ-to-COPC conversion through a disk-backed mmap spill
- LAS 1.4 point formats 6 and 7 with LAZ variable-size chunks
- Interior-node representative points for native LOD reads
Not Yet Supported
- Materialized point-column convenience APIs
Testing
Checked-in external COPC fixtures from PDAL and QGIS are exercised by:
License
MIT OR Apache-2.0