Вы пытаетесь вызвать объект класса localG
, у которого нет связанного метода для классов SP или растра. Вот рабочий процесс для растрирования локального результата G.
Сначала добавьте пакеты и данные. Объект meuse имеет значение SpatialPointsDataFrame, а meuse.grid начинается как SpatialGridDataFrame, но преобразуется в объект rasterLayer для растеризации данных точек.
library(spdep)
library(raster)
data(meuse)
coordinates(meuse) <- ~x+y
proj4string(meuse) <- CRS("+init=epsg:28992")
data(meuse.grid)
coordinates(meuse.grid) = ~x+y
proj4string(meuse.grid) <- CRS("+init=epsg:28992")
gridded(meuse.grid) = TRUE
meuse.grid <- raster(meuse.grid)
Здесь мы проводим локальный анализ G.
nb <- dnearneigh(coordinates(meuse), 0, 500)
G <- localG(meuse$cadmium, nb2listw(nb, style="B"))
Здесь мы можем привести результаты localG, соединить их с точечными данными и растеризовать результаты. Вы можете использовать as.numeric
для принуждения от объекта localG (в основном, объекта списка). Пожалуйста, прочитайте справку для raster::rasterize
. Для аргумента x
требуются SpatialPoints или матрица координат, y
- это объект rasterLayer для предоставления размеров растра, а field
представляет атрибут, который растеризуется. Если вам нужно фоновое значение для растра, отличного от NA, используйте аргумент background
.
meuse$G <- as.numeric(G)
spplot(meuse, "G")
Gr <- rasterize(coordinates(meuse), meuse.grid, field = meuse$G, background = NA)