R 通过`density.ppp向内核函数发出pasing参数`

R 通过`density.ppp向内核函数发出pasing参数`,r,kernel-density,spatstat,R,Kernel Density,Spatstat,我目前正在集中处理这个函数,用我自己设计的不同内核函数调用它。 为此,我需要通过参数列表将一些参数通过density.ppp传递给我的内核函数 有一种情况下,这不起作用,即如果我想计算带有边缘校正的at=“points” 在densitypointsengine中,它说 # evaluate edge correction weights at points if(edge) { win <- x$window if(isgauss && is.nul

我目前正在集中处理这个函数,用我自己设计的不同内核函数调用它。 为此,我需要通过
参数列表将一些参数通过
density.ppp
传递给我的内核函数

有一种情况下,这不起作用,即如果我想计算带有边缘校正的
at=“points”

densitypointsengine
中,它说

# evaluate edge correction weights at points 
  if(edge) {
    win <- x$window
    if(isgauss && is.null(varcov) && win$type == "rectangle") {
      # evaluate Gaussian probabilities directly
      xr <- win$xrange
      yr <- win$yrange
      xx <- x$x
      yy <- x$y
      xprob <-
        pnorm(xr[2L], mean=xx, sd=sigma) - pnorm(xr[1L], mean=xx, sd=sigma)
      yprob <-
        pnorm(yr[2L], mean=yy, sd=sigma) - pnorm(yr[1L], mean=yy, sd=sigma)
      edgeweight <- xprob * yprob
    } else {
      edg <- second.moment.calc(x, sigma=sigma,
                                kernel=kernel,
                                scalekernel=scalekernel,
                                what="edge", varcov=varcov)
      edgeweight <- safelookup(edg, x, warn=FALSE)
}
#评估点处的边缘校正权重
如果(边缘){

win这是一个bug。对
second.moment.calc
的调用中应该有一个
..

它将很快在
spatat
的开发版本中修复