Performing 3D queries on a LiDAR point cloud
In the previous recipe, Importing LiDAR data, we brought a LiDAR 3D point cloud into PostGIS, creating an explicit 3D dataset from the input. With the data in 3D form, we have the ability to perform spatial queries against it. In this recipe, we will leverage 3D indexes so that our nearest-neighbor search works in all the dimensions our data are in.
How to do it...
We will use the LiDAR data imported in the previous recipe as our dataset of choice. We named that table chp07.lidar
. To perform a nearest-neighbor search, we will require an index created on the dataset. Spatial indexes, much like ordinary database table indexes, are similar to book indexes insofar as they help us find what we are looking for faster. Ordinarily, such an index-creation step would look like the following (which we won't run this time):
CREATE INDEX chp07_lidar_the_geom_idx
ON chp07.lidar USING gist(the_geom);
A 3D index does not perform as quickly as a 2D index for 2D...