使用R中的sf包对Shapefile进行重新投影和CRS

问题描述 投票:-1回答:1

我是R新用户。我在R中有一个shapfile,我想用它来计算K最近邻居。每个多边形的质心(Inside_X&Inside_Y)在arcmap中进行计算(示例:X:32570914 Y:5791442)。我使用sf包获取我的坐标的CRS。理想情况下,我想使用我的shapefile的proj,但在R中似乎无效。下面是我的代码。我的问题是,即使设置了CRS,knearneighbor也会考虑knearneigh: coordinates are not geographicalst_is_longlat会给出[FALSE]。请帮助。

>data<- readOGR (dsn = ".", layer ="My_Data")
>summary(data)

    Object of class SpatialPolygonsDataFrame
    Coordinates:
           min      max
    x 32568756 32641426
    y  5723944  5853056
    Is projected: TRUE 
    proj4string :
    [+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=32500000 +y_0=0 +ellps=GRS80 +units=m +no_defs]
    Data attributes:


>data.sf <- st_as_sf(data)


## Set CRS
>data.crs <- st_transform(data.sf, crs = 4839)
>st_crs(data.crs)

data.coord <- cbind(data.crs$INSIDE_X, data.crs$INSIDE_Y)

## K Nearest neighbor
>library(spdep)
>data.knn <- knearneigh(data.coord, k = 10, longlat = TRUE)

Warning message:
In knearneigh(data.coord, k = 10, longlat = TRUE) :
  knearneigh: coordinates are not geographical: longlat argument wrong
r coordinates coordinate-systems coordinate-transformation sf
1个回答
0
投票

使用EPSG 4326代替4839,项目4839是项目https://epsg.io/4839

© www.soinside.com 2019 - 2024. All rights reserved.