首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解决此错误:“不能在缺少crs的情况下转换sfc对象”

解决此错误:“不能在缺少crs的情况下转换sfc对象”
EN

Stack Overflow用户
提问于 2022-02-04 16:32:47
回答 1查看 507关注 0票数 1

我试图勾勒出整个美国各州的一组特定的人口普查结果。

这是我试图运行的代码:

代码语言:javascript
运行
复制
sf_states <- sf::st_as_sf(fifty_states, coords = c("long", "lat")) %>%
  group_by(id, piece) %>%
  summarize(do_union = FALSE) %>%
  st_cast("POLYGON") %>%
  ungroup()

illinois <- sf_states %>%
  filter(id == "illinois")

arlington.crs <- arlington.test %>%
  st_set_crs(4326)

ggplot() +
  theme_minimal() +
  geom_sf(data = illinois) +
  geom_sf(data = arlington.crs, col = "green", alpha = 0, size = 2)

arlington.test数据来自tidycensus包,包括每个人口普查域的相关几何学。

但是,当我运行代码时,会得到以下错误:

代码语言:javascript
运行
复制
Error in st_transform.sfc(st_geometry(x), crs, ...) : 
  cannot transform sfc object with missing crs

我尝试了几十个不同的答案,我在StackOverflow上遇到的,似乎没有任何东西使这个工作。

更奇怪的是,我可以单独运行两个geom_sf函数,并且它们的绘图非常好。

只有当我试图一起运行它们时,才会发生错误,如上面包含的ggplot代码所示。

还有其他的想法吗?

提前谢谢。

编辑(回答以下问题):

代码语言:javascript
运行
复制
> sf::st_crs(arlington.test)
Coordinate Reference System:
  User input: NAD83 
  wkt:
GEOGCRS["NAD83",
    DATUM["North American Datum 1983",
        ELLIPSOID["GRS 1980",6378137,298.257222101,
            LENGTHUNIT["metre",1]]],
    PRIMEM["Greenwich",0,
        ANGLEUNIT["degree",0.0174532925199433]],
    CS[ellipsoidal,2],
        AXIS["latitude",north,
            ORDER[1],
            ANGLEUNIT["degree",0.0174532925199433]],
        AXIS["longitude",east,
            ORDER[2],
            ANGLEUNIT["degree",0.0174532925199433]],
    ID["EPSG",4269]]
> 
EN

Stack Overflow用户

回答已采纳

发布于 2022-02-04 17:21:35

您的arlington.test对象似乎位于EPSG:4269中;您试图通过sf::st_set_crs(4326)将其重写为WGS 84。你确定你不是指sf::st_transform(4326)

set最适合您确定crs格式错误/不正确的情况(当*.prj*.shp shapefile中丢失时就会发生这种情况)。这不是{tidycensus}数据的典型用例。

要将投影从一个已知的CRS更改为另一个sf::st_transform(),效果最好。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70989790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档