A package for flexible point cloud data handling.
using FixedSizeArrays using PointClouds # Create positions of 3D Vec coordinates positions = [Vec(i,-i,1.0) for i = 1:10] # Create a PointCloud from positions cloud = PointCloud(positions) # Create new intensity attributes cloud[:intensity] = collect(1:10) # Create capture time for each point sample cloud[:time] = [time() for i = 1:10] # Find low intensity points low_intensity_cloud = cloud[cloud[:intensity] .< 5] # Find vector of time stamps per point t = low_intensity_cloud[:time] # Find points within 5 units of [1,1,1] nearby = cloud[inrange(cloud, [1,1,1], 5.0)]
The aim here is to have a point cloud data structure with arbitrary per-point attributes, spatial lookup, basic IO and various utility functions.
From an attribute access and manipulation point of view, a
PointCloud is very
much like a
DataFrame. Perhaps one day
PointCloud can be implemented in
terms of an underlying
DataFrame, but at this stage the
has a naturally strong focus on statistical computation, which seems somewhat at
odds with the geometrically local spatial computation which one often wants with
a point cloud.
about 2 months ago