使用函数 "as.owin" 加载 .shp 文件时出错

Error loading a .shp file, using the function "as.owin"

我正在使用带有 class“SpatialPolygonsDataFrame”的“.shp”文件,我正在尝试应用它,一个名为“as.owin”的函数,如下一个代码所示。但是“as.owin”函数返回了下一个错误。

polygon <- readOGR(dsn = "C:/Users/Datos Geoespaciales/recintos_provinciales_inspire_peninbal_etrs89",layer = "recintos_provinciales_inspire_peninbal_etrs89", encoding = "UTF-8")
im <- as.owin(polygon, fatal = TRUE)

“as.owin.SpatialPolygons(abc, fatal = TRUE) 中的错误:只有投影坐标可以转换为 spatstat class 对象”

我也尝试使用函数“as.owin.SpatialPolygons”,但错误仍然存​​在

im <- as.owin.SpatialPolygons(polygon, fatal = TRUE)

“as.owin.SpatialPolygons(abc, fatal = TRUE) 中的错误:只有投影坐标可以转换为 spatstat class 对象”

根据网上查到的一些资料,改用函数readShapeSpatial加载.shp文件,错误改了。

polygon <- readShapeSpatial("C:/Users/Datos Geoespaciales/recintos_provinciales_inspire_peninbal_etrs89.shp")
im <- as.owin(polygon, fatal = TRUE)

“错误:'spatstat.options' 不是从 'namespace:spatstat' 导出的对象”

我也尝试更改 .shp 文件的 CRS,但错误仍然存​​在

utm <- "+proj=utm +zone=32 +datum=WGS84"
polygon <- spTransform(test_test, utm)
im <- as.owin(polygon, fatal = TRUE)

“错误:'spatstat.options' 不是从 'namespace:spatstat' 导出的对象”

我不确定,我做错了什么?如果有任何帮助,我将不胜感激。

我采用了一种略有不同的方法,即使用 sf 读取和投影 shapefile,将其转换为 Spatial* 并创建一个 owin。见代表:

library(sf)
library(spatstat)
library(maptools)

# With sf
polygon <- st_read("recintos_provinciales_inspire_peninbal_etrs89.shp")
st_is_longlat(polygon)

#> [1] TRUE

# sf to sp
polygon_sp <- as(polygon, "Spatial")
# Error
im <- as.owin(polygon_sp, fatal = TRUE)

#> Error in as.owin.SpatialPolygons(polygon_sp, fatal = TRUE) : 
#>  Only projected coordinates may be converted to spatstat class objects

# Project EPSG:25830
polygon_utm <- st_transform(polygon, 25830)

st_is_longlat(polygon_utm)
#> [1] FALSE

# sf to sp
polygon_utm_sp <- as(polygon_utm, "Spatial")
# No error
im_utm <- as.owin(polygon_utm_sp, fatal = TRUE)

im_utm

#> window: polygonal boundary
#> enclosing rectangle: [-14129.5, 1126923.3] x [3892590, 4859517] units