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+.

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.3

  • Fix function that parses geotiff VLRs
  • Fix handling of points with 'unregistered' extra bytes (PR #158)
  • Fix to handle empty LAS/LAZ more robustly

Version 2.0.2

  • Fix system_identifier reading by ignoring non ascii characters instead of erroring ,(issue #148, PR #149).
  • Fix LasData.change_scaling method.
  • Update minimum lazrs version which allows to:
    • Fix Appending in LAZ files.
    • Improve memory usage when reading/writing. (issue #152)

Version 2.0.1

  • Fix .min .max methods of array views
  • Ship the tests as part of the source distribution (But they won't be installed with pip install)

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.3.tar.gz (597.7 kB view details)

Uploaded Source

File details

Details for the file laspy-2.0.3.tar.gz.

File metadata

  • Download URL: laspy-2.0.3.tar.gz
  • Upload date:
  • Size: 597.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.8

File hashes

Hashes for laspy-2.0.3.tar.gz
Algorithm Hash digest
SHA256 95c6367bc3a7c1e0d8dc118ae4a6b038bf9e8ad3e60741ecb8d59c36d32f822a
MD5 e7b5fd4fa7953cda013aea49160b2cc8
BLAKE2b-256 27c5a8aa857e51ddcba4a9ac9bf25f05475115599476058dc788d1b04c6f6025

See more details on using hashes here.

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