Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pywolken-0.1.0.tar.gz (67.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pywolken-0.1.0-py3-none-any.whl (57.6 kB view details)

Uploaded Python 3

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

Hashes for pywolken-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9ea57036b75c175a3bd2190cea504c32752d5c6a41b673fc59a6531e5422c1fc
MD5 17ca05283add71354c7eaf5924b9ba10
BLAKE2b-256 ee8f10eccde07684cc6edf968022af6cca58d20fe9d431f6ee3f17d970df9fb0

See more details on using hashes here.

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

Hashes for pywolken-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2371c849a8a46b9ddd9b446d2f42fe27ea8ee9279461b684aae443b9a88a1cdd
MD5 348aca7f137a54e84c3b2c9a338eed3d
BLAKE2b-256 485238f7917108669ac0aa175bc8d0722883257d6c647e8a7aa667cc1e77de0b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page