我有一个空间线数据框,我想将其裁剪/裁剪到特定的边界区域。我尝试使用gClip函数(如此处的帖子中的建议https://gis.stackexchange.com/questions/46954/clip-spatial-object-to-bounding-box-in-r),但是,我一直收到错误消息。
我使用的第一个数据集是空间线数据框,该数据框显示了北美的道路,其范围要大一些。我正在使用的第二个数据集是一个空间点数据框,其中显示了45个研究站/位置的位置。我的目标是在路线图上显示这45个点,并在适当的范围内进行剪裁(即,不是北美所有地区,而是加拿大魁北克的一小块区域)。
我要做的第一件事是确定边界框的限制
> bbox(stations)
min max
lon -74.37355 -73.21924
lat 45.29292 45.83554
>b<-bbox(stations)
然后,我尝试使用gClip函数:
> gClip <- function(shp, bb){
if(class(bb) == "matrix") b_poly <- as(extent(as.vector(t(bb))), "SpatialPolygons")
else b_poly <- as(extent(bb), "SpatialPolygons")
gIntersection(shp, b_poly, byid = TRUE)
}
>roads_clipped<-gClip(roads, b)
我收到以下错误消息: plot.window(...)中的错误:需要有限的“ xlim”值 另外:警告消息: 1:在min(x)中:没有min不可缺少的参数;返回Inf 2:在max(x)中:没有max的所有必输参数;返回-Inf 3:在min(x)中:没有min的必填参数;返回Inf 4:在max(x)中:没有max的所有必输参数;返回-Inf
我在做什么错了?