Python point cloud processing library — the Python alternative to PDAL
Project description
pywolken
Python point cloud processing library — the Python alternative to PDAL.
No C++ compilation required. Pure Python with NumPy, SciPy, laspy, pyproj.
pip install pywolken
Features
- I/O: LAS/LAZ, PLY (ASCII + binary), CSV/TXT/XYZ, GeoTIFF
- 15 Filters: range, crop, merge, decimation, assign, expression, reprojection, ground classification (SMRF), height above ground, outlier removal, surface normals, voxel downsampling, DBSCAN clustering, raster colorization, spatial sorting
- JSON Pipelines: PDAL-compatible declarative processing chains
- Raster: DEM generation (IDW/mean/nearest/TIN), hillshade (Horn's method), GeoTIFF export
- 3D Mesh: 2.5D Delaunay triangulation, OBJ/STL/PLY export
- Streaming: Memory-bounded chunked processing for huge files
- Parallel: Optional Dask integration for multi-file and multi-chunk processing
- CLI:
pywolken info,pywolken pipeline,pywolken convert,pywolken merge
Quick Start
import pywolken
# Read any format (auto-detected)
pc = pywolken.read("terrain.laz")
print(pc) # PointCloud(45,266,951 points, dims=[X, Y, Z, Intensity, ...])
# Filter
ground = pc.mask(pc["Classification"] == 2)
# Write to any format
pywolken.write(ground, "ground.laz")
pywolken.write(ground, "ground.ply")
pywolken.write(ground, "ground.csv")
JSON Pipeline
import json
pipeline = pywolken.Pipeline(json.dumps({
"pipeline": [
"input.laz",
{"type": "filters.ground"},
{"type": "filters.range", "limits": "Classification[2:2]"},
{"type": "filters.decimation", "step": 10},
"output.las"
]
}))
count = pipeline.execute()
CLI
pywolken info terrain.laz
pywolken convert input.laz output.ply
pywolken pipeline workflow.json -v
pywolken merge tile1.laz tile2.laz -o merged.laz
Full Documentation
See docs/DOCUMENTATION.md for the complete API reference, all filter options, examples, and architecture guide.
Install Extras
pip install pywolken[raster] # + GeoTIFF export (rasterio)
pip install pywolken[dask] # + parallel processing
pip install pywolken[all] # everything
pip install pywolken[dev] # + pytest, ruff
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pywolken-0.1.0.tar.gz.
File metadata
- Download URL: pywolken-0.1.0.tar.gz
- Upload date:
- Size: 67.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ea57036b75c175a3bd2190cea504c32752d5c6a41b673fc59a6531e5422c1fc
|
|
| MD5 |
17ca05283add71354c7eaf5924b9ba10
|
|
| BLAKE2b-256 |
ee8f10eccde07684cc6edf968022af6cca58d20fe9d431f6ee3f17d970df9fb0
|
File details
Details for the file pywolken-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pywolken-0.1.0-py3-none-any.whl
- Upload date:
- Size: 57.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2371c849a8a46b9ddd9b446d2f42fe27ea8ee9279461b684aae443b9a88a1cdd
|
|
| MD5 |
348aca7f137a54e84c3b2c9a338eed3d
|
|
| BLAKE2b-256 |
485238f7917108669ac0aa175bc8d0722883257d6c647e8a7aa667cc1e77de0b
|