CRAN Package Check Results for Package lidR

Last updated on 2025-12-28 01:48:43 CET.

Flavor Version Tinstall Tcheck Ttotal Status Flags
r-devel-linux-x86_64-debian-clang 4.2.2 140.95 547.25 688.20 NOTE
r-devel-linux-x86_64-debian-gcc 4.2.2 97.07 337.54 434.61 NOTE
r-devel-linux-x86_64-fedora-clang 4.2.2 300.00 934.37 1234.37 NOTE
r-devel-linux-x86_64-fedora-gcc 4.2.2 282.00 990.21 1272.21 NOTE
r-devel-windows-x86_64 4.2.2 155.00 454.00 609.00 ERROR
r-patched-linux-x86_64 4.2.2 142.06 511.12 653.18 OK
r-release-linux-x86_64 4.2.2 148.17 507.58 655.75 OK
r-release-macos-arm64 4.2.2 OK
r-release-macos-x86_64 4.2.2 92.00 524.00 616.00 OK
r-release-windows-x86_64 4.2.2 160.00 482.00 642.00 OK
r-oldrel-macos-arm64 4.2.2 NOTE
r-oldrel-macos-x86_64 4.2.2 91.00 597.00 688.00 NOTE
r-oldrel-windows-x86_64 4.2.2 197.00 633.00 830.00 ERROR

Check Details

Version: 4.2.2
Check: compiled code
Result: NOTE File ‘lidR/libs/lidR.so’: Found non-API call to R: ‘ATTRIB’ Compiled code should not call non-API entry points in R. See ‘Writing portable packages’ in the ‘Writing R Extensions’ manual, and section ‘Moving into C API compliance’ for issues with the use of non-API entry points. Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc, r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc

Version: 4.2.2
Check: compiled code
Result: NOTE File 'lidR/libs/x64/lidR.dll': Found non-API call to R: 'ATTRIB' Compiled code should not call non-API entry points in R. See 'Writing portable packages' in the 'Writing R Extensions' manual, and section 'Moving into C API compliance' for issues with the use of non-API entry points. Flavor: r-devel-windows-x86_64

