У меня есть растровый файл с именем gridmap
, проецируемый в UTM, класса: SpatialGridDataFrame, который выглядит так:
Object of class SpatialGridDataFrame
Coordinates:
min max
[1,] 415.0 545.5
[2,] 6371.5 6493.0
Is projected: TRUE
proj4string :
[+proj=utm +ellps=WGS84 +datum=WGS84 +zone=30 +units=km +towgs84=0,0,0]
Grid attributes:
cellcentre.offset cellsize cells.dim
1 415.25 0.5 261
2 6371.75 0.5 243
Data attributes:
values
Min. : 1
1st Qu.:15856
Median :31712
Mean :31712
3rd Qu.:47568
Max. :63423
У меня также есть фрейм данных, который имеет координаты и значения (V1), связанные с этими координатами. Для определенных координат может быть несколько значений.
DF <- data.frame(
Lat = c(6384.705, 6384.701, 6384.698, 6384.698, 6384.691, 6384.687)
Lon = c(439.7384, 439.7385, 439.7386, 439.7387, 439.7389, 439.7390)
V1 = c(34, 0.006, 76, 34, 777, 0.0000348)
)
Что я хотел бы сделать, так это взять среднее значение V1 для каждой GRID-CELL в моем растре, а не для каждой дискретной координаты во фрейме данных, и создать фрейм данных, который имеет значение ячейки сетки, значение координаты растра и среднее значение V1. . Я могу понять, как наложить местоположения на gridmap
, чтобы получить идентификаторы ячеек сетки для каждого наблюдения, используя этот код:
coords <- data.frame(cbind(DF$Lon, DF$Lat))
coords <- SpatialPointsDataFrame(coords, data = data.frame(DF), proj4string = CRS(projUTM))
siteSpo <- over(x=coords, y=gridmap)
DF$siteID <- siteSpo$values
Но я не могу определить следующий шаг усреднения каждого значения для каждого отдельного идентификатора ячейки сетки и создания нового SpatialGridDataFrame, который имеет все средние значения ячеек сетки, включая 0, где у меня нет данных.