# \[ANN\] LASArrays.jl

**URL:** <https://discourse.julialang.org/t/ann-lasarrays-jl/57679>\
**Category:** Package Announcements\
**Tags:** geo\
**Created:** [March 22, 2021, 1:36am UTC](https://discourse.julialang.org/t/ann-lasarrays-jl/57679 "2021-03-22T01:36:22Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Crghilardi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/crghilardi/32/3738_2.png) [@Crghilardi](https://discourse.julialang.org/u/Crghilardi)\
**Post date:** [March 22, 2021, 1:36am UTC](https://discourse.julialang.org/t/ann-lasarrays-jl/57679/1 "2021-03-22T01:36:22Z")

</div>

I just finished pushing the first commit for [LASArrays.jl](https://github.com/Crghilardi/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](https://github.com/visr/LasIO.jl/issues/34) 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`:

```julia
#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

```
