Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when plotting a {sf} object #264

Open
dicorynia opened this issue Sep 4, 2023 · 0 comments
Open

Error when plotting a {sf} object #264

dicorynia opened this issue Sep 4, 2023 · 0 comments

Comments

@dicorynia
Copy link

dicorynia commented Sep 4, 2023

Hi
Not sure if it comes from {furrr}, {sf} or another package in between, ({future}, {vctrs} ?). Let me know if I should report elsewhere...

When plotting each row of a spatial layer ({sf} polygon object) with {ggplot2} or base plot, it works with walk but I get some errors using future_walk.

This code used to work with previous versions of the packages, but I can't give precisely the version number of the different packages, or exactly when (a few month ago ?)...

Reproducible example

library(dplyr)
#> 
#> Attachement du package : 'dplyr'
#> Les objets suivants sont masqués depuis 'package:stats':
#> 
#>     filter, lag
#> Les objets suivants sont masqués depuis 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(ggplot2)
library(purrr)
library(furrr)
#> Le chargement a nécessité le package : future
library(sf)
#> Linking to GEOS 3.11.2, GDAL 3.6.2, PROJ 9.2.0; sf_use_s2() is TRUE

plan(multisession, workers = 2)

# create a {sf} layer with 2 polygons
layer <- data.frame(id = 1:2) %>% 
  mutate(geom = c("POINT(0 0)", "POINT(0 1)")) %>% 
  st_as_sf(wkt = "geom") %>% 
  st_buffer(0.5)

with ggplot: work with walk but not future_walk

# ggplot and save a map of the layer d for id == i
my_plot <- function(i, d) {
  d %>% 
    filter(id == i) %>% 
    ggplot() +
    geom_sf()
  
  ggsave(paste0("plot_", i, ".png"))
}

layer %>%
  pull(id) %>%
  walk(my_plot, d = layer)
#> Saving 7 x 5 in image
#> Saving 7 x 5 in image

layer %>%
  pull(id) %>%
  future_walk(my_plot, d = layer)
#> Error:
#> ℹ In index: 1.
#> Caused by error in `vec_size()`:
#> ! `x` must be a vector, not a <sfc_POLYGON/sfc> object.
#> Backtrace:
#>      ▆
#>   1. ├─parallel (local) workRSOCK()
#>   2. │ └─parallel:::workLoop(...)
#>   3. │   └─parallel:::workCommand(master)
#>   4. │     ├─base::tryCatch(...)
#>   5. │     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
#>   6. │     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
#>   7. │     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
#>   8. │     ├─base::tryCatch(...)
#>   9. │     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
#>  10. │     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
#>  11. │     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
#>  12. │     ├─base::do.call(msg$data$fun, msg$data$args, quote = TRUE)
#>  13. │     └─future (local) `<fn>`(...)
#>  14. │       └─base::eval(expr, envir = envir, enclos = enclos)
#>  15. │         └─base::eval(expr, envir = envir, enclos = enclos)
#>  16. ├─base::tryCatch(...)
#>  17. │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
#>  18. │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
#>  19. │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
#>  20. ├─base::withCallingHandlers(...)
#>  21. ├─base::withVisible(...)
#>  22. ├─base::local(...)
#>  23. │ └─base::eval.parent(substitute(eval(quote(expr), envir)))
#>  24. │   └─base::eval(expr, p)
#>  25. │     └─base::eval(expr, p)
#>  26. ├─base::eval(...)
#>  27. │ └─base::eval(...)
#>  28. │   ├─base::withCallingHandlers(...)
#>  29. │   ├─base::do.call(...furrr_map_fn, args)
#>  30. │   └─purrr (local) `<fn>`(.x = 1L, .f = `<fn>`, d = `<sf[,2]>`)
#>  31. │     └─purrr:::map_("list", .x, .f, ..., .progress = .progress)
#>  32. │       ├─purrr:::with_indexed_errors(...)
#>  33. │       │ └─base::withCallingHandlers(...)
#>  34. │       ├─purrr:::call_with_cleanup(...)
#>  35. │       └─.f(.x[[i]], ...)
#>  36. │         └─global ...furrr_fn(...)
#>  37. │           └─d %>% filter(id == i) %>% ggplot()
#>  38. ├─ggplot2::ggplot(.)
#>  39. ├─dplyr::filter(., id == i)
#>  40. ├─dplyr:::filter.data.frame(., id == i)
#>  41. │ ├─dplyr::dplyr_row_slice(.data, loc, preserve = .preserve)
#>  42. │ └─dplyr:::dplyr_row_slice.data.frame(.data, loc, preserve = .preserve)
#>  43. │   ├─dplyr::dplyr_reconstruct(vec_slice(data, i), data)
#>  44. │   │ └─dplyr:::dplyr_new_data_frame(data)
#>  45. │   │   ├─row.names %||% .row_names_info(x, type = 0L)
#>  46. │   │   └─base::.row_names_info(x, type = 0L)
#>  47. │   └─vctrs::vec_slice(data, i)
#>  48. └─vctrs:::stop_scalar_type(`<fn>`(`<s_POLYGO>`), "x", `<fn>`(vec_size()))
#>  49.   └─vctrs:::stop_vctrs(...)
#>  50.     └─rlang::abort(message, class = c(class, "vctrs_error"), ..., call = call)