Version: 4.2.2
Check: examples
Result: ERROR Running examples in 'lidR-Ex.R' failed The error most likely occurred in: > ### Name: aggregate > ### Title: Metric derivation at different levels of regularization > ### Aliases: aggregate cloud_metrics crown_metrics hexagon_metrics > ### pixel_metrics plot_metrics polygon_metrics template_metrics > ### voxel_metrics > > ### ** Examples > > LASfile <- system.file("extdata", "Megaplot.laz", package="lidR") > las <- readLAS(LASfile, filter = "-keep_random_fraction 0.5") > col <- sf::sf.colors(15) > fun1 <- ~list(maxz = max(Z)) > fun2 <- ~list(q85 = quantile(Z, probs = 0.85)) > > set_lidr_threads(1) ; data.table::setDTthreads(1) # for cran only > > # ================ > # CLOUD METRICS > # ================ > > cloud_metrics(las, .stdmetrics_z) $zmax [1] 29.11 $zmean [1] 13.27629 $zsd [1] 7.456352 $zskew [1] -0.4764641 $zkurt [1] 2.086569 $zentropy [1] 0.9034754 $pzabovezmean [1] 57.36855 $pzabove2 [1] 85.71007 $zq5 [1] 0 $zq10 [1] 0.09 $zq15 [1] 2.86 $zq20 [1] 5.79 $zq25 [1] 7.81 $zq30 [1] 9.64 $zq35 [1] 11.21 $zq40 [1] 12.63 $zq45 [1] 13.83 $zq50 [1] 14.91 $zq55 [1] 16 $zq60 [1] 16.89 $zq65 [1] 17.71 $zq70 [1] 18.53 $zq75 [1] 19.3 $zq80 [1] 20.09 $zq85 [1] 20.88 $zq90 [1] 21.79 $zq95 [1] 23.05 $zpcum1 [1] 6.52697 $zpcum2 [1] 12.03731 $zpcum3 [1] 20.22982 $zpcum4 [1] 30.04461 $zpcum5 [1] 43.09585 $zpcum6 [1] 59.87833 $zpcum7 [1] 80.14871 $zpcum8 [1] 95.21968 $zpcum9 [1] 99.55928 > > # ================ > # PIXEL METRICS > # ================ > > m <- pixel_metrics(las, fun1, 20) > #plot(m, col = col) > > # ================ > # PLOT METRICS > # ================ > > shpfile <- system.file("extdata", "efi_plot.shp", package="lidR") > inventory <- sf::st_read(shpfile, quiet = TRUE) > inventory # contains an ID and a Value Of Interest (VOI) per plot Simple feature collection with 5 features and 2 fields Geometry type: POINT Dimension: XY Bounding box: xmin: 684838.9 ymin: 5017796 xmax: 684976.6 ymax: 5017958 Projected CRS: NAD83 / UTM zone 17N IDPEP VOI geometry 1 PEPQ1 14.157140 POINT (684976.6 5017821) 2 PEPQ2 12.720584 POINT (684923.9 5017958) 3 PEPQ3 11.396656 POINT (684838.9 5017942) 4 PEPQ4 11.597471 POINT (684855 5017891) 5 PEPQ5 8.263425 POINT (684944 5017796) > > m <- plot_metrics(las, fun2, inventory, radius = 11.28) > #plot(header(las)) > #plot(m["q85"], pch = 19, cex = 3, add = TRUE) > > > # ================ > # VOXEL METRICS > # ================ > > m <- voxel_metrics(las, length(Z), 8) Error in `[.data.table`(by, , `:=`(GRP, .GRP), by = c("Xgrid", "Ygrid", : attempt access index 3/3 in VECTOR_ELT Calls: voxel_metrics -> [ -> [.data.table Execution halted Flavor: r-devel-windows-x86_64

