Skip to content

Instantly share code, notes, and snippets.

@njtierney
Created February 27, 2026 02:20
Show Gist options
  • Select an option

  • Save njtierney/65a4ba3e68b1ffdbe42783addd650356 to your computer and use it in GitHub Desktop.

Select an option

Save njtierney/65a4ba3e68b1ffdbe42783addd650356 to your computer and use it in GitHub Desktop.
# Create a SpatRaster from a file
library(bench)
library(terra)
#> terra 1.8.93
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)

drv <- terra::as.data.frame(r)

empty_rast <- rast()

suppressWarnings({
bm1 <- bench::mark(
  hasValues = !terra::hasValues(empty_rast),
  dim = dim(terra::as.data.frame(empty_rast))[1] == 0
)
})

bm2 <- bench::mark(
  !terra::hasValues(r),
  dim = dim(terra::as.data.frame(r))[1] == 0
)

bm1
#> # A tibble: 2 × 6
#>   expression      min   median `itr/sec` mem_alloc `gc/sec`
#>   <bch:expr> <bch:tm> <bch:tm>     <dbl> <bch:byt>    <dbl>
#> 1 hasValues    4.18µs   4.67µs   208572.        0B     20.9
#> 2 dim        624.51µs 866.95µs     1113.    5.51MB    164.
bm2
#> # A tibble: 2 × 6
#>   expression                min   median `itr/sec` mem_alloc `gc/sec`
#>   <bch:expr>           <bch:tm> <bch:tm>     <dbl> <bch:byt>    <dbl>
#> 1 !terra::hasValues(r)   4.14µs   4.63µs   214060.        0B     21.4
#> 2 dim                  357.97µs 421.11µs     2236.     638KB     28.6

summary(bm1, relative = TRUE)
#> # A tibble: 2 × 6
#>   expression   min median `itr/sec` mem_alloc `gc/sec`
#>   <bch:expr> <dbl>  <dbl>     <dbl>     <dbl>    <dbl>
#> 1 hasValues     1      1       187.       NaN     1   
#> 2 dim         149.   185.        1        Inf     7.88
summary(bm1, relative = TRUE)
#> # A tibble: 2 × 6
#>   expression   min median `itr/sec` mem_alloc `gc/sec`
#>   <bch:expr> <dbl>  <dbl>     <dbl>     <dbl>    <dbl>
#> 1 hasValues     1      1       187.       NaN     1   
#> 2 dim         149.   185.        1        Inf     7.88

Created on 2026-02-27 with reprex v2.1.1

Session info

sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.5.2 (2025-10-31)
#>  os       macOS Tahoe 26.2
#>  system   aarch64, darwin20
#>  ui       X11
#>  language (EN)
#>  collate  en_US.UTF-8
#>  ctype    en_US.UTF-8
#>  tz       Australia/Hobart
#>  date     2026-02-27
#>  pandoc   3.6.3 @ /Applications/Positron.app/Contents/Resources/app/quarto/bin/tools/aarch64/ (via rmarkdown)
#>  quarto   1.7.31 @ /Applications/quarto/bin/quarto
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date (UTC) lib source
#>  bench       * 1.1.4   2025-01-16 [1] CRAN (R 4.5.0)
#>  cli           3.6.5   2025-04-23 [1] CRAN (R 4.5.0)
#>  codetools     0.2-20  2024-03-31 [2] CRAN (R 4.5.2)
#>  digest        0.6.39  2025-11-19 [1] CRAN (R 4.5.2)
#>  evaluate      1.0.5   2025-08-27 [1] CRAN (R 4.5.0)
#>  fastmap       1.2.0   2024-05-15 [1] CRAN (R 4.5.0)
#>  fs            1.6.6   2025-04-12 [1] CRAN (R 4.5.0)
#>  glue          1.8.0   2024-09-30 [1] CRAN (R 4.5.0)
#>  htmltools     0.5.9   2025-12-04 [1] CRAN (R 4.5.2)
#>  knitr         1.51    2025-12-20 [1] CRAN (R 4.5.2)
#>  lifecycle     1.0.5   2026-01-08 [1] CRAN (R 4.5.2)
#>  magrittr      2.0.4   2025-09-12 [1] CRAN (R 4.5.0)
#>  otel          0.2.0   2025-08-29 [1] CRAN (R 4.5.0)
#>  pillar        1.11.1  2025-09-17 [1] CRAN (R 4.5.0)
#>  pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.5.0)
#>  profmem       0.7.0   2025-05-02 [1] CRAN (R 4.5.0)
#>  Rcpp          1.1.1   2026-01-10 [1] CRAN (R 4.5.2)
#>  reprex        2.1.1   2024-07-06 [1] CRAN (R 4.5.0)
#>  rlang         1.1.7   2026-01-09 [1] CRAN (R 4.5.2)
#>  rmarkdown     2.30    2025-09-28 [1] CRAN (R 4.5.0)
#>  sessioninfo   1.2.3   2025-02-05 [1] CRAN (R 4.5.0)
#>  terra       * 1.8-93  2026-01-12 [1] CRAN (R 4.5.2)
#>  tibble        3.3.1   2026-01-11 [1] CRAN (R 4.5.2)
#>  utf8          1.2.6   2025-06-08 [1] CRAN (R 4.5.0)
#>  vctrs         0.7.1   2026-01-23 [1] CRAN (R 4.5.2)
#>  withr         3.0.2   2024-10-28 [1] CRAN (R 4.5.0)
#>  xfun          0.56    2026-01-18 [1] CRAN (R 4.5.2)
#>  yaml          2.3.12  2025-12-10 [1] CRAN (R 4.5.2)
#> 
#>  [1] /Users/nick_1/Library/R/arm64/4.5/library
#>  [2] /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/library
#>  * ── Packages attached to the search path.
#> 
#> ──────────────────────────────────────────────────────────────────────────────
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment