library(tidyverse)
library(tigris)
library(sf)
santacruz <- tracts("CA", "Santa Cruz")
coords_sf <- locations %>% st_as_sf(coords = c("Longitude", "Latitude"), crs=4269)
这个应该拥有相同的CRS,但是当我尝试时
st_intersects(coords_sf, santacruz)
我遇到了一个问题:
错误:st_crs(x) == st_crs(y) 不为 TRUE
我尝试了以下方法:
st_set_crs(santacruz, 4269)
st_set_crs(coords_sf, 4269)
st_transform(santacruz, 4269)
st_transform(coords_sf, 4269)
它不起作用。我还尝试了
st_transform(santacruz, crs = "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs")
st_transform(coords_sf, crs = "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs")
无论我如何尝试设置CRS并在尝试时进行转换,都无法解决问题。
st_intersects(coords_sf, santacruz)
我遇到了一个问题:
错误:st_crs(x)== st_crs(y)不为TRUE
目前我还不能确定是设置CRS或转换还是st_intersects
函数有问题。谢谢。
locations
是什么? - thelatemaillocations
样本点的可重现示例吗?其中一件事是,除非你设置了全局选项,否则tigris
默认不提供sf
类对象,否则它将是一个SpatialPolygonsDataFrame。尝试使用tigris::tracts("CA", "Santa Cruz", class = "sf")
创建santacruz
对象?特别是,st_crs(santacruz)
的结果是什么? - Calum Youoptions(tigris_class = "sf")
。然而,当我添加santacruz <- st_as_sf(santacruz) %>% st_set_crs(4269)
时,它可以工作了。之前,当我遇到错误时,我看到的是 `> st_crs(santacruz) Coordinate Reference System: EPSG: 4269 proj4string: "+proj=longlat +datum=NAD83 +no_defs" - Dobrowski