栅格化 Spdep 的 localG 输出
Rasterizing Spdep's localG output
我是 R 的新手,我正在尝试光栅化 spdep 的 localG 函数的输出。
此代码:
neigh2<-dnearneigh(profcurvPts, 0, 2)
list<-nb2listw(neigh2)
gistar<-localG(profcurvPts$layer, list)
girast<-rasterize(gistar, profcurv)
产生错误unable to find an inherited method for function 'rasterize' for signature '"localG", "RasterLayer"'
我已经尝试将 localG class 更改为 data.frame,但它创建了一个仍然不会光栅化的 1 列矩阵。
总结一下:我应该怎么做才能得到 localG 输出的栅格?
提前致谢!
您正在尝试调用 class localG
的对象,该对象没有用于 sp 或 raster classes 的关联方法。这是一个用于光栅化本地 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)
我是 R 的新手,我正在尝试光栅化 spdep 的 localG 函数的输出。 此代码:
neigh2<-dnearneigh(profcurvPts, 0, 2)
list<-nb2listw(neigh2)
gistar<-localG(profcurvPts$layer, list)
girast<-rasterize(gistar, profcurv)
产生错误unable to find an inherited method for function 'rasterize' for signature '"localG", "RasterLayer"'
我已经尝试将 localG class 更改为 data.frame,但它创建了一个仍然不会光栅化的 1 列矩阵。
总结一下:我应该怎么做才能得到 localG 输出的栅格?
提前致谢!
您正在尝试调用 class localG
的对象,该对象没有用于 sp 或 raster classes 的关联方法。这是一个用于光栅化本地 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)