我试图在R中编写一个小脚本,在QGIS中创建一个K Ripley的图形函数。
这是代码:
##Point pattern analysis=group
##Layer=vector
##Titulo=string
##Folder=folder
##showplots
library("maptools")
library("spatstat")
K <- as.ppp(Layer)
E <- envelope (K, fun=Kest, nsim=99)
plot(E, main=Titulo)
write.csv(K,Folder)
当我运行脚本时,我收到以下消息:
错误en marks.ppp(Y,dfok = FALSE):抱歉,当标记是数据框时没有实现。
呼叫:envelope-&GT; envelope.ppp-&GT; marks-&GT; marks.ppp
Ademas:Mensaje de avisos perdidos
1:点模式对象中的某些标记值为NA。 2:某些标记值在点图案Y中为NA。
任何人都知道我错过了什么?
谢谢!
答案 0 :(得分:2)
如果K
是标记点模式,则Kest
会尝试使用按标记分组的模式执行操作,例如交叉K函数。这里的标记通常是一个简单的分类向量,它定义了类型1和类型2点,例如在案例控制点模式中。
如果ppp
对象中的标记对象是数据框,则它实际上不知道如何处理它。在这种情况下,SpatialPointsDataFrame
(由maptools转换,带有默认的边界框窗口,可能是坏事)将其数据框信息(即QGIS属性列表)保存为在ppp
对象中标记。
如果您不关心点属性而只关心位置,则取消标记点模式:
K <- unmark(as.ppp(Layer))