-
Notifications
You must be signed in to change notification settings - Fork 299
Description
Describe the bug
I noticed that st_sample() hangs indefinitely when the input geometry "covers the whole planet". Moreover, when I manually stop the code, R emits several warning messages like 1: In min(cc[[1]], na.rm = TRUE) : no non-missing arguments to min; returning Inf
To Reproduce
library(sf)
library(s2)
countries <- s2_data_countries() |> st_as_sfc()
russia <- countries[136]
st_sample(russia, 1)If reporting a change from previous versions
Please read https://cran.r-project.org/web/packages/sf/news/news.html first.
Additional context
When running st_sample through the debugger, I noticed that the function internally calls st_poly_sample. When debugging st_poly_sample, I noticed that the function internally calls st_segmentize(x, units::set_units(1, "degree", mode = "standard")) which, for some reason I don't fully understand, modifies the input object in such a way that the xmax of the new bounding box is equal to -180:
library(sf)
#> Linking to GEOS 3.11.2, GDAL 3.7.2, PROJ 9.3.0; sf_use_s2() is TRUE
library(s2)
countries <- s2_data_countries() |> st_as_sfc()
russia <- countries[136]
st_segmentize(st_as_sfc(st_bbox(russia)), dfMaxLength = units::set_units(1, "degree", mode = "standard"))
#> Geometry set for 1 feature
#> Geometry type: POLYGON
#> Dimension: XY
#> Bounding box: xmin: -180 ymin: 41.15142 xmax: -180 ymax: 81.2504
#> Geodetic CRS: WGS 84
#> POLYGON ((-180 41.15142, -180 41.15142, -180 41...Created on 2024-02-05 with reprex v2.0.2
As a consequence, a0 and also size are then set equal to 0 (whatever is the original value).
Session info
library(sf)
#> Linking to GEOS 3.11.2, GDAL 3.7.2, PROJ 9.3.0; sf_use_s2() is TRUE
library(s2)
sf::sf_extSoftVersion()
#> GEOS GDAL proj.4 GDAL_with_GEOS USE_PROJ_H
#> "3.11.2" "3.7.2" "9.3.0" "true" "true"
#> PROJ
#> "9.3.0"Created on 2024-02-05 with reprex v2.0.2
Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.3.1 (2023-06-16 ucrt)
#> os Windows 11 x64 (build 22631)
#> system x86_64, mingw32
#> ui RTerm
#> language (EN)
#> collate English_United Kingdom.utf8
#> ctype English_United Kingdom.utf8
#> tz Europe/Rome
#> date 2024-02-05
#> pandoc 3.1.1 @ C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/ (via rmarkdown)
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────
#> package * version date (UTC) lib source
#> class 7.3-22 2023-05-03 [2] CRAN (R 4.3.1)
#> classInt 0.4-10 2023-09-05 [1] CRAN (R 4.3.1)
#> cli 3.6.1 2023-03-23 [1] CRAN (R 4.3.1)
#> DBI 1.2.1 2024-01-12 [1] CRAN (R 4.3.1)
#> digest 0.6.33 2023-07-07 [1] CRAN (R 4.3.1)
#> dplyr 1.1.4 2023-11-17 [1] CRAN (R 4.3.1)
#> e1071 1.7-14 2023-12-06 [1] CRAN (R 4.3.2)
#> evaluate 0.22 2023-09-29 [1] CRAN (R 4.3.1)
#> fansi 1.0.6 2023-12-08 [1] CRAN (R 4.3.2)
#> fastmap 1.1.1 2023-02-24 [1] CRAN (R 4.3.1)
#> fs 1.6.3 2023-07-20 [1] CRAN (R 4.3.1)
#> generics 0.1.3 2022-07-05 [1] CRAN (R 4.3.1)
#> glue 1.7.0 2024-01-09 [1] CRAN (R 4.3.2)
#> htmltools 0.5.6.1 2023-10-06 [1] CRAN (R 4.3.1)
#> KernSmooth 2.23-21 2023-05-03 [2] CRAN (R 4.3.1)
#> knitr 1.45 2023-10-30 [1] CRAN (R 4.3.2)
#> lifecycle 1.0.4 2023-11-07 [1] CRAN (R 4.3.2)
#> magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.3.1)
#> pillar 1.9.0 2023-03-22 [1] CRAN (R 4.3.1)
#> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.3.1)
#> proxy 0.4-27 2022-06-09 [1] CRAN (R 4.3.1)
#> purrr 1.0.2 2023-08-10 [1] CRAN (R 4.3.1)
#> R.cache 0.16.0 2022-07-21 [1] CRAN (R 4.3.1)
#> R.methodsS3 1.8.2 2022-06-13 [1] CRAN (R 4.3.1)
#> R.oo 1.25.0 2022-06-12 [1] CRAN (R 4.3.1)
#> R.utils 2.12.2 2022-11-11 [1] CRAN (R 4.3.1)
#> R6 2.5.1 2021-08-19 [1] CRAN (R 4.3.1)
#> Rcpp 1.0.12 2024-01-09 [1] CRAN (R 4.3.2)
#> reprex 2.0.2 2022-08-17 [1] CRAN (R 4.3.1)
#> rlang 1.1.3 2024-01-10 [1] CRAN (R 4.3.2)
#> rmarkdown 2.25 2023-09-18 [1] CRAN (R 4.3.1)
#> rstudioapi 0.15.0 2023-07-07 [1] CRAN (R 4.3.1)
#> s2 * 1.1.6 2024-02-05 [1] Github (r-spatial/s2@ff89074)
#> sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.3.1)
#> sf * 1.0-16 2024-02-05 [1] Github (r-spatial/sf@9073a52)
#> styler 1.10.2 2023-08-29 [1] CRAN (R 4.3.1)
#> tibble 3.2.1 2023-03-20 [1] CRAN (R 4.3.1)
#> tidyselect 1.2.0 2022-10-10 [1] CRAN (R 4.3.1)
#> units 0.8-5 2023-11-28 [1] CRAN (R 4.3.2)
#> utf8 1.2.4 2023-10-22 [1] CRAN (R 4.3.1)
#> vctrs 0.6.5 2023-12-01 [1] CRAN (R 4.3.2)
#> withr 2.5.1 2023-09-26 [1] CRAN (R 4.3.1)
#> wk 0.9.1 2023-11-29 [1] CRAN (R 4.3.2)
#> xfun 0.40 2023-08-09 [1] CRAN (R 4.3.1)
#> yaml 2.3.7 2023-01-23 [1] CRAN (R 4.3.1)
#>
#> [1] C:/Users/user/AppData/Local/R/win-library/4.3
#> [2] C:/Program Files/R/R-4.3.1/library
#>
#> ──────────────────────────────────────────────────────────────────────────────