Я хотел бы выяснить, какие точки, которые определяют правильную решетку, находятся в пределах многоугольника. Приведенный ниже код делает это, но ОЧЕНЬ ОЧЕНЬ медленно:Определение того, какие точки в регулярной решетке находятся внутри границ многоугольника
#the polygon that I want to check each point against
glasgow_single <- readShapePoly(
fn="data/clipped/glasgow_single"
)
#interpolated contains the coordinates of the regular grid
points_to_check <- expand.grid(
x=interpolated$x,
y=interpolated$y
)
#function to be called by plyr
fn <- function(X){
this_coord <- data.frame(lon=X["x"], lat=X["y"])
this_point <- SpatialPoints(this_coord)
out <- gContains(glasgow_single, this_point)
out <- data.frame(x=X["x"], y=X["y"], val=out)
return(out)
}
#plyr call
vals <- adply(points_to_check, 1, fn, .progress="text")
vals$val <- as.numeric(vals$val)
Принимая во внимание как время на обдумывание и времени вычисления, есть гораздо более быстрый способ сделать это?
Отлично. Большое спасибо. – JonMinton