File: CHANGELOG.md

package info (click to toggle)
python-laspy 2.6.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,128 kB
  • sloc: python: 9,459; makefile: 20
file content (301 lines) | stat: -rw-r--r-- 9,854 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
# Changelog

## Version 2.6.1 (07/07/2025)

### Fixed

- Removed invalid import that prevented users from importing laspy

## Version 2.6.0 (06/07/2025)

### Fixed

- Bump lazrs to fix a bug that could happen in append mode
  (compatibility with older lazrs preserved, but without the fix)
- Bug in COPC where node with 0 points where not respected
- Fixed minimum values computed by laspy info
- The number of points by return is now correctly 64-bit and not 32-bit
- ScaledArrayView setitem/getitem whe index is in the form of [something, index] 

### Added

- Add copy method to LasHeader
- When the points given to the LasWriter.write_points
  are of type ScaleAwarePointRecord laspy now automatically rescale
  the points.
- ExtraBytesParams have a no_data attribute to specify which value is the no_data value
- min and max of extra bytes are now 'tracked' when writing, and their respective fields in the
  extra-bytes struct are populated
- laspy.open 'encoding_error' argument is also available to laspy.read
  (This argument can be used to how text encoding errors should be handled)

## Version 2.5.4 (19/06/2024)

### Fixed

- Fix compatibility with numpy 2.0
- Return None as CRS if WKT string is empty
   instead of having an exception from pyproj

## Version 2.5.3 (4/01/2024)

### Fixed

- Properly install laspy/cli/core.py file
- Don't install CLI tests as part of the package (tests/cli/*)
- Explicitly added 'rich' as a dependency of CLI feature

## Version 2.5.2 (2/01/2024)

### Fixed

- When trying to write more points than what is possible, now a
  proper error is raised.

### Added

- `CopcReader.open` now accepts file-like objects.
- Add `filter` command to CLI

## Version 2.5.1 (28/07/2023)

### Fixed

- Fixed bug in laz backend handling in the CLI

## Version 2.5.0 (23/07/2023)

### Added

- Added optional CLI. It can be installed using the `cli` extra
(`pip install laspy[cli]`). It has `info`, `compress`, `decompress`, `convert`
and `copc query` commands.
- Added a `prefer_wkt` option to `LasHeader.parse_crs`
(true by default) to prefer (or not) WKT VLR over Geotiff VLR
in case both are present in the file.

### Fixed

- laspy.open will now properly close the opened file
if an exception is raised.
- Wavepackets's `return_point_wave_location` is now
properly returned as as float32 and not an uint32.
- `parse_crs` properly checks that ProjectedCRSGeoKey/GeodeticCRSGeoKey
is in range of EPSG code before using pyproj to parse it.
- Missing `super.__init__()` in `CopcHierarchyVlr`.
- Copc no longer include the hierarchy page twice
- A LasHeader with a custom `creation_date`/`date` will
no longer be reset to `date.today` upon writing.

---

## Version 2.4.1 (20/02/2022)

### Fixed

- Removed spurious `print` in copc.py and compression.py

## Version 2.4.0 (11/02/2022)

## Added

- `read_evlrs` option (default true) to `laspy.open`, `laspy.LasReader.__init__` and `laspy.LasHeader.read_from`
  Which allows to skip reading the EVLRs when opening a file. This can be useful when
  opening a LAS file from a non seekable source / where seeking is expensive as reading
  EVLRs requires seeking to the end of the file.
- Selective decompression feature that allows to select in a LAS 1.4 (fmt >= 6 && <= 10)
  which fields should be decompressed allowing to save time by decompressing only the fields
  that are needed. Works with LAZ and COPC files.

## Changed

- The internal point reader is lazily created when the first point is actually read

## Fixed

- LasAppender when input file's last chunk is complete
- Handle redundant CSs in GeoKeyDirectoryVlr

## Version 2.3.0 (25/10/2022)

### Changed

- EVLRs are now read during the file opening part.
- EVLRs are now part of the `LasHeader` class, but are still accesible
  via `LasReader.evlrs` or `LasData.evlrs.

### Fixed

- Fixed CRS parsing on fiels with both `GeoKeyDirectoryVlr` and `WktCoordinateSystemVlr` and the first one is empty
- `LasHeader.parse_crs` also looks for the CRS VLRs in the EVLRs of the file.
- Fixed `LasHeader.generating_software` and `LasHeader.system_id` being limited to 31
  bytes instead of 32.
- Fixed `laspy.convert` to ensure the returng `LasData.evlrs` is a `Vlrlist` and
  no simply a `list`

---

## Version 2.2.0 (29/06/2022)

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

---

## Version 2.2.0 beta 1 (14/06/2022)

### Added

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

### Fixed

- Fixed support for stream / source that are not `seekable`.

---

## Version 2.2.0 beta 0 (03/05/2022)

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

---
  
## Version 2.1.2 (18/02/2022)

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

---

## Version 2.1.1 (23/01/2022)

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

---

## Version 2.1.0 (09/01/2022)

### 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](https://copc.io) 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 (16/09/2021)

### 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 (23/07/2021)

### 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 (29/06/2021)

### 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 (15/06/2021)

- 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 (13/03/2020)

- Fixed bug in point record format 5, 9 and 10 [#105](https://github.com/laspy/laspy/issues/105)
- Return explicit msg if laszip executable was not found [#110](https://github.com/laspy/laspy/issues/110)
- Supprt numpy 1.17 [#122](https://github.com/laspy/laspy/issues/122)

## Version 1.6.0 (11/10/2018)

- Bug fix  [#92](https://github.com/laspy/laspy/issues/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 (5/12/2017)

- Bug fixes [#67](https://github.com/laspy/laspy/pull/67), [#75](https://github.com/laspy/laspy/pull/75), [b02b40900b5](https://github.com/laspy/laspy/commit/b02b40900b5620972930cd0c201b4db1a6a69754)
- Allow usage of `laszip-cli` when working with LAZ files [#77](https://github.com/laspy/laspy/pull/77)

## Version 1.5.0 (30/03/2017)

- Improved memory handling in base.FileManager [#48](https://github.com/laspy/laspy/pull/48)
- Introduced `r-` file mode, that only reads the header of as LAS file [#48](https://github.com/laspy/laspy/pull/48)
- LAS v. 1.4 bug fixes [#55](https://github.com/laspy/laspy/pull/55)
- Python 3 support [#62](https://github.com/laspy/laspy/pull/62)