我有一个形状文件(带有多个多边形)和一个带有坐标的数据框。我想将数据框中的每个坐标分配给形状文件中的多边形。因此,要在数据框中添加具有多边形名称或 ID 的列
这里是链接到数据 https://docs.google.com/spreadsheets/d/14xJ_GRC8ogwrTQwqSlaDQvLtj_dnHOTWDihSJejINSQ/edit?usp=sharing
library(sf)
library(readr)
shape <- read_sf("data/Provinces_v1_2017.shp")
data<- read_csv("data/data.csv")
但是当我尝试加入他们时,我总是收到错误
pts = st_as_sf(data, coords = c("dec_lon", "dec_lat"), crs= 4326)
st_join(pts, shape)
i tried over()
函数和其他技巧,例如st_make_valid()
但我总是收到这个错误:Error in s2_geography_from_wkb(x, oriented = oriented, check = check) : Evaluation error: Found 30 features with invalid spherical geometry.
这是最近的一个问题(在我的代码工作之前),但现在我无法使用 sf 包来执行此任务,我总是会遇到此错误。我更新了库以查看它是否有帮助,但我无法使其工作。
我非常感谢你在这件事上的帮助
您有两个选择:
- 关闭 s2 处理
sf::sf_use_s2(FALSE)
在你的脚本中;理论上,行为应该恢复到 1.0 版本之前的行为
- 修复多边形对象的球形几何形状;这将取决于您错误的实际性质。
我无法访问您的文件并确定,但这段代码过去对我有帮助:
yer_object$geometry <- yer_object$geometry %>%
s2::s2_rebuild() %>%
sf::st_as_sfc()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)