I'm having trouble normalizing a LAScatalog. I wonder whether my methodology is flawed, or if something is possibly wrong with my dataset (a point cloud based on photogrammetry). When I try to normalize my LAScatalog, which contains 8 tiles, only one tile appears to output, even though the summary() function shows that both catalogs contain 8 tiles. My process is as follows:

First, normalize_height() runs smoothly.

norm <- normalize_height(ctg, tin())

enter image description here

However, plot(norm) only shows one tile.

enter image description here

Following are the summaries for ctg and norm, respectively.

enter image description here

enter image description here

I also tried a hybrid method with a DEM (as described in lidR handbook, here). But after creating a DEM, I still only see one tile.

dem <- rasterize_terrain(ctg, algorithm =tin())


enter image description here

Next, I attempt the hybrid approach with the DEM I created.

norm2 <- normalize_height(ctg, dtm=dem, tin())

enter image description here

enter image description here

Does anyone have any thoughts or suspicions as to why I'm only seeing one tile in my output? Or why my normalization is failing, more generally?

  • 1
    I see that norm contains 8 files, but the extent is incorrect. Hard to says anything without a reproducible example. Reproduce and produce more useful data to maybe report a bug. I can't say anything with screeshoot of code and no reproduce example. Your normalization with a DTM fails because the DTM does not encompasses the lidar data. This one is expected.
    – JRR
    Commented Nov 14, 2023 at 0:47
  • Okay, thank you! Do you have a recommendation for how I would create a reproducible example for this? Would it involve uploading some zipped data? Commented Nov 15, 2023 at 18:57
  • 1
    Maybe 2 or 4 files are enough to reproduce.
    – JRR
    Commented Nov 15, 2023 at 19:19
  • Got it; just posted a Github issue 🙏 Commented Nov 16, 2023 at 1:00

1 Answer 1


JRR answered my question over in Github issues, here 🎉 I simply needed to add a template to my file path for opt_output_files(). Without a template path, my previous tile kept being overwritten by the next one, leaving just the last tile. I needed to add something like this:

opt_output_files(ctg) <- R_OUTPUT_FILES

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.