with base plot: work with walk but not future_walk

# plot and save a map of the layer d for id == i
my_plot_base <- function(i, d) {
  plot(d[d$id == i, ], main = i)
}

layer %>% 
  pull(id) %>% 
  walk(my_plot_base, d = layer)

layer %>% 
  pull(id) %>% 
  future_walk(my_plot_base, d = layer)
#> Warning in min(x): aucun argument trouvé pour min ; Inf est renvoyé
#> Warning in max(x): aucun argument pour max ; -Inf est renvoyé
#> Error:
#> ℹ In index: 1.
#> Caused by error in `plot.window()`:
#> ! valeurs finies requises pour 'ylim'
#> Backtrace:
#>      ▆
#>   1. ├─parallel (local) workRSOCK()
#>   2. │ └─parallel:::workLoop(...)
#>   3. │   └─parallel:::workCommand(master)
#>   4. │     ├─base::tryCatch(...)
#>   5. │     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
#>   6. │     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
#>   7. │     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
#>   8. │     ├─base::tryCatch(...)
#>   9. │     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
#>  10. │     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
#>  11. │     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
#>  12. │     ├─base::do.call(msg$data$fun, msg$data$args, quote = TRUE)
#>  13. │     └─future (local) `<fn>`(...)
#>  14. │       └─base::eval(expr, envir = envir, enclos = enclos)
#>  15. │         └─base::eval(expr, envir = envir, enclos = enclos)
#>  16. ├─base::tryCatch(...)
#>  17. │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
#>  18. │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
#>  19. │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
#>  20. ├─base::withCallingHandlers(...)
#>  21. ├─base::withVisible(...)
#>  22. ├─base::local(...)
#>  23. │ └─base::eval.parent(substitute(eval(quote(expr), envir)))
#>  24. │   └─base::eval(expr, p)
#>  25. │     └─base::eval(expr, p)
#>  26. ├─base::eval(...)
#>  27. │ └─base::eval(...)
#>  28. │   ├─base::withCallingHandlers(...)
#>  29. │   ├─base::do.call(...furrr_map_fn, args)
#>  30. │   └─purrr (local) `<fn>`(.x = 1L, .f = `<fn>`, d = `<sf[,2]>`)
#>  31. │     └─purrr:::map_("list", .x, .f, ..., .progress = .progress)
#>  32. │       ├─purrr:::with_indexed_errors(...)
#>  33. │       │ └─base::withCallingHandlers(...)
#>  34. │       ├─purrr:::call_with_cleanup(...)
#>  35. │       └─.f(.x[[i]], ...)
#>  36. │         └─global ...furrr_fn(...)
#>  37. │           ├─base::plot(d[d$id == i, ], main = i)
#>  38. │           └─graphics:::plot.data.frame(d[d$id == i, ], main = i)
#>  39. │             └─graphics (local) plot2(x, ...)
#>  40. │               ├─base::plot(x[[1L]], x[[2L]], xlab = xlab, ylab = ylab, ...)
#>  41. │               └─graphics::plot.default(...)
#>  42. │                 └─graphics (local) localWindow(xlim, ylim, log, asp, ...)
#>  43. │                   └─graphics::plot.window(...)
#>  44. └─base::.handleSimpleError(...)
#>  45.   └─purrr (local) h(simpleError(msg, call))
#>  46.     └─cli::cli_abort(...)
#>  47.       └─rlang::abort(...)

