I'm using

opt_filter(ctg) <- "-drop_overlap -drop_z_below 0"`
ctg_norm <- lasnormalize(ctg, algorithm = knnidw(k = 10, p = 2), na.rm = FALSE, use_class = c(2L, 9L))

Are overlapping and negative values disregarded only for normalizing purposes, but still written to output las files? (i.e. I am getting negative values in my normalized output, but I am also getting fewer points. Wondering where those missing points went is what lead me to the question in the first place).

  • New information to explain my negative values... '-drop_z_below' did indeed remove negative points of class 2 & class 9. However, a few low-vegetation points ended up as a negative normalized height where ground points were sparse and slightly uphill from the vegetation.
    – Ray J
    Commented Jan 21, 2020 at 19:25

1 Answer 1


When you use the filter argument using either

readLAS("file.las", filter = "...")


opt_filter(ctg) <- "..."

The points are not read from the file. They are just skipped. They are not loaded in memory thus you normalize a point cloud that does not contain those points and you write back .las files that do not contain those points.

That being said -drop_z_below 0 is unlikely to remove a lot points from raw data unless you have data from Netherlands :-). And -drop_overlap is not a magic command that remove points in overlaps. It drops points that are flagged overlap. First this flag exists only for LAS file format 1.4. So if your files are not 1.4 it does nothing. And if they are 1.4 you should pay attention if this flag is actually properly populated or not. I don't know if you used it properly or not this is why I prefer to put a warning here.

  • So to clarify, under normal circumstances there should be no negative values in the normalized file after using '-drop_overlap'? (I need to examine my original las file as results don't seem to make sense - also I didn't get the zRef output so I can't unnormalize either). Thank you.
    – Ray J
    Commented Jan 17, 2020 at 17:47
  • Depending on the quality of the ground classification and the method used to normalize you will have more or less numerous negative points in the normalized data. In your case you try to remove negative elevations from raw data. You may have some but it is unlikely. zref is discarded at write time. But this is another question.
    – JRR
    Commented Jan 17, 2020 at 17:52
  • Sorry, I meant to say "there should be no negative values in the normalized file after using '-drop_z_below 0'?" Thank you for your patience! (I do in fact have problems with negative ground z values and thought I'd try to remove the obvious errors).
    – Ray J
    Commented Jan 17, 2020 at 18:00
  • 1
    If you use -drop_z_below 0, the points with Z < 0 won't be read. It does not mean they do not exist but they are not read and thus not loaded in memory.
    – JRR
    Commented Jan 17, 2020 at 18:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.