我是R的新手,正在尝试确定包含~500k点的形状文件是否随机分布。无论我为参数输入什么,我都会收到相同的错误消息。
以下是我从一开始就拥有的内容:
> library(spatstat)
spatstat 1.40-0 (nickname: ‘Do The Maths’)
For an introduction to spatstat, type ‘beginner’
> as.ppp(area)
marked planar point pattern: 500000 points
Mark variables:
[1] OBJECTID Encoded_Ti Time_ Filter Category Severity Action_ Hit_Count Profile Encoded_So Source_IP Source_Por Encoded_De
[14] Dest_IP Dest_Port VLAN_Tag Source_Cou Source_Reg Source_Cit Source_Lat Source_Lon Dest_Count Dest_Regio Dest_City Dest_Latit Dest_Longi
window: rectangle = [-159.964, 178.417] x [-46.4, 70.6349] units
Warning message:
some mark values are NA in the point pattern x
> quadrat.test(area)
Error in UseMethod("quadrat.test") :
no applicable method for 'quadrat.test' applied to an object of class "c('SpatialPointsDataFrame', 'SpatialPoints', 'Spatial')"
<bytecode: 0x0000000024e7a660>
<environment: namespace:spatstat>
所以我的下一次尝试是:
> X <- ppp(x, y, c(-159.964, 178.417), c(-46.4, 70.6349))
Warning message:
In ppp(x, y, c(-159.964, 178.417), c(-46.4, 70.6349)) :
data contain duplicated points
> quadrat.test(X)
Error in rectquadrat.countEngine(X$x, X$y, tess$xgrid, tess$ygrid) :
xbreaks do not span the actual range of x coordinates in data
和我最后的尝试:
> quadrat.test(X, nx = 20, ny = 20)
Error in rectquadrat.countEngine(X$x, X$y, tess$xgrid, tess$ygrid) :
xbreaks do not span the actual range of x coordinates in data
> quadrat.test(X, nx = 20, ny = 20, xbreaks= NULL, ybreaks = NULL)
Error in rectquadrat.countEngine(X$x, X$y, tess$xgrid, tess$ygrid) :
xbreaks do not span the actual range of x coordinates in data
> data(X)
Warning message:
In data(X) : data set ‘X’ not found
> quadrat.test(X)
Error in rectquadrat.countEngine(X$x, X$y, tess$xgrid, tess$ygrid) :
xbreaks do not span the actual range of x coordinates in data
> quadrat.test(X, 10)
Error in rectquadrat.countEngine(X$x, X$y, tess$xgrid, tess$ygrid) :
xbreaks do not span the actual range of x coordinates in data
就像我说的那样,我是非常新的并且只有业余的python经验,但我是一名需要将这个功能用于项目的研究生。任何帮助将不胜感激。
干杯
答案 0 :(得分:0)
您应该知道R(几乎)永远不会改变您的输入变量,因此您需要为命令分配输出并从那里开始工作。具体来说,如果area
是一个可以通过ppp
转换为as.ppp
对象的变量,那么您应该为结果命名:
X <- as.ppp(area)
然后,您可以将quadratcount
或quadrat.test
函数应用于新创建的ppp
对象:
quadratcount(X, nx=20, ny=20)
quadrat.test(X, nx=20, ny=20)
对于方形计数,使用~500k点20×20网格对于样方可能看起来像一个非常大的空间尺度,但这当然取决于您的具体设置。
由于您还没有提供可重现的示例,我无法说明这些命令是否适用于您的设置,但它们可以使用适当的数据。