我有数据在边界外有数字,我试图使用下面的代码得到非加权和加权图像,但结果是一个非常小的图像,我可以看到数据在那里绘制,但它非常小:

rm(list = ls())setwd(“〜/ Desktop / Wildlife”)library('spatstat')library('sp')library('raster')library('maptools')library('rgeos')data1 <-read.table(“AllObs.csv”,sep =“,”,header = TRUE)坐标(data1)< - ~utm_x utm_y class(data1)[1]“SpatialPointsDataFrame”attr(,“package”)[1 ]“sp”导入Shapefiles绑定<-readShapePoly(“〜/ Desktop / Wildlife / Bounding_Box.shp”)构建<-readShapePoly(“〜/ Desktop / Wildlife / BuildingFootsprints.shp”)water <-readShapePoly(“〜/ Desktop / Wildlife / Water_Bodies.shp“)空间线路Roads_uw <-readShapeLines(”〜/ Desktop / Wildlife / Roads_uw.shp“)creeks <-readShapeLines(”〜/ Desktop / Wildlife / Creeks.shp“)Roads <-readShapeLines(”〜 /Desktop/Wildlife/Roads.shp“)绘制空间数据par(mar = c(0.1,0.1,0.1,0.1))plot(bound)box()data1 < - data1 [!is.na(over(x = data1) ,y = as(bound,“SpatialPolygons”))),] plot(building,add = TRUE,col =“pink”,cex = 0.3,pch = 16)plot(Roads,add = TRUE,col =“black”) ,cex = 0.3,pch = 16)图(Roads_uw,add = TRUE,cex = 0.3,pch = 16)图(水,加= TRUE,col =“青色”,lwd = 1)pl ot(小溪,加= TRUE,col =“红色”,lwd = 1)图例(“topright”,插图= 0.001,cex = 0.7,c(“建筑”,“道路”,“Roads_uw”,“水”, “Creeks”),pch = c(16,NA),lty = c(NA,1),col = c(“粉红色”,“黑色”,“黑色”,“青色”,“红色”))额外剪辑by study area building_cl <-gIntersection(spgeom1 = building,spgeom2 = bound)Roads_cl <-gIntersection(spgeom1 = Roads,spgeom2 = bound)Roads_uw <-gIntersection(spgeom1 = Roads_uw,spgeom2 = bound)water_cl <-gIntersection(spgeom1 = water) ,spgeom2 = bound)creeks_cl <-gIntersection(spgeom1 = creeks,spgeom2 = bound)绘制空间数据par(mar = c(0.1,0.1,0.1,0.1))plot(bound)box()plot(building_cl,add = TRUE) ,col =“pink”,cex = 0.3,pch = 16)plot(Roads_cl,add = TRUE,col =“black”,cex = 0.3,pch = 16)plot(Roads_uw,add = TRUE,cex = 0.3,pch = 16)绘图(water_cl,add = TRUE,col =“cyan”,lwd = 1)plot(creeks_cl,add = TRUE,col =“red”,lwd = 1)legend(“topright”,inset = 0.001,cex = 0.7,c(“建筑”,“道路”,“Roads_uw”,“水”,“Creeks”),pch = c(16,NA),lty = c(NA,1),col = c(“粉红色” “,”黑色“,”黑色“,”青色“,”红色“))点模式分析data2 <-read.table(“PPP.csv”,sep =“,”,header = TRUE)data2win <-owin(c(min(data2 $ utm_x)-10000,max(data2 $ utm_x)10000),c( min(data2 $ utm_y)-10000,max(data2 $ utm_y)10000))data2win window:rectangle = [525488,547767] x [4801386,4844192] units data2pp <-ppp(x = data2 $ utm_x,y = data2 $ utm_y,window = data2win)data2pp平面点模式:106点窗口:矩形= [525488,547767] x [4801386,4842192]单位sigma < - bw.ppl(data2pp)data2_nw <-density(data2pp,sigma = sigma)data2_w <-density(data2pp,sigma = sigma,weights = data2 $ num_indiv)将非加权转换为栅格data2_nwr <-raster(data2_nw)data2_nwr <-mask(data2_nwr,bound)将加权图像转换为栅格data2_wr <-raster(data2_w) data2_wr <-mask(data2_wr,bound)在上面板图中设置两个面板图par(mfrow = c(1,1),mar = c(1,1,1,1))非加权图(data2_nwr,axes = FALSE,main =“非加权”)plot(bound,add = TRUE)box()points(data2 $ utm_x,data2 $ utm_y,pch = 16,cex = 0.3)plot(building_cl,add = TRUE,col = “粉红色”,cex = 0.2,pch = 16)图(Roads_cl,add = T. RUE,col =“black”,cex = 0.2,pch = 16)plot(Roads_uw,add = TRUE,cex = 0.2,pch = 16)plot(water_cl,add = TRUE,col =“cyan”,lwd = 0.2) plot(creeks_cl,add = TRUE,col =“red”,lwd = 0.2)在下面板图中加权的图(data2_wr,axes = FALSE,main =“Weighted”)plot(bound,add = TRUE)points(data2 $ utm_x ,data2 $ utm_y,pch = 16,cex = 0.2)plot(building_cl,add = TRUE,col =“pink”,cex = 0.2,pch = 16)plot(Roads_cl,add = TRUE,col =“black”,cex = 0.2,pch = 16)图(Roads_uw,add = TRUE,cex = 0.2,pch = 16)图(water_cl,add = TRUE,col =“cyan”,lwd = 0.2)图(creeks_cl,add = TRUE,col =“red”,lwd = 0.2)legend(“topright”,inset = 0.001,cex = 0.7,c(“Building”,“Roads”,“Roads_uw”,“Water”,“Creeks”),pch = c( 16,NA),lty = c(NA,1),col = c(“粉红色”,“黑色”,“黑色”,“青色”,“红色”))

我们的教授也给了我们这个代码,它假设消除了这个错误:

data2 < - data2 [!is.na(over(x = data2,y = as(bound,“SpatialPolygons”))),]

但是当我尝试使用它时,我得到了这个错误:(函数(classes,fdef,mtable)中的错误:无法为签名'“data.frame”,“SpatialPolygons”找到函数'over'的继承方法

谢谢您的帮助!