Skip to main content

Native Python ASPRS LAS read/write library

Project description

Laspy

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

Laspy is compatible with Python 3.6+.

Version 2.0

laspy 2.0 is in alpha, and ready for you to test, to install, it add --pre to the pip install commands (eg pip install --pre laspy)

Examples

Directly read and write las

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)

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

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

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.

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

Version 2.0.0

  • Overhaul of the internals by essentially incorporating pylas into laspy, while the API to retrieve and set dimensions stayed the same, other parts changed and will require adaptation.
  • Better LAZ support
    • Added support for writing LAZ
    • Changed decompression mechanism by using either laszip python bindings (and not laszip-cli) or lazrs
  • Added ability to read and write LAS/LAS in stream / chunked mode.
  • Changed laspy to support the reading and writing of LAS/LAZ data from and to file-objects and bytes
  • Dropped support for python2.7, python3.6+ is supported.

Version 1.7.0

  • Fixed bug in point record format 5, 9 and 10 #105
  • Return explicit msg if laszip executable was not found #110
  • Supprt numpy 1.17 #122

Version 1.6.0

  • Bug fix #92
  • Test creation of all valid custom dimension data types
  • Modify handling of extra bytes to be char data instead of numeric byte data

Version 1.5.1

Version 1.5.0

  • Improved memory handling in base.FileManager #48
  • Introduced r- file mode, that only reads the header of as LAS file #48
  • LAS v. 1.4 bug fixes #55
  • Python 3 support #62

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

laspy-2.0.0a2.tar.gz (42.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page