just displaying is fine

display <- function(i, d) {
  print(d[d$id == i, ])
}

layer %>% 
  pull(id) %>% 
  future_walk(display, d = layer)
#>   id
#> 1  1
#>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 geom
#> 1 5.000000e-01, 4.993148e-01, 4.972609e-01, 4.938442e-01, 4.890738e-01, 4.829629e-01, 4.755283e-01, 4.667902e-01, 4.567727e-01, 4.455033e-01, 4.330127e-01, 4.193353e-01, 4.045085e-01, 3.885730e-01, 3.715724e-01, 3.535534e-01, 3.345653e-01, 3.146602e-01, 2.938926e-01, 2.723195e-01, 2.500000e-01, 2.269952e-01, 2.033683e-01, 1.791840e-01, 1.545085e-01, 1.294095e-01, 1.039558e-01, 7.821723e-02, 5.226423e-02, 2.616798e-02, 3.061516e-17, -2.616798e-02, -5.226423e-02, -7.821723e-02, -1.039558e-01, -1.294095e-01, -1.545085e-01, -1.791840e-01, -2.033683e-01, -2.269952e-01, -2.500000e-01, -2.723195e-01, -2.938926e-01, -3.146602e-01, -3.345653e-01, -3.535534e-01, -3.715724e-01, -3.885730e-01, -4.045085e-01, -4.193353e-01, -4.330127e-01, -4.455033e-01, -4.567727e-01, -4.667902e-01, -4.755283e-01, -4.829629e-01, -4.890738e-01, -4.938442e-01, -4.972609e-01, -4.993148e-01, -5.000000e-01, -4.993148e-01, -4.972609e-01, -4.938442e-01, -4.890738e-01, -4.829629e-01, -4.755283e-01, -4.667902e-01, -4.567727e-01, -4.455033e-01, -4.330127e-01, -4.193353e-01, -4.045085e-01, -3.885730e-01, -3.715724e-01, -3.535534e-01, -3.345653e-01, -3.146602e-01, -2.938926e-01, -2.723195e-01, -2.500000e-01, -2.269952e-01, -2.033683e-01, -1.791840e-01, -1.545085e-01, -1.294095e-01, -1.039558e-01, -7.821723e-02, -5.226423e-02, -2.616798e-02, -9.184548e-17, 2.616798e-02, 5.226423e-02, 7.821723e-02, 1.039558e-01, 1.294095e-01, 1.545085e-01, 1.791840e-01, 2.033683e-01, 2.269952e-01, 2.500000e-01, 2.723195e-01, 2.938926e-01, 3.146602e-01, 3.345653e-01, 3.535534e-01, 3.715724e-01, 3.885730e-01, 4.045085e-01, 4.193353e-01, 4.330127e-01, 4.455033e-01, 4.567727e-01, 4.667902e-01, 4.755283e-01, 4.829629e-01, 4.890738e-01, 4.938442e-01, 4.972609e-01, 4.993148e-01, 5.000000e-01, 0.000000e+00, -2.616798e-02, -5.226423e-02, -7.821723e-02, -1.039558e-01, -1.294095e-01, -1.545085e-01, -1.791840e-01, -2.033683e-01, -2.269952e-01, -2.500000e-01, -2.723195e-01, -2.938926e-01, -3.146602e-01, -3.345653e-01, -3.535534e-01, -3.715724e-01, -3.885730e-01, -4.045085e-01, -4.193353e-01, -4.330127e-01, -4.455033e-01, -4.567727e-01, -4.667902e-01, -4.755283e-01, -4.829629e-01, -4.890738e-01, -4.938442e-01, -4.972609e-01, -4.993148e-01, -5.000000e-01, -4.993148e-01, -4.972609e-01, -4.938442e-01, -4.890738e-01, -4.829629e-01, -4.755283e-01, -4.667902e-01, -4.567727e-01, -4.455033e-01, -4.330127e-01, -4.193353e-01, -4.045085e-01, -3.885730e-01, -3.715724e-01, -3.535534e-01, -3.345653e-01, -3.146602e-01, -2.938926e-01, -2.723195e-01, -2.500000e-01, -2.269952e-01, -2.033683e-01, -1.791840e-01, -1.545085e-01, -1.294095e-01, -1.039558e-01, -7.821723e-02, -5.226423e-02, -2.616798e-02, -6.123032e-17, 2.616798e-02, 5.226423e-02, 7.821723e-02, 1.039558e-01, 1.294095e-01, 1.545085e-01, 1.791840e-01, 2.033683e-01, 2.269952e-01, 2.500000e-01, 2.723195e-01, 2.938926e-01, 3.146602e-01, 3.345653e-01, 3.535534e-01, 3.715724e-01, 3.885730e-01, 4.045085e-01, 4.193353e-01, 4.330127e-01, 4.455033e-01, 4.567727e-01, 4.667902e-01, 4.755283e-01, 4.829629e-01, 4.890738e-01, 4.938442e-01, 4.972609e-01, 4.993148e-01, 5.000000e-01, 4.993148e-01, 4.972609e-01, 4.938442e-01, 4.890738e-01, 4.829629e-01, 4.755283e-01, 4.667902e-01, 4.567727e-01, 4.455033e-01, 4.330127e-01, 4.193353e-01, 4.045085e-01, 3.885730e-01, 3.715724e-01, 3.535534e-01, 3.345653e-01, 3.146602e-01, 2.938926e-01, 2.723195e-01, 2.500000e-01, 2.269952e-01, 2.033683e-01, 1.791840e-01, 1.545085e-01, 1.294095e-01, 1.039558e-01, 7.821723e-02, 5.226423e-02, 2.616798e-02, 0.000000e+00
#>   id
#> 2  2
#>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     geom
#> 2 5.000000e-01, 4.993148e-01, 4.972609e-01, 4.938442e-01, 4.890738e-01, 4.829629e-01, 4.755283e-01, 4.667902e-01, 4.567727e-01, 4.455033e-01, 4.330127e-01, 4.193353e-01, 4.045085e-01, 3.885730e-01, 3.715724e-01, 3.535534e-01, 3.345653e-01, 3.146602e-01, 2.938926e-01, 2.723195e-01, 2.500000e-01, 2.269952e-01, 2.033683e-01, 1.791840e-01, 1.545085e-01, 1.294095e-01, 1.039558e-01, 7.821723e-02, 5.226423e-02, 2.616798e-02, 3.061516e-17, -2.616798e-02, -5.226423e-02, -7.821723e-02, -1.039558e-01, -1.294095e-01, -1.545085e-01, -1.791840e-01, -2.033683e-01, -2.269952e-01, -2.500000e-01, -2.723195e-01, -2.938926e-01, -3.146602e-01, -3.345653e-01, -3.535534e-01, -3.715724e-01, -3.885730e-01, -4.045085e-01, -4.193353e-01, -4.330127e-01, -4.455033e-01, -4.567727e-01, -4.667902e-01, -4.755283e-01, -4.829629e-01, -4.890738e-01, -4.938442e-01, -4.972609e-01, -4.993148e-01, -5.000000e-01, -4.993148e-01, -4.972609e-01, -4.938442e-01, -4.890738e-01, -4.829629e-01, -4.755283e-01, -4.667902e-01, -4.567727e-01, -4.455033e-01, -4.330127e-01, -4.193353e-01, -4.045085e-01, -3.885730e-01, -3.715724e-01, -3.535534e-01, -3.345653e-01, -3.146602e-01, -2.938926e-01, -2.723195e-01, -2.500000e-01, -2.269952e-01, -2.033683e-01, -1.791840e-01, -1.545085e-01, -1.294095e-01, -1.039558e-01, -7.821723e-02, -5.226423e-02, -2.616798e-02, -9.184548e-17, 2.616798e-02, 5.226423e-02, 7.821723e-02, 1.039558e-01, 1.294095e-01, 1.545085e-01, 1.791840e-01, 2.033683e-01, 2.269952e-01, 2.500000e-01, 2.723195e-01, 2.938926e-01, 3.146602e-01, 3.345653e-01, 3.535534e-01, 3.715724e-01, 3.885730e-01, 4.045085e-01, 4.193353e-01, 4.330127e-01, 4.455033e-01, 4.567727e-01, 4.667902e-01, 4.755283e-01, 4.829629e-01, 4.890738e-01, 4.938442e-01, 4.972609e-01, 4.993148e-01, 5.000000e-01, 1.000000e+00, 9.738320e-01, 9.477358e-01, 9.217828e-01, 8.960442e-01, 8.705905e-01, 8.454915e-01, 8.208160e-01, 7.966317e-01, 7.730048e-01, 7.500000e-01, 7.276805e-01, 7.061074e-01, 6.853398e-01, 6.654347e-01, 6.464466e-01, 6.284276e-01, 6.114270e-01, 5.954915e-01, 5.806647e-01, 5.669873e-01, 5.544967e-01, 5.432273e-01, 5.332098e-01, 5.244717e-01, 5.170371e-01, 5.109262e-01, 5.061558e-01, 5.027391e-01, 5.006852e-01, 5.000000e-01, 5.006852e-01, 5.027391e-01, 5.061558e-01, 5.109262e-01, 5.170371e-01, 5.244717e-01, 5.332098e-01, 5.432273e-01, 5.544967e-01, 5.669873e-01, 5.806647e-01, 5.954915e-01, 6.114270e-01, 6.284276e-01, 6.464466e-01, 6.654347e-01, 6.853398e-01, 7.061074e-01, 7.276805e-01, 7.500000e-01, 7.730048e-01, 7.966317e-01, 8.208160e-01, 8.454915e-01, 8.705905e-01, 8.960442e-01, 9.217828e-01, 9.477358e-01, 9.738320e-01, 1.000000e+00, 1.026168e+00, 1.052264e+00, 1.078217e+00, 1.103956e+00, 1.129410e+00, 1.154508e+00, 1.179184e+00, 1.203368e+00, 1.226995e+00, 1.250000e+00, 1.272320e+00, 1.293893e+00, 1.314660e+00, 1.334565e+00, 1.353553e+00, 1.371572e+00, 1.388573e+00, 1.404508e+00, 1.419335e+00, 1.433013e+00, 1.445503e+00, 1.456773e+00, 1.466790e+00, 1.475528e+00, 1.482963e+00, 1.489074e+00, 1.493844e+00, 1.497261e+00, 1.499315e+00, 1.500000e+00, 1.499315e+00, 1.497261e+00, 1.493844e+00, 1.489074e+00, 1.482963e+00, 1.475528e+00, 1.466790e+00, 1.456773e+00, 1.445503e+00, 1.433013e+00, 1.419335e+00, 1.404508e+00, 1.388573e+00, 1.371572e+00, 1.353553e+00, 1.334565e+00, 1.314660e+00, 1.293893e+00, 1.272320e+00, 1.250000e+00, 1.226995e+00, 1.203368e+00, 1.179184e+00, 1.154508e+00, 1.129410e+00, 1.103956e+00, 1.078217e+00, 1.052264e+00, 1.026168e+00, 1.000000e+00

