esri's zlas i/o library and api for lidar data › library › userconf › dev... ·...
TRANSCRIPT
![Page 1: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/1.jpg)
Esri's zLAS I/O Library and APIfor Lidar Data
Clayton Crawford
March 8–11, 2016 | Palm Springs, CA
Esri Developer Summit
![Page 2: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/2.jpg)
Contents
• Overview• Capabilities• Demo• Availability
![Page 3: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/3.jpg)
EzLasLib - What It Is
• C++ library for reading and writing Esri Optimized LAS (zLAS)- Convert between zLAS and LAS- Optimized queries on zLAS
• Easily incorporated into existing systems that read/write LAS• Includes support through LAS 1.4, all point record formats• Compatible with Visual Studio 2008 and higher• Compatible with Windows XP sp3 and higher• 32 and 64 bit versions
![Page 4: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/4.jpg)
zLAS Recap
• ASPRS LAS is the standard• Esri fully supports the standard• The standard was designed for data exchange, not direct use• zLAS allows us to turn LAS into something easy and efficient to use
- Compression- Indexing- Statistics- Lossless
• Free EzLas Optimizer utility app available to convert between zLAS/LAS
![Page 5: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/5.jpg)
Library Constructs
Interfaces
iEzLasObjectiEzLasReaderiEzLasWriteriEzLasQueryFilteriEzLasLongArrayiEzLasLong64ArrayiEzLasMemoryBufferiEzLasEnumPointiEzLasFeedback
Enums
EzLasPointPropertyTypeEzLasColorChannelTypeEzLasPointFlagTypeEzLasPointReturnTypeEzLasErrorCodes
Structs
EzLasHeaderEzLasPointInfoEzLasRGBEzLasPoint2DEzLasPoint3DEzLasExtent3DEzLasPointSpacingOption
Classes/Objects
EzLasObjectFactory-> Reader-> Filter-> Writer
![Page 6: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/6.jpg)
The EzLAS Reader
• Read zLAS as LAS- Records loaded into memory buffers in standard LAS format
• Read into structs/arrays as an alternative to LAS format buffers• Supports query filter
- AOI envelopes- Returns, class codes, flags- Enumerators return query results
• Supports point data mask- Decompress only what’s needed
• Includes statistics that go beyond standard LAS
![Page 7: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/7.jpg)
The EzLAS Writer
• Optimize/compress LAS file into zLAS• Decompress zLAS file into LAS• File level granularity, operates on entire files
![Page 8: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/8.jpg)
Parallel Processing
• Both Reader and Writer Objects are multi-threaded• Significant performance gain utilizing multiple cores• Can control amount of CPU resources allocated
![Page 9: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/9.jpg)
Error Handling and Reporting
• All methods return success or failure codes• Primary objects (reader/writer) provide access to descriptive error string (english)
- Non-english apps should use error codes to map to their own strings
• A validator method is included for checking integrity of input zLAS
![Page 10: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/10.jpg)
Progress Reporting and Canceling
• Implement iEzLasFeedback• Sets up callbacks:
- ‘SetProcessCompletionPercentage’ - for progress reporting
- ‘Continue’- to support cancel in the middle of a process
![Page 11: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/11.jpg)
Spatial Reference
• Coordinate system records are retrieved from zLAS via memory buffers• Buffers are written to in LAS format so any existing app code used to read this info
from LAS can be used to read from zLAS• Does not provide means of interpreting these records
![Page 12: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/12.jpg)
Extra Bytes
• LAS 1.4 construct for extensibility- E.g., Topo-bathy domain profile
• Can contain different payloads• Accessed via memory buffers• Your code has to interpret
![Page 13: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/13.jpg)
Using the Library in a Project
• Include reference to EzLasAPIs.h• Methods/properties documented in .h• Add EzLasLib folder to VS project library paths• Include EzLasLib dll in exe folder
![Page 14: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/14.jpg)
Demo
![Page 15: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/15.jpg)
Availability
• Library is available for download• GitHub -> https://github.com/Esri/esri-zlas-io-library• Apache 2.0 license (allows for use and redistribution without cost)• Sample source code for this demo
- Request via email: [email protected]
![Page 16: Esri's zLAS I/O Library and API for Lidar Data › library › userconf › dev... · Indexing-Statistics-Lossless ... Buffers are written to in LAS format so any existing app code](https://reader031.vdocument.in/reader031/viewer/2022013021/5f0ee24e7e708231d44168af/html5/thumbnails/16.jpg)
Questions?