Фон
Я испытываю необычное поведение при построении объекта класса sf
с использованием базовых методов построения R для sf
объектов, и это поведение еще более необычно по сравнению с выходом из ggplot2
.
Графики предназначены для отображения наложения коллекции функций POLYGON
поверх коллекции POINT
. У них есть согласованные настройки CRS, а экстент ограничивающей рамки полигонального объекта полностью охватывает ограничивающую рамку набора точек.
Воспроизводимый пример:
library(sf)
library(geohashTools)
data(meuse, package = "sp")
meuse_sf = st_as_sf(meuse, coords = c("x", "y"), crs = 28992, agr = "constant")
meuse_sf <- st_transform(meuse_sf, crs = st_crs(4326))
meuse_gh <- geohashTools::gh_covering(meuse_sf)
Функция gh_covering
из geohashTools
должна создать сетку, которая полностью охватывает экстент всех точек в meuse_sf
.
Это сюжет из базовых сюжетов. Обратите внимание: похоже, что некоторые точки находятся за пределами этой сетки.
plot(meuse_sf[1])
plot(meuse_gh[2], add = TRUE)
Сначала это казалось ошибкой в gh_covering
, но при воспроизведении в ggplot2
становится ясно, что это работает, как задумано
library(ggplot2)
ggplot() +
geom_sf(data = meuse_sf, aes(colour = cadmium)) +
geom_sf(data = meuse_gh, fill = NA)
Проверяет
Дополнительные проверки размеров ограничивающего прямоугольника и эквивалентности CRS вернулись нормально.
> st_bbox(meuse_sf)
xmin ymin xmax ymax
5.72319 50.95661 5.76304 50.99156
> st_bbox(meuse_gh)
xmin ymin xmax ymax
5.712891 50.954590 5.767822 50.998535
И
> st_crs(meuse_gh)==st_crs(meuse_sf)
[1] TRUE
Вопрос
Итак, что вызывает здесь проблему в поведении базовых графиков?
Информация о сеансе
> sessionInfo()
R version 4.0.0 (2020-04-24)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Mojave 10.14.6
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggplot2_3.3.0 sf_0.9-3 geohashTools_0.3.0 sp_1.4-1