Session info (future and base)

future::futureSessionInfo()
#> *** Package versions
#> future 1.33.0, parallelly 1.36.0, parallel 4.3.1, globals 0.16.2, listenv 0.9.0
#> 
#> *** Allocations
#> availableCores():
#> system 
#>     12
#> availableWorkers():
#> $system
#>  [1] "localhost" "localhost" "localhost" "localhost" "localhost" "localhost"
#>  [7] "localhost" "localhost" "localhost" "localhost" "localhost" "localhost"
#> 
#> *** Settings
#> - future.plan=<not set>
#> - future.fork.multithreading.enable=<not set>
#> - future.globals.maxSize=<not set>
#> - future.globals.onReference=<not set>
#> - future.resolve.recursive=<not set>
#> - future.rng.onMisuse=<not set>
#> - future.wait.timeout=<not set>
#> - future.wait.interval=<not set>
#> - future.wait.alpha=<not set>
#> - future.startup.script=<not set>
#> 
#> *** Backends
#> Number of workers: 2
#> List of future strategies:
#> 1. multisession:
#>    - args: function (..., workers = 2, envir = parent.frame())
#>    - tweaked: TRUE
#>    - call: plan(multisession, workers = 2)
#> 
#> *** Basic tests
#> Main R session details:
#>     pid     r sysname release     version nodename machine   login    user
#> 1 24936 4.3.1 Windows  10 x64 build 19044  host001  x86-64 user001 user001
#>   effective_user
#> 1        user001
#> Worker R session details:
#>   worker   pid     r sysname release     version nodename machine   login
#> 1      1 16300 4.3.1 Windows  10 x64 build 19044  host001  x86-64 user001
#> 2      2 13960 4.3.1 Windows  10 x64 build 19044  host001  x86-64 user001
#>      user effective_user
#> 1 user001        user001
#> 2 user001        user001
#> Number of unique worker PIDs: 2 (as expected)