Version: 4.2.2
Check: tests
Result: ERROR Running 'testthat.R' [147s] Running the tests in 'tests/testthat.R' failed. Complete output: > Sys.setenv("R_TESTS" = "") > > library(testthat) > library(lidR) > test_check("lidR") Tests using raster: terra Tests using future: TRUE Tests using OpenMP thread: 1 Tests using rlas: 1.8.2 OGR: Unsupported geometry type OGR: Unsupported geometry type Chunk 1 of 1 (100%): state ✓ Saving _problems/test-metrics_voxels-5.R Saving _problems/test-metrics_voxels-14.R Saving _problems/test-metrics_voxels-23.R [ FAIL 3 | WARN 0 | SKIP 46 | PASS 1289 ] ══ Skipped tests (46) ══════════════════════════════════════════════════════════ • On CRAN (41): 'test-apply_automerge.R:99:3', 'test-apply_automerge.R:163:3', 'test-apply_automerge.R:183:3', 'test-apply_automerge.R:196:3', 'test-apply_automerge.R:217:3', 'test-apply_automerge.R:229:3', 'test-apply_automerge.R:263:3', 'test-apply_automerge.R:274:3', 'test-apply_automerge.R:320:3', 'test-apply_automerge.R:335:3', 'test-apply_autoread.R:3:3', 'test-apply_generic.R:22:3', 'test-apply_generic.R:108:3', 'test-catalog_laxindex.R:4:3', 'test-classify_ground.R:62:3', 'test-classify_poi.R:21:3', 'test-concaveman.R:15:3', 'test-concaveman.R:64:3', 'test-fullwaveform.R:2:3', 'test-generic_local_maximum.R:2:3', 'test-metrics_crowns.R:31:3', 'test-metrics_crowns.R:112:3', 'test-metrics_crowns.R:122:3', 'test-plot.R:7:3', 'test-plot.R:15:3', 'test-plot.R:49:3', 'test-plot.R:73:3', 'test-plot.R:79:3', 'test-plot.R:86:3', 'test-plot.R:93:3', 'test-plot.R:100:3', 'test-plot.R:107:3', 'test-plot.R:118:3', 'test-projection.R:82:3', 'test-projection.R:107:3', 'test-rasterize_canopy.R:66:3', 'test-rasterize_terrain.R:145:3', 'test-segment_snags.R:27:2', 'test-segment_trees.R:73:3', 'test-track_sensor.R:45:3', 'test-voxelize_points.R:15:3' • Point metrics disable (1): 'test-segment_shape.R:51:3' • Point metrics disabled (1): 'test-metrics_points.R:9:1' • empty test (3): , , ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-metrics_voxels.R:5:3'): voxel_metrics returns a named data.frame ── Error in ``[.data.table`(by, , `:=`(GRP, .GRP), by = c("Xgrid", "Ygrid", "Zgrid"))`: attempt access index 3/3 in VECTOR_ELT Backtrace: ▆ 1. └─lidR::voxel_metrics(las, list(Imean = mean(Intensity)), 5) at test-metrics_voxels.R:5:3 2. ├─by[, `:=`(GRP, .GRP), by = c("Xgrid", "Ygrid", "Zgrid")] 3. └─data.table:::`[.data.table`(...) ── Error ('test-metrics_voxels.R:14:3'): voxel_metrics works with all_voxels ─── Error in ``[.data.table`(by, , `:=`(GRP, .GRP), by = c("Xgrid", "Ygrid", "Zgrid"))`: attempt access index 3/3 in VECTOR_ELT Backtrace: ▆ 1. └─lidR::voxel_metrics(las, list(Imean = mean(Intensity)), 5, all_voxels = TRUE) at test-metrics_voxels.R:14:3 2. ├─by[, `:=`(GRP, .GRP), by = c("Xgrid", "Ygrid", "Zgrid")] 3. └─data.table:::`[.data.table`(...) ── Error ('test-metrics_voxels.R:23:3'): voxel_metrics accepts both an expression or a formula ── Error in ``[.data.table`(by, , `:=`(GRP, .GRP), by = c("Xgrid", "Ygrid", "Zgrid"))`: attempt access index 3/3 in VECTOR_ELT Backtrace: ▆ 1. └─lidR::voxel_metrics(las, list(Imean = mean(Intensity)), 5) at test-metrics_voxels.R:23:3 2. ├─by[, `:=`(GRP, .GRP), by = c("Xgrid", "Ygrid", "Zgrid")] 3. └─data.table:::`[.data.table`(...) [ FAIL 3 | WARN 0 | SKIP 46 | PASS 1289 ] Error: ! Test failures. Execution halted Flavor: r-devel-windows-x86_64

Version: 4.2.2
Check: installed package size
Result: NOTE installed size is 15.3Mb sub-directories of 1Mb or more: R 2.0Mb doc 1.0Mb extdata 1.2Mb libs 10.5Mb Flavors: r-oldrel-macos-arm64, r-oldrel-macos-x86_64, r-oldrel-windows-x86_64

