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.0.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.0.0
File Size Uploaded Provenance Actions
pointclouds-0.0.0.tar.gz 266.8 kB Without provenance Details for pointclouds-0.0.0.tar.gz

Built distribution (wheel)

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

Total release size: 331.1 kB

Release files / pointclouds-0.0.0.tar.gz

Download URL pointclouds-0.0.0.tar.gz
Size 266.8 kB
Tags Source
SHA-256 checksum
How to use checksums
bdabaf4fafc689c26bbbc0035207682132f112863b153d43a1d15bbb8451e289
BLAKE2b-256 checksum
How to use checksums
4ef153e35ceefa3951985aa3ab42ae3a3f29701010b3cbd9e13b304ea77b831a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.9

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

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

Security for pointclouds 0.0.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.0.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