Skip to main content

Python point cloud processing library — the Python alternative to PDAL

Project description

pywolken

PyPI version Python License: MIT

Python point cloud processing library — the Python alternative to PDAL.

No C++ compilation required. Pure Python with NumPy, SciPy, laspy, pyproj.

Installation

pip install pywolken

Optional extras:

pip install pywolken[raster]    # + GeoTIFF export (rasterio)
pip install pywolken[viz]       # + matplotlib, plotly
pip install pywolken[dask]      # + parallel processing
pip install pywolken[mesh]      # + 3D mesh (open3d)
pip install pywolken[all]       # everything

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

  • English — complete API reference, all filter options, examples, and architecture guide
  • Deutsch — vollständige API-Referenz, alle Filteroptionen, Beispiele und Architektur

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.1.tar.gz (67.1 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.1-py3-none-any.whl (57.8 kB view details)

Uploaded Python 3

File details

Details for the file pywolken-0.1.1.tar.gz.

File metadata

  • Download URL: pywolken-0.1.1.tar.gz
  • Upload date:
  • Size: 67.1 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.1.tar.gz
Algorithm Hash digest
SHA256 56ef7e60dbe82fff7cb5fbe522cc5be35f9054c731f77bbcea98a28eb7f646ed
MD5 8b88d9f87d7168fd374e069131724c8f
BLAKE2b-256 74eaf8600fedfb4ad83ae2aba71786cd9a3b59dbb056aba46e2773918355e03c

See more details on using hashes here.

File details

Details for the file pywolken-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pywolken-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 57.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8b343de4b4e2d6b3d6051315193083cb2cf37c2a66c9b288ed76c5720bcc229e
MD5 30ee832bffd2fa48fc87e01fa4951d91
BLAKE2b-256 9caf0aae3d8c7a732be256d5d6e977f42b6170eeb9303ed6dbd2664be77e35af

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