Version: 4.2.2
Check: tests
Result: ERROR Running 'testthat.R' [184s] Running the tests in 'tests/testthat.R' failed. Complete output: > Sys.setenv("R_TESTS" = "") > > library(testthat) > library(lidR) > test_check("lidR") Tests using raster: terra Tests using future: TRUE Tests using OpenMP thread: 1 Tests using rlas: 1.8.2 Saving _problems/test-apply_generic-85.R Saving _problems/test-apply_independent-19.R Saving _problems/test-apply_restart-21.R OGR: Unsupported geometry type OGR: Unsupported geometry type Saving _problems/test-metrics_pixels-163.R Saving _problems/test-metrics_pixels-225.R Chunk 1 of 1 (100%): state ✓ Saving _problems/test-rasterize_canopy-103.R Saving _problems/test-rasterize_canopy-121.R Saving _problems/test-rasterize_density-16.R Saving _problems/test-rasterize_terrain-129.R [ FAIL 9 | WARN 17 | SKIP 46 | PASS 1269 ] ══ Skipped tests (46) ══════════════════════════════════════════════════════════ • On CRAN (41): 'test-apply_automerge.R:99:3', 'test-apply_automerge.R:163:3', 'test-apply_automerge.R:183:3', 'test-apply_automerge.R:196:3', 'test-apply_automerge.R:217:3', 'test-apply_automerge.R:229:3', 'test-apply_automerge.R:263:3', 'test-apply_automerge.R:274:3', 'test-apply_automerge.R:320:3', 'test-apply_automerge.R:335:3', 'test-apply_autoread.R:3:3', 'test-apply_generic.R:22:3', 'test-apply_generic.R:108:3', 'test-catalog_laxindex.R:4:3', 'test-classify_ground.R:62:3', 'test-classify_poi.R:21:3', 'test-concaveman.R:15:3', 'test-concaveman.R:64:3', 'test-fullwaveform.R:2:3', 'test-generic_local_maximum.R:2:3', 'test-metrics_crowns.R:31:3', 'test-metrics_crowns.R:112:3', 'test-metrics_crowns.R:122:3', 'test-plot.R:7:3', 'test-plot.R:15:3', 'test-plot.R:49:3', 'test-plot.R:73:3', 'test-plot.R:79:3', 'test-plot.R:86:3', 'test-plot.R:93:3', 'test-plot.R:100:3', 'test-plot.R:107:3', 'test-plot.R:118:3', 'test-projection.R:82:3', 'test-projection.R:107:3', 'test-rasterize_canopy.R:66:3', 'test-rasterize_terrain.R:145:3', 'test-segment_snags.R:27:2', 'test-segment_trees.R:73:3', 'test-track_sensor.R:45:3', 'test-voxelize_points.R:15:3' • Point metrics disable (1): 'test-segment_shape.R:51:3' • Point metrics disabled (1): 'test-metrics_points.R:9:1' • empty test (3): , , ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-apply_generic.R:85:3'): catalog_apply fixes chunk alignment even by file ── Error: [rast] empty srs Backtrace: ▆ 1. └─lidR::catalog_sapply(ctg, test, res = res, align = sta) at test-apply_generic.R:85:3 2. └─lidR::catalog_apply(ctg, FUN, ..., .options = .options) 3. └─lidR::engine_apply(...) 4. ├─terra::rast(res) 5. └─terra::rast(res) 6. └─terra (local) .local(x, ...) 7. ├─terra::unwrap(x) 8. └─terra::unwrap(x) 9. └─terra (local) .local(x, ...) 10. ├─base::eval(parse(text = x@definition)) 11. │ └─base::eval(parse(text = x@definition)) 12. ├─terra::rast(...) 13. └─terra::rast(...) 14. └─terra (local) .local(x = x, ...) 15. └─terra:::new_rast(...) 16. └─terra:::messages(r, "rast") 17. └─terra:::error(f, x@pntr$getError()) ── Error ('test-apply_independent.R:19:3'): opt_independent_files built several DTMs without error ── Error: [rast] empty srs Backtrace: ▆ 1. ├─lidR::rasterize_terrain(ctg, 1, tin()) at test-apply_independent.R:19:3 2. └─lidR:::rasterize_terrain.LAScatalog(ctg, 1, tin()) 3. └─lidR::catalog_apply(...) 4. └─lidR::engine_apply(...) 5. ├─terra::rast(res) 6. └─terra::rast(res) 7. └─terra (local) .local(x, ...) 8. ├─terra::unwrap(x) 9. └─terra::unwrap(x) 10. └─terra (local) .local(x, ...) 11. ├─base::eval(parse(text = x@definition)) 12. │ └─base::eval(parse(text = x@definition)) 13. ├─terra::rast(...) 14. └─terra::rast(...) 15. └─terra (local) .local(x = x, ...) 16. └─terra:::new_rast(...) 17. └─terra:::messages(r, "rast") 18. └─terra:::error(f, x@pntr$getError()) ── Error ('test-apply_restart.R:21:3'): catalog engine returns a valid output ── Error: [rast] empty srs Backtrace: ▆ 1. ├─lidR::pixel_metrics(ctg, ~mean(Z), 20) at test-apply_restart.R:21:3 2. └─lidR:::pixel_metrics.LAScatalog(ctg, ~mean(Z), 20) 3. └─lidR::catalog_apply(...) 4. └─lidR::engine_apply(...) 5. ├─terra::rast(res) 6. └─terra::rast(res) 7. └─terra (local) .local(x, ...) 8. ├─terra::unwrap(x) 9. └─terra::unwrap(x) 10. └─terra (local) .local(x, ...) 11. ├─base::eval(parse(text = x@definition)) 12. │ └─base::eval(parse(text = x@definition)) 13. ├─terra::rast(...) 14. └─terra::rast(...) 15. └─terra (local) .local(x = x, ...) 16. └─terra:::new_rast(...) 17. └─terra:::messages(r, "rast") 18. └─terra:::error(f, x@pntr$getError()) ── Error ('test-metrics_pixels.R:163:3'): pixel_metric returns the same both with LAScatalog and LAS ── Error: [rast] empty srs Backtrace: ▆ 1. ├─lidR::pixel_metrics(ctg, f1, 20) at test-metrics_pixels.R:163:3 2. └─lidR:::pixel_metrics.LAScatalog(ctg, f1, 20) 3. └─lidR::catalog_apply(...) 4. └─lidR::engine_apply(...) 5. ├─terra::rast(res) 6. └─terra::rast(res) 7. └─terra (local) .local(x, ...) 8. ├─terra::unwrap(x) 9. └─terra::unwrap(x) 10. └─terra (local) .local(x, ...) 11. ├─base::eval(parse(text = x@definition)) 12. │ └─base::eval(parse(text = x@definition)) 13. ├─terra::rast(...) 14. └─terra::rast(...) 15. └─terra (local) .local(x = x, ...) 16. └─terra:::new_rast(...) 17. └─terra:::messages(r, "rast") 18. └─terra:::error(f, x@pntr$getError()) ── Failure ('test-metrics_pixels.R:225:3'): predefined metric set work both with a LAS and LAScatalog ── `pixel_metrics(ctg, .stdmetrics_z)` threw an error. Message: [rast] empty srs Class: simpleError/error/condition Backtrace: ▆ 1. ├─testthat::expect_error(pixel_metrics(ctg, .stdmetrics_z), NA) at test-metrics_pixels.R:225:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─lidR::pixel_metrics(ctg, .stdmetrics_z) 7. └─lidR:::pixel_metrics.LAScatalog(ctg, .stdmetrics_z) 8. └─lidR::catalog_apply(...) 9. └─lidR::engine_apply(...) 10. ├─terra::rast(res) 11. └─terra::rast(res) 12. └─terra (local) .local(x, ...) 13. ├─terra::unwrap(x) 14. └─terra::unwrap(x) 15. └─terra (local) .local(x, ...) 16. ├─base::eval(parse(text = x@definition)) 17. │ └─base::eval(parse(text = x@definition)) 18. ├─terra::rast(...) 19. └─terra::rast(...) 20. └─terra (local) .local(x = x, ...) 21. └─terra:::new_rast(...) 22. └─terra:::messages(r, "rast") 23. └─terra:::error(f, x@pntr$getError()) ── Error ('test-rasterize_canopy.R:103:3'): rasterize_canopy tin works both with LAS and LAScatalog ── Error: [rast] empty srs Backtrace: ▆ 1. ├─lidR::rasterize_canopy(ctg, 1, f) at test-rasterize_canopy.R:103:3 2. └─lidR:::rasterize_canopy.LAScatalog(ctg, 1, f) 3. └─lidR::catalog_apply(...) 4. └─lidR::engine_apply(...) 5. ├─terra::rast(res) 6. └─terra::rast(res) 7. └─terra (local) .local(x, ...) 8. ├─terra::unwrap(x) 9. └─terra::unwrap(x) 10. └─terra (local) .local(x, ...) 11. ├─base::eval(parse(text = x@definition)) 12. │ └─base::eval(parse(text = x@definition)) 13. ├─terra::rast(...) 14. └─terra::rast(...) 15. └─terra (local) .local(x = x, ...) 16. └─terra:::new_rast(...) 17. └─terra:::messages(r, "rast") 18. └─terra:::error(f, x@pntr$getError()) ── Error ('test-rasterize_canopy.R:121:3'): rasterize_canopy pit-free works both with LAS and LAScatalog ── Error: [rast] empty srs Backtrace: ▆ 1. ├─lidR::rasterize_canopy(ctg, 1, f) at test-rasterize_canopy.R:121:3 2. └─lidR:::rasterize_canopy.LAScatalog(ctg, 1, f) 3. └─lidR::catalog_apply(...) 4. └─lidR::engine_apply(...) 5. ├─terra::rast(res) 6. └─terra::rast(res) 7. └─terra (local) .local(x, ...) 8. ├─terra::unwrap(x) 9. └─terra::unwrap(x) 10. └─terra (local) .local(x, ...) 11. ├─base::eval(parse(text = x@definition)) 12. │ └─base::eval(parse(text = x@definition)) 13. ├─terra::rast(...) 14. └─terra::rast(...) 15. └─terra (local) .local(x = x, ...) 16. └─terra:::new_rast(...) 17. └─terra:::messages(r, "rast") 18. └─terra:::error(f, x@pntr$getError()) ── Error ('test-rasterize_density.R:16:3'): rasterize_density returns the same both with LAScatalog and LAS ── Error: [rast] empty srs Backtrace: ▆ 1. ├─lidR::rasterize_density(ctg) at test-rasterize_density.R:16:3 2. └─lidR:::rasterize_density.LAScatalog(ctg) 3. └─lidR::catalog_map(las, rasterize_density, res = res, ..., .options = options) 4. └─lidR::catalog_apply(ctg, FUN, ..., .options = .options) 5. └─lidR::engine_apply(...) 6. ├─terra::rast(res) 7. └─terra::rast(res) 8. └─terra (local) .local(x, ...) 9. ├─terra::unwrap(x) 10. └─terra::unwrap(x) 11. └─terra (local) .local(x, ...) 12. ├─base::eval(parse(text = x@definition)) 13. │ └─base::eval(parse(text = x@definition)) 14. ├─terra::rast(...) 15. └─terra::rast(...) 16. └─terra (local) .local(x = x, ...) 17. └─terra:::new_rast(...) 18. └─terra:::messages(r, "rast") 19. └─terra:::error(f, x@pntr$getError()) ── Error ('test-rasterize_terrain.R:129:3'): rasterize_terrain returns the same both with LAScatalog and LAS ── Error: [rast] empty srs Backtrace: ▆ 1. ├─lidR::rasterize_terrain(ctg, 1, tin()) at test-rasterize_terrain.R:129:3 2. └─lidR:::rasterize_terrain.LAScatalog(ctg, 1, tin()) 3. └─lidR::catalog_apply(...) 4. └─lidR::engine_apply(...) 5. ├─terra::rast(res) 6. └─terra::rast(res) 7. └─terra (local) .local(x, ...) 8. ├─terra::unwrap(x) 9. └─terra::unwrap(x) 10. └─terra (local) .local(x, ...) 11. ├─base::eval(parse(text = x@definition)) 12. │ └─base::eval(parse(text = x@definition)) 13. ├─terra::rast(...) 14. └─terra::rast(...) 15. └─terra (local) .local(x = x, ...) 16. └─terra:::new_rast(...) 17. └─terra:::messages(r, "rast") 18. └─terra:::error(f, x@pntr$getError()) [ FAIL 9 | WARN 17 | SKIP 46 | PASS 1269 ] Error: ! Test failures. Execution halted Flavor: r-oldrel-windows-x86_64

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.