首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >栅格化Spdep的localG输出

栅格化Spdep的localG输出
EN

Stack Overflow用户
提问于 2020-01-21 23:37:07
回答 1查看 90关注 0票数 0

我是R的新手,我正在尝试对spdep的localG函数的输出进行栅格化。这段代码:

代码语言:javascript
复制
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类更改为data.frame,但它创建的1列矩阵仍然不能光栅化。

总结一下:我应该怎么做才能得到localG输出的栅格?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-22 00:16:10

您正在尝试调用localG类的对象,该对象没有与sp或栅格类相关联的方法。这是一个光栅化本地G结果的工作流程。

首先,添加包和数据。meuse对象是SpatialPointsDataFrame,而meuse.grid以SpatialGridDataFrame开头,但为了光栅化点数据,它被强制转换为rasterLayer对象。

代码语言:javascript
复制
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分析。

代码语言:javascript
复制
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参数。

代码语言:javascript
复制
meuse$G <- as.numeric(G)
spplot(meuse, "G")

Gr <- rasterize(coordinates(meuse), meuse.grid, field = meuse$G, background = NA)  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59844468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档