r - 使用函数“as.owin”加载 .shp 文件时出错
问题描述
我正在使用“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 类对象”
我也尝试了函数“as.owin.SpatialPolygons”,但错误仍然相同
im <- as.owin.SpatialPolygons(polygon, fatal = TRUE)
“as.owin.SpatialPolygons(abc, fatal = TRUE) 中的错误:只能将投影坐标转换为 spatstat 类对象”
根据我在互联网上找到的一些信息,我使用函数 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' 导出的对象”
我不确定,我做错了什么?,我将不胜感激。
解决方案
我采用了一种稍微不同的方法,即使用 读取和投影 shapefile sf
,将其转换为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
推荐阅读
- aws-lambda - 使用 lambda 和 API 网关的整个应用程序的单个 API 端点
- php - 我想在搜索表单中留下条件
- python-3.x - AttributeError:“str”对象没有属性“print_item_cost”
- jquery - 如何禁用日期选择器日历中的特定日期
- reactjs - 我正在尝试导入一些自定义引导 js 文件,但它不能正常工作
- node.js - 使用 Azure Functions(Nodejs) 将数据(csv 文件)上传到 Azure DataLakeGen2
- c++ - OpenCV 在从网络摄像头捕获图像时遇到问题
- asp.net - IIS挂了,每次都需要回收?
- html - 全日历时间线视图
- amazon-web-services - 使用多个联合身份访问同一用户池帐户?