[Liblas-devel] Indexing for point clouds

Etienne Bellemare Racine etiennebr at gmail.com
Tue Apr 21 16:41:19 EDT 2009


Howard,

My experience with this is extracting lidar subsets with Liblas. And I 
thought that if it was possible to just sort the file by coordinate 
(i.e. rewriting it ordered) it would enable to only scan a part of the 
file. Maybe ordering the file would take some time (probably a lot, do 
you have an idea ?), but if you are using it frequently for an 
extraction, it could worth it, I don't really know what are the gains.

Etienne

Howard Butler a écrit :
> I have been investigating and prototyping linking spatialindex with 
> libLAS, but I have a few questions of the practicality of this 
> approach.  LiDAR point cloud data are typically very large (millions 
> to 100s of millions of points), contain attribute-like data such as 
> echo intensity, and are somewhat spatially sequential.
>
> By spatially sequential, I mean that points near each other as they 
> are stored in the sequential LAS file format are frequently near each 
> other spatially (but not always).  Many coders take advantage of this 
> property of the data by skipping data as they read it in -- naturally 
> thinning the volume for a small accuracy penalty.  This is fine for 
> visualization, but in a warehousing scenario, tossing out data is a 
> big no-no.  But we also want a warehouse that can be (somewhat) fast, 
> especially for spatial queries :)
>
> A first naive attempt to use the DiskStorageManager to store an index 
> in parallel with a 32 million point (90mb) LAS file resulted in some 
> disappointing results.  I used the default (70%) fill factor, 10 for 
> the index and leaf capacity, and star for the rtree variant.  Nearly 
> 4.5 hours of insertion later (I used a very small pagesize of 3, which 
> is the reason for the slow insert, so I could get a feel for the 
> minimum size required to make an index), the index of my 90mb, 32 
> million point LAS file turned into 517mb of .idx + and 190mb of .dat 
> file.  This isn't going to be practical.
>
> I need a plan B.  Anyone have any ideas how to tackle this problem in 
> a way that balances space and time efficiency (though I'm not quite 
> sure what defines "balance" in this instance) for insert and query?  
> Should I start pursuing something like a KDB tree?  Should I figure 
> out some sort of stripping/patching/tiling algorithm for the points to 
> lessen the indexing load (this tends to be the standard approach to 
> this problem)?  Work out a different StorageManager approach that is a 
> clustered index of spatially clustered points?
>
> Howard
>
> PS sending to both lists because I hope to include spatial indexing 
> functionality in libLAS if I can find a reasonable approach, and if 
> any of the LiDAR folks have this one licked and would be willing to 
> share, I'd be happy to take it.
>
> _______________________________________________
> Liblas-devel mailing list
> Liblas-devel at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/liblas-devel


More information about the Liblas-devel mailing list