[Liblas-devel] LASzip issue in libLAS. Extra Bytes not supported?

Howard Butler howard at hobu.co
Mon Apr 10 18:08:12 PDT 2017


Thanks for the report Martin. There is indeed a bug in libLAS' LAZ support when files have extra bytes in them.

Filed here. https://github.com/libLAS/libLAS/issues/119

Howard

> On Apr 6, 2017, at 1:24 PM, Martin Isenburg <martin.isenburg at gmail.com> wrote:
> 
> Hello,
> 
> apparently the attached compressed LAZ file does not survive the round trip via libLAS' las2las ... can someone verify (or explain / debug)?
> 
> C:\OSGeo4W64\bin\las2las -v paul.laz  --output paul_liblas.laz
> 
> E:\LAStools\bin>lasinfo -i paul.laz
> lasinfo (170330) report for paul.laz
> reporting all LAS header entries:
>   file signature:             'LASF'
>   file source ID:             0
>   global_encoding:            0
>   project ID GUID data 1-4:   00000000-0000-0000-0000-000000000000
>   version major.minor:        1.2
>   system identifier:          'LAStools (c) by rapidlasso GmbH'
>   generating software:        'txt2las (version 170402)'
>   file creation day/year:     96/2017
>   header size:                227
>   offset to point data:       1451
>   number var. length records: 2
>   point data format:          1
>   point data record length:   35
>   number of point records:    5024
>   number of points by return: 3051 1503 411 57 2
>   scale factor x y z:         0.01 0.01 0.01
>   offset x y z:               4300000 5600000 0
>   min x y z:                  4376272.35 5683751.73 452.29
>   max x y z:                  4376671.84 5683959.33 484.91
> variable length header record 1 of 2:
>   reserved             0
>   user ID              'LASF_Spec'
>   record ID            4
>   length after header  960
>   description          'by LAStools of rapidlasso GmbH'
>     Extra Byte Descriptions
>       data type: 3 (unsigned short), name "echo width", description: "Full width at half maximum [ns]", scale: 0.1, offset: 0 (not set)
>       data type: 4 (short), name "LAS 1.4 scan angle", description: "additional attributes", scale: 0.006, offset: 0 (not set)
>       data type: 1 (unsigned char), name "LAS 1.4 extended returns", description: "additional attributes", scale: 1 (not set), offset: 0 (not set)
>       data type: 1 (unsigned char), name "LAS 1.4 classification", description: "additional attributes", scale: 1 (not set), offset: 0 (not set)
>       data type: 1 (unsigned char), name "LAS 1.4 flags and channel", description: "additional attributes", scale: 1 (not set), offset: 0 (not set)
> variable length header record 2 of 2:
>   reserved             0
>   user ID              'lascompatible'
>   record ID            22204
>   length after header  156
>   description          'by LAStools of rapidlasso GmbH'
> LASzip compression (version 2.5r2 c2 50000): POINT10 2 GPSTIME11 2 BYTE 2
> reporting minimum and maximum for all LAS point record entries ...
>   X             7627235    7667184
>   Y             8375173    8395933
>   Z               45229      48491
>   intensity          10        346
>   return_number       1          5
>   number_of_returns   1          5
>   edge_of_flight_line 0          0
>   scan_direction_flag 0          0
>   classification      0          0
>   scan_angle_rank     0          0
>   user_data           0          0
>   point_source_ID     3          5
>   gps_time 0.000000 0.000000
> number of first returns:        3051
> number of intermediate returns: 470
> number of last returns:         3051
> number of single returns:       1548
> overview over number of returns of given pulse: 1548 2184 1062 220 10 0 0
> histogram of classification of points:
>             5024  never classified (0)
> 
> E:\LAStools\bin>lasinfo -i paul_liblas.laz
> lasinfo (170330) report for paul_liblas.laz
> reporting all LAS header entries:
>   file signature:             'LASF'
>   file source ID:             0
>   global_encoding:            0
>   project ID GUID data 1-4:   00000000-0000-0000-0000-000000000000
>   version major.minor:        1.2
>   system identifier:          'LAStools (c) by rapidlasso GmbH'
>   generating software:        'txt2las (version 170402)'
>   file creation day/year:     96/2017
>   header size:                227
>   offset to point data:       8774
>   number var. length records: 3
>   point data format:          1
>   point data record length:   35
>   number of point records:    5024
>   number of points by return: 3051 1503 411 57 2
>   scale factor x y z:         0.01 0.01 0.01
>   offset x y z:               4300000 5600000 0
>   min x y z:                  4376272.35 5683751.73 452.29
>   max x y z:                  4376671.84 5683959.33 484.91
> variable length header record 1 of 3:
>   reserved             0
>   user ID              'LASF_Spec'
>   record ID            4
>   length after header  960
>   description          'by LAStools of rapidlasso GmbH'
>     Extra Byte Descriptions
>       data type: 3 (unsigned short), name "echo width", description: "Full width at half maximum [ns]", scale: 0.1, offset: 0 (not set)
>       data type: 4 (short), name "LAS 1.4 scan angle", description: "additional attributes", scale: 0.006, offset: 0 (not set)
>       data type: 1 (unsigned char), name "LAS 1.4 extended returns", description: "additional attributes", scale: 1 (not set), offset: 0 (not set)
>       data type: 1 (unsigned char), name "LAS 1.4 classification", description: "additional attributes", scale: 1 (not set), offset: 0 (not set)
>       data type: 1 (unsigned char), name "LAS 1.4 flags and channel", description: "additional attributes", scale: 1 (not set), offset: 0 (not set)
> variable length header record 2 of 3:
>   reserved             0
>   user ID              'lascompatible'
>   record ID            22204
>   length after header  156
>   description          'by LAStools of rapidlasso GmbH'
> variable length header record 3 of 3:
>   reserved             43707
>   user ID              'liblas'
>   record ID            7
>   length after header  7269
>   description          'http://liblas.org/schema/'
> LASzip compression (version 2.2r0 c2 50000): POINT10 2 GPSTIME11 2
> reporting minimum and maximum for all LAS point record entries ...
> ERROR: 'end-of-file during chunk with index 0' after 1638 of 5024 points
>   X          -2140398450 2143434216
>   Y          -2141878466 2146152511
>   Z          -2145714721 2146156107
>   intensity           0      65535
>   return_number       0          7
>   number_of_returns   0          7
>   edge_of_flight_line 0          1
>   scan_direction_flag 0          1
>   classification      0         31
>   scan_angle_rank  -128        127
>   user_data           0        254
>   point_source_ID     3      65498
>   gps_time -0.000000 0.000000
> WARNING: range violates GPS week time specified by global encoding bit 0
> WARNING: 1637 points outside of header bounding box
> number of first returns:        467
> number of intermediate returns: 352
> number of last returns:         922
> number of single returns:       391
> WARNING: real number of point records (1638) is different from header entry (5024).
> WARNING: for return 1 real number of points by return (230) is different from header entry (3051).
> WARNING: for return 2 real number of points by return (230) is different from header entry (1503).
> WARNING: for return 3 real number of points by return (193) is different from header entry (411).
> WARNING: for return 4 real number of points by return (189) is different from header entry (57).
> WARNING: for return 5 real number of points by return (188) is different from header entry (2).
> WARNING: there are 237 points with return number 0
> WARNING: there are 180 points with return number 6
> WARNING: there are 191 points with return number 7
> overview over number of returns of given pulse: 182 258 208 223 179 198 181
> WARNING: there are 209 points with a number of returns of given pulse of 0
> histogram of classification of points:
>               67  never classified (0)
>               51  unclassified (1)
>               54  ground (2)
>               55  low vegetation (3)
>               63  medium vegetation (4)
>               64  high vegetation (5)
>               46  building (6)
>               54  noise (7)
>               35  keypoint (8)
>               40  water (9)
>               41  rail (10)
>               54  road surface (11)
>               49  overlap (12)
>               53  wire guard (13)
>               36  wire conductor (14)
>               46  tower (15)
>               62  wire connector (16)
>               41  bridge deck (17)
>               54  Reserved for ASPRS Definition (18)
>               42  Reserved for ASPRS Definition (19)
>               52  Reserved for ASPRS Definition (20)
>               52  Reserved for ASPRS Definition (21)
>               69  Reserved for ASPRS Definition (22)
>               33  Reserved for ASPRS Definition (23)
>               57  Reserved for ASPRS Definition (24)
>               67  Reserved for ASPRS Definition (25)
>               55  Reserved for ASPRS Definition (26)
>               52  Reserved for ASPRS Definition (27)
>               59  Reserved for ASPRS Definition (28)
>               39  Reserved for ASPRS Definition (29)
>               52  Reserved for ASPRS Definition (30)
>               44  Reserved for ASPRS Definition (31)
>  +-> flagged as synthetic: 841
>  +-> flagged as keypoints: 855
>  +-> flagged as withheld:  804
> real max x larger than header max x by 21357670.320000
> real min x smaller than header min x by 21480256.850000
> real max y larger than header max y by 21377565.780000
> real min y smaller than header min y by 21502536.390000
> real max z larger than header max z by 21461076.160000
> real min z smaller than header min z by 21457599.500000
> 
> <paul.laz><paul_liblas.laz>_______________________________________________
> Liblas-devel mailing list
> Liblas-devel at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/liblas-devel



More information about the Liblas-devel mailing list