Skip to main content

pointclouds

Read, filter, decimate and grid point clouds (LAS / LAZ, and COPC/EPT) in Python.

A point cloud is a set of 3-D measured points - typically from lidar or photogrammetry - each carrying x, y, z plus per-point attributes such as intensity, return number and ASPRS classification. pointclouds reads the standard exchange formats, exposes the header without touching the records, and provides the operations a cloud needs before analysis or rendering: classification filtering, decimation, reprojection, and gridding to a raster surface (DSM / DTM / density).

Install

pip install pointclouds          # core: reads LAS/LAZ, grids to arrays, no GDAL required
pip install pointclouds[gis]     # + pyramids-gis: to_dataset() / to_feature_collection()
pip install pointclouds[cloud]   # + fsspec/s3fs: remote LAZ / COPC
pip install pointclouds[all]     # everything

The core depends only on numpy, laspy, pyproj and scipy - no GDAL - so it installs anywhere numpy runs. GIS interoperability (turning a cloud into a pyramids Dataset or FeatureCollection) is an optional extra.

Quick look

import pointclouds as pc

cloud = pc.PointCloud.read_file("survey.laz")
cloud.crs, cloud.bounds, cloud.count          # from the header, no record read
xyz = cloud.to_array(("X", "Y", "Z"))         # (N, 3) float64

# COPC: read a window instead of the whole cloud - only the chunks that overlap are decompressed
box = pc.PointCloud.read_window("survey.copc.laz", bbox=(155000, 463000, 156000, 464000))
coarse = pc.PointCloud.read_window("survey.copc.laz", resolution=5.0)   # ~one point per 5 m

# EPT (Entwine): same windowed read, by directory or URL (remote needs the [cloud] extra)
box = pc.PointCloud.read_window("s3://bucket/survey-ept", bbox=(155000, 463000, 156000, 464000))

ground = cloud.filter(classification=2)
thin = ground.decimate(target=2_000_000, method="random")

arr, transform, crs = ground.to_grid(cell_size=1.0, aggregate="min")   # pure NumPy
dtm = ground.to_dataset(cell_size=1.0, aggregate="min")                # needs [gis]

Where it sits

pointclouds is an independent package in the serapeum-org stack. It interoperates with pyramids (the raster/vector GIS engine) through two converter methods behind the [gis] extra, but does not depend on it for reading, gridding or classification. See planning/placement-decision.md for the full architecture rationale.

License

GPLv3.

Metadata

Release files for pointclouds 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pointclouds 0.1.0
File Size Uploaded Provenance Actions
pointclouds-0.1.0.tar.gz 268.8 kB Without provenance Details for pointclouds-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pointclouds 0.1.0
File Interpreter ABI Platform Actions
pointclouds-0.1.0-py3-none-any.whl Python 3 none any Details for pointclouds-0.1.0-py3-none-any.whl

Total release size: 333.1 kB

Release files / pointclouds-0.1.0.tar.gz

Download URL pointclouds-0.1.0.tar.gz
Size 268.8 kB
Tags Source
SHA-256 checksum
How to use checksums
0d4407c063af4887fce4676773233d336898549e7e10292eb97f04854a630602
BLAKE2b-256 checksum
How to use checksums
37e072874b8b658b82a89ef8039cd58d331cc9d71f4bd3c511e35241048ff4c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.10

Release files / pointclouds-0.1.0-py3-none-any.whl

Download URL pointclouds-0.1.0-py3-none-any.whl
Size 64.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5518ff165020a9f22102c9c6816e0ec2408ac4425ccfa342f9dd5ead3be7e46
BLAKE2b-256 checksum
How to use checksums
838bc0c628b95ac0ff5ebeebf4ee82ccb3efdef4ac6a1d0778cdbbb300f5ec39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.10

Security for pointclouds 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page