laspy
Native Python ASPRS LAS read/write library
What it is and what it does
Laspy is a native Python library for working with ASPRS LAS and LAZ LiDAR point cloud files. It handles the full lifecycle of LAS data: reading files into memory, filtering and modifying point records, and writing results back to disk. The library supports both complete file operations and streamed/chunked processing for handling large datasets that may not fit in memory at once. It can read file headers and metadata without loading all points, and supports COPC (Cloud Optimized Point Cloud) format both from local files and over HTTPS.
The package depends only on numpy for its core functionality, keeping installation simple and lightweight. Optional features like LAZ compression and CRS coordinate transformation require additional packages (lazrs/laszip and pyproj respectively) that can be installed separately. The library is actively maintained, marked as Production/Stable, and widely used in geospatial and LiDAR processing workflows.
Use it for:
- Filter and extract specific point classes (e.g., ground, vegetation) from large LAS/LAZ files for analysis.
- Convert between LAS and LAZ formats or reproject point cloud coordinates using CRS support.
- Process multi-gigabyte LiDAR datasets in chunks to avoid loading entire files into memory.
- Read LAS file headers and metadata to inspect point formats and record counts before full processing.
- Build geospatial data pipelines that read, transform, and write LiDAR point clouds programmatically.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Laspy reads, modifies, and writes LAS and LAZ LiDAR point cloud files, with support for streamed/chunked processing, COPC format, and optional CRS transformation via pyproj.
Yes. Laspy is the standard Python library for LAS/LAZ file handling, actively maintained, Production/Stable, with minimal dependencies and no known vulnerabilities. Install it if you work with LiDAR data or ASPRS point cloud formats. The only consideration is the Python 3.10+ requirement; if you're on an older version, you'll need to upgrade.
Install
laspy on PyPI
pip
pip install laspyuv
uv add laspypoetry
poetry add laspyInstalling laspy
Before you install
Low friction: pure Python wheel with only numpy as a runtime dependency. Active maintenance (last commit 2026-05-30), marked Production/Stable, and in the top 5000 PyPI packages by download volume.
License in practice
BSD-2-Clause permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install laspy
import laspy
las = laspy.read('filename.las')
las.points = las.points[las.classification == 2]
las.write('ground.laz')
Requires Python 3.10 or later. LAZ support requires optional lazrs or laszip backend installation.
Verify before relying
- Performance characteristics and memory footprint when processing very large point clouds.
- Compatibility details with specific LAS/LAZ versions and COPC implementations.
- Whether COPC over HTTPS requires requests to be installed as a runtime dependency or only when that feature is used.
Package facts
| License | BSD-2-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | actively maintained — 212 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,941,539/month — #3,417 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: laspy-2.7.0-py3-none-any.whl
Keywords: gis, las, lidar
Tags
More GIS packages
Shapely provides Python tools for creating,…
permissive · top 1,000 on PyPI
pyprojpyproj provides a Python interface to PROJ,…
permissive · top 1,000 on PyPI
geopandasGeoPandas extends pandas DataFrames to handle…
permissive · top 1,000 on PyPI
geopygeopy is a Python client for geocoding and…
permissive · top 5,000 on PyPI
pyogrioPyogrio provides fast, bulk-oriented read and…
permissive · top 5,000 on PyPI
h3h3 provides Python bindings to Uber's H3…
permissive · top 5,000 on PyPI
lasioRead and write Log ASCII Standard (LAS) files…
permissive · top 15,000 on PyPI
laszipProvides Python bindings to LASzip, a…
permissive · top 15,000 on PyPI
ouster-sdkOuster SDK provides Python interfaces to…
permissive · top 15,000 on PyPI
pystac-ext-pointcloudExtends PySTAC to support the Point Cloud…
permissive · top 5,000 on PyPI
odc-geoProvides projection-aware geometry classes…
permissive · top 15,000 on PyPI
open-radar-dataProvides a registry and download utility for…
permissive · top 15,000 on PyPI
FlowIOFlowIO reads and writes Flow Cytometry Standard…
permissive · top 15,000 on PyPI
fionaFiona reads and writes vector GIS data…
permissive · top 5,000 on PyPI
pypcd4pypcd4 reads, writes, and manipulates Point…
permissive · top 15,000 on PyPI