Metadata-Version: 2.4
Name: laspy
Version: 2.6.1
Summary: Native Python ASPRS LAS read/write library
Home-page: https://github.com/laspy/laspy
Author: Grant Brown, Thomas Montaigu
Author-email: grant.brown73@gmail.com, thomas.montaigu@laposte.net
License: BSD
Keywords: gis lidar las
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Scientific/Engineering :: GIS
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: numpy
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: sphinx; extra == "dev"
Requires-Dist: sphinx-rtd-theme; extra == "dev"
Requires-Dist: nox; extra == "dev"
Requires-Dist: attrs>=24.1; extra == "dev"
Requires-Dist: black==22.3.0; extra == "dev"
Requires-Dist: pytest-benchmark; extra == "dev"
Requires-Dist: m2r2; extra == "dev"
Requires-Dist: rangehttpserver; extra == "dev"
Requires-Dist: isort==5.11.5; extra == "dev"
Provides-Extra: lazrs
Requires-Dist: lazrs<0.8.0,>=0.7.0; extra == "lazrs"
Provides-Extra: laszip
Requires-Dist: laszip<0.3.0,>=0.2.1; extra == "laszip"
Provides-Extra: pyproj
Requires-Dist: pyproj; extra == "pyproj"
Provides-Extra: requests
Requires-Dist: requests; extra == "requests"
Provides-Extra: cli
Requires-Dist: typer[all]>=0.8.0; extra == "cli"
Requires-Dist: rich>=10.11.0; extra == "cli"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Laspy

Laspy is a python library for reading, modifying and creating LAS LiDAR
files.

Laspy is compatible with Python  3.8+.

## Features

- LAS support.
- LAZ support via `lazrs` or `laszip` backend.
- LAS/LAZ streamed/chunked reading/writting.
- [COPC] support over files.
- [COPC] support over https with `requests` package.
- CRS support via `pyproj` package.


[COPC]: https://github.com/copcio/copcio.github.io


## Examples

Directly read and write las
```Python
import laspy

las = laspy.read('filename.las')
las.points = las.points[las.classification == 2]
las.write('ground.laz')
```


Open data to inspect header (opening only reads the header and vlrs)

```Python
import laspy

with laspy.open('filename.las') as f:
    print(f"Point format:       {f.header.point_format}")
    print(f"Number of points:   {f.header.point_count}")
    print(f"Number of vlrs:     {len(f.header.vlrs)}")
```
Use the 'chunked' reading & writing features

```Python
import laspy

with laspy.open('big.laz') as input_las:
    with laspy.open('ground.laz', mode="w", header=input_las.header) as ground_las:
        for points in input_las.chunk_iterator(2_000_000):
            ground_las.write_points(points[points.classification == 2])

```

Appending points to existing file

```Python
import laspy

with laspy.open('big.laz') as input_las:
    with laspy.open('ground.laz', mode="a") as ground_las:
        for points in input_las.chunk_iterator(2_000_000):
            ground_las.append_points(points[points.classification == 2])
```

API Documentation and tutorials are available at
[ReadTheDocs](https://laspy.readthedocs.io/en/latest/).

## Installation

Laspy can be installed either with `pip`:

```
pip install laspy # without LAZ support
# Or
pip install laspy[laszip] # with LAZ support via LASzip
# Or
pip install laspy[lazrs] # with LAZ support via lazrs
```

## Changelog

See [CHANGELOG.md](CHANGELOG.md)
