Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/visr/lasio.jl
Julia package for reading and writing the LAS lidar format.
https://github.com/visr/lasio.jl
io julia las laz lidar point-cloud
Last synced: 8 days ago
JSON representation
Julia package for reading and writing the LAS lidar format.
- Host: GitHub
- URL: https://github.com/visr/lasio.jl
- Owner: visr
- License: other
- Created: 2016-05-24T05:12:00.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2021-04-27T18:01:58.000Z (over 3 years ago)
- Last Synced: 2024-10-13T23:32:07.563Z (23 days ago)
- Topics: io, julia, las, laz, lidar, point-cloud
- Language: Julia
- Size: 6.12 MB
- Stars: 22
- Watchers: 4
- Forks: 13
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# LasIO
[![CI](https://github.com/visr/LasIO.jl/actions/workflows/CI.yml/badge.svg?branch=master)](https://github.com/visr/LasIO.jl/actions/workflows/CI.yml)
Julia package for reading and writing the LAS lidar format.
This is a pure Julia package for reading and writing ASPRS `.las` files. Currently only LAS versions 1.1 - 1.3 and point formats 0 - 3 are supported. For LAZ support see below.
If the file fits into memory, it can be loaded using
```julia
using FileIO, LasIO
header, points = load("test.las")
```where `header` is of type `LasHeader`, and, if it is point format 3, `points` is a `Vector{LasPoint3}`. `LasPoint3` is an immutable that directly corresponds to the binary data in the LAS file. Use functions like `xcoord(p::LasPoint, header::LasHeader)` to take out the desired items in the point.
If the file does not fit into memory, it can be memory mapped using
```julia
using FileIO, LasIO
header, points = load("test.las", mmap=true)
```where `points` is now a memory mapped `PointVector{LasPoint3}` which behaves in the same way as the `Vector{LasPoint3}`, but reads the points on the fly from disk when indexed, not allocating the complete vector beforehand.
See `test/runtests.jl` for other usages.
## LAZ support
We advise to use [LazIO](https://github.com/evetion/LazIO.jl), which works out of the box and is compatible with LasIO.The compressed LAZ format is supported by LasIO itself, but requires the user to make sure the `laszip` executable can be found in the PATH. LAZ files are piped through `laszip` to provide reading and writing capability. `laszip` is not distributed with this package. One way to get it is to download `LAStools` from https://rapidlasso.com/. The LAStools ZIP file already contains `laszip.exe` for Windows, for Linux or Mac it needs to be compiled first. When this is done this should work just like with LAS:
```julia
using FileIO, LasIO
header, points = load("test.laz")
```