I just finished pushing the first commit for LASArrays.jl. It’s still a bit rough, but I thought it might interest others here.
This is a package for working with .las
LiDAR files and I made this package because I wanted a sandbox to try two ideas:
- the use of mappedarrays for representing scaled/offset point clouds
- for some tasks all I find I only care about is some subset of the attributes, so is there a way to just deal with those alone.
This was my first time really digging in and working with binary files, so I learned a few things and had some fun.
Some code from the README
:
#load points
load("points.las", :coordinates)
497536-element mappedarray(AffineMap([0.01 0.0 0.0; 0.0 0.01 0.0; 0.0 0.0 0.01], [-0.0, -0.0, -0.0]), ::Array{Any,1}) with eltype Any:
[1.44013394e6, 375000.23, 846.66]
[1.44012426e6, 375000.49, 846.5500000000001]
[1.44011447e6, 375000.77, 846.44]
[1.44010469e6, 375001.04, 846.32]
[1.4400948900000001e6, 375001.35000000003, 846.21]
⋮
[1.44495771e6, 375001.31, 863.7]
[1.4449471300000001e6, 375000.89, 863.79]
#or some other attribute
load("points.las", :classification)
6227397-element Array{Any,1}:
0xdd
0xd7
0x63
0x03