LiDAR – Addressing Overlapping (Duplicate) ALS Tiles Issue

lidarlidr

Related to this question: Overlapping LAS tiles, but none of the answers explicitly addressed my issue.

I have overlapping ALS tiles, but not from 'duplicate' files.
The tiles overlap because of scanning that was collected during two different flights, and so they overlap at the borders (see image below). They have duplicate coverage, but do not have the same file name.

How can I remove these duplicate tiles?
Note that I have access to lastools, but I did not tag it.
enter image description here

Best Answer

filter_duplicates() removes duplicated points from a point cloud. There is no native function to remove overlapping tiles because each case is likely to be data specific an prone to false positive.

If two files overlap it may or may not be a problem. It is a problem if duplicated points are present into the files and are subsequently loaded together. For example if each tile has been extended with a buffer. However if the bounding boxes of the files overlaps but the actual point-cloud is continuous without duplicated point it is not a problem. What you must understand is that lidR loads successive areas and the question is: does loading an arbitrary area of interest will load an invalid point-cloud?

In your case I don't know if you must of must not remove some files. Assuming that the point-cloud is legit and you want to use all the points you can keep all your files and process by chunks of 1000 m

opt_chunk_size(ctg) = 1000

But you must not process by file because this will generate invalid areas because of overlapping tiles (in your case twice the same area). Indeed by file does not mean "by file" but means that the successive areas processed are generated from files which make sense only for contiguous and non overlapping tiles.

If you want to remove the overlapping tiles you must do it by hand. For example looking for duplicated bounding boxes

rm = duplicated(ctg@data[,c("Max.X", "Min.X", "Max.Y", "Min.Y")])
ctg = ctg[!rm,]

It works only if the bounding boxes are exactly the same. If there is a millimetre of difference it won't detect duplicates. Is this case you could round the coordinates for simple cases or make more complex comparisons for more complex cases.

Related Question