R:SpatialPointsDataFrame 代码不再有效。 !res[[1]] 中的错误:无效的参数类型

标签 r spatial sp rgdal

我一直在关注 this workflow将坐标从东/北转换为 R 中的纬度/经度。直到今天它一直工作正常。这是一个可重现的示例:

require(rgdal)
# create test coordinates
x <- 259269 y <- 074728

# create test dataframe 
dat <- data.frame(x, y) 
class(dat) # "data.frame"

### shortcuts 
ukgrid <- "+init=epsg:27700" 
latlong <- "+init=epsg:4326"

### Create coordinates object 
coords <- cbind(Easting = as.numeric(as.character(x)),
                Northing = as.numeric(as.character(y)))
class(coords) # matrix
dat_SP <- SpatialPointsDataFrame(coords,
                              data = dat,
                              proj4string = CRS("+init=epsg:27700"))

# Error in !res[[1]] : invalid argument type

# Following steps ----

# Convert
dat_SP_LL <- spTransform(dat_SP, CRS(latlong)

# replace Lat, Long
dat_SP_LL@data$Long <- coordinates(dat_SP_LL)[, 1]
dat_SP_LL@data$Lat <- coordinates(dat_SP_LL)[, 2]

我认为这可能与 proj4string 参数有关,但一直无法解决。任何帮助表示赞赏。

我的 session 信息:
> sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)

Matrix products: default

locale:
[1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United Kingdom.1252   
[3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C                           
[5] LC_TIME=English_United Kingdom.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] forcats_0.5.0      stringr_1.4.0      dplyr_0.8.3        purrr_0.3.3       
 [5] readr_1.3.1        tibble_3.0.1       tidyverse_1.3.0    ggspatial_1.1.2   
 [9] tmap_3.0           rnrfa_2.0.3        gdalUtils_2.0.3.2  zoon_0.6.5        
[13] biomod2_3.4.6      sdm_1.0-89         SDMTools_1.1-221.1 SSDM_0.2.8        
[17] odbc_1.2.2         DBI_1.1.0          rgeos_0.5-3        rgdal_1.5-8       
[21] tidyr_1.1.0        ggplot2_3.3.1      knitr_1.25         raster_3.0-7      
[25] sp_1.3-1          

最佳答案

我遇到了同样的问题。该错误与 sp::CRS 相关。我通过重新安装“sp”包解决了这个问题。

关于R:SpatialPointsDataFrame 代码不再有效。 !res[[1]] 中的错误:无效的参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62137474/

相关文章:

r - 计算向量中相等数字序列的长度

c++ - N 选择 K 函数崩溃 Rcpp

r corrplot 与聚类 : default dissimilarity measure for correlation matrix

hadoop - hive 上的空间索引

python - 如何使用rasterio更改光栅的crs?

debugging - Emacs Speaks Statistics 能否像真正的调试器一样通过 R for 循环进行循环?

r - 将 OS National Grid 名称/代码添加到 R 中的网格

r - 如何将 SpatialPolygons 添加到 R 中的气泡图

r - 用 geom_polygon 绘制带有孔的 ggplot 多边形

r - 从嵌套的 SpatialPolygonsDataFrame 中提取父多边形或从父多边形中提取 'Dissolving' 孔