Похоже, у вас есть точки и полигоны, и что нужно запрашивать их значения с помощью точек. Другими словами, извлеките значения точек из многоугольников. В этом случае не имеет смысла создавать объект RasterLayer (и / или SpatialPixels).
Всегда предоставляйте некоторые примеры данных (p
имеет многоугольники, d
- это фрейм данных с координатами)
library(raster)
p <- shapefile(system.file("external/lux.shp", package="raster"))
set.seed(10)
d <- coordinates(spsample(p, 4, "regular"))
colnames(d) <- c("lon", "lat")
d <- data.frame(id=1:nrow(d), d)
Решение
x <- extract(p, d[,c("lon", "lat")])
Теперь вы можете сделать
cbind(d, x[,c(4,6)])
# id lon lat NAME_1 NAME_2
#1 1 5.889636 49.53576 Luxembourg Esch-sur-Alzette
#2 2 6.176340 49.53576 Luxembourg Luxembourg
#3 3 5.889636 49.82246 Diekirch Redange
#4 4 6.176340 49.82246 Diekirch Diekirch
или как то так
d$NAME_2 <- x$NAME_2
d
# id lon lat NAME_2
#1 1 5.889636 49.53576 Esch-sur-Alzette
#2 2 6.176340 49.53576 Luxembourg
#3 3 5.889636 49.82246 Redange
#4 4 6.176340 49.82246 Diekirch