Created on 2023-09-04 with reprex v2.0.2

Session info
sessionInfo()
#> R version 4.3.1 (2023-06-16 ucrt)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 19044)
#> 
#> Matrix products: default
#> 
#> 
#> locale:
#> [1] LC_COLLATE=French_France.utf8  LC_CTYPE=French_France.utf8   
#> [3] LC_MONETARY=French_France.utf8 LC_NUMERIC=C                  
#> [5] LC_TIME=French_France.utf8    
#> 
#> time zone: Europe/Paris
#> tzcode source: internal
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] sf_1.0-14     furrr_0.3.1   future_1.33.0 purrr_1.0.2   ggplot2_3.4.3
#> [6] dplyr_1.1.2  
#> 
#> loaded via a namespace (and not attached):
#>  [1] utf8_1.2.3         generics_0.1.3     xml2_1.3.5         class_7.3-22      
#>  [5] KernSmooth_2.23-21 listenv_0.9.0      digest_0.6.33      magrittr_2.0.3    
#>  [9] evaluate_0.21      grid_4.3.1         fastmap_1.1.1      e1071_1.7-13      
#> [13] DBI_1.1.3          fansi_1.0.4        scales_1.2.1       codetools_0.2-19  
#> [17] textshaping_0.3.6  cli_3.6.1          rlang_1.1.1        units_0.8-3       
#> [21] parallelly_1.36.0  munsell_0.5.0      reprex_2.0.2       withr_2.5.0       
#> [25] yaml_2.3.7         tools_4.3.1        parallel_4.3.1     colorspace_2.1-0  
#> [29] globals_0.16.2     curl_5.0.2         vctrs_0.6.3        R6_2.5.1          
#> [33] proxy_0.4-27       lifecycle_1.0.3    classInt_0.4-9     fs_1.6.3          
#> [37] ragg_1.2.5         pkgconfig_2.0.3    pillar_1.9.0       gtable_0.3.4      
#> [41] glue_1.6.2         Rcpp_1.0.11        systemfonts_1.0.4  highr_0.10        
#> [45] xfun_0.40          tibble_3.2.1       tidyselect_1.2.0   rstudioapi_0.15.0 
#> [49] knitr_1.43         farver_2.1.1       htmltools_0.5.6    rmarkdown_2.24    
#> [53] compiler_4.3.1
@dicorynia dicorynia changed the title Plotting a {sf} object Error when plotting a {sf} object Sep 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant