Changelog

2.2.0

Added

  • Added support for querying COPC LAZ files via a new class CopcReader.

  • Added new optional feature to support adding CRS / SRS to a LAS file from a pyproj.CRS as well as reading the CRS / SRS information from a LAS file to a pyproj.CRS.

Fixed

  • Fixed support for stream / source that are not seekable.

Changed

  • Support for Python3.6 removed.


2.2.0 beta 1

Added

  • Added support for querying COPC LAZ files via a new class CopcReader.

Fixed

  • Fixed support for stream / source that are not seekable.


2.2.0 beta 0

Added

  • Added new optional feature to support adding CRS / SRS to a LAS file from a pyproj.CRS as well as reading the CRS / SRS information from a LAS file to a pyproj.CRS.

Changed

  • Support for Python3.6 removed.


2.1.2

Fixed

  • Fixed LasHeader.update (thus fixing LasData.update_header) computation of x,y,z mins and maxs

  • Fixed regression introduced in 2.1.0 where changing the header.scales and/or header.offsets on a LasData newly created and then setting x y or z would produce incorrect result.


2.1.1

Fixed

  • Fixed regression introduced in 2.1.0 where setting the x, y or z value would not properly set the corresponding X, Y or Z value.

  • Fixed LasData.change_scaling setting the header’s offsets and/or scales to None if the corresponding optionnal argument was not given to the change_scaling method. The header will now correctly keep the corresponding value unchanged.


2.1.0

Added

  • Added a better error message when reading empty files

  • Added a new xyz attribute to LasData that returns x, y, z as a new numpy array or sets the x, y, z from an array

  • Added LasData.remove_extra_dim and LasData.remove_extra_dims to allow the removal of extra dimensions (only)

Changed

  • Minimum lazrs version updated to 0.4.0 to bring support for LAZ with variable size chunks (used in COPC files). the laszip backend already supported variable size chunks LAZ.

  • Improved assigning to multiple dimensions at once (las[['x', 'y', 'z']] = ...)

  • laspy will no longer raise encoding errors when reading files for which the header’s generating_software or system_identifier as well as the vlr’s description is not ascii encoded as the spec mandates. However, an encoding error will be raised when writing such files.

  • LasData.__getitem__ will now return a LasData when indexing with slice or numpy array.

    assert isinstance(las[[1, 2, 3, 4]], laspy.LasData)

Fixed

  • Fix PackedPointRecord.__len__ when array has no dim

  • Fix scaled extra byte creation when the offsets/scales given to ExtraBytesParam where of type list or tuple

  • Fix ScaledArrayView to allow indexing with list or numpy.array.


Version 2.0.3

Fixed

  • 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

Changed

  • Update minimum lazrs version which allows to:

    • Fix Appending in LAZ files.

    • Improve memory usage when reading/writing. (issue #152)

Fixed

  • Fix system_identifier reading by ignoring non ascii characters instead of erroring ,(issue #148, PR #149).

  • Fix LasData.change_scaling method.


Version 2.0.1

Fixed

  • 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