[ANN] LASArrays.jl

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:

  1. the use of mappedarrays for representing scaled/offset point clouds
  2. 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

7 Likes