Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:从一个函数创建一个im对象作为我的模型的协变量_R_Spatstat - Fatal编程技术网

R:从一个函数创建一个im对象作为我的模型的协变量

R:从一个函数创建一个im对象作为我的模型的协变量,r,spatstat,R,Spatstat,我想从一个函数创建一个im对象,该函数根据相对于固定线的距离指定一个值,即,如果点远离该线,则其值接近零,如果该点靠近该线,则其值相反。我创建了以下函数: library(spatstat) W <- owin(xrange = c(-0.5, 4.5), yrange = c(-0.5, 3.5)) covValue <- function(x, y) { # defining the segment AB b <- W$yrange[2] + 2 A <

我想从一个函数创建一个im对象,该函数根据相对于固定线的距离指定一个值,即,如果点远离该线,则其值接近零,如果该点靠近该线,则其值相反。我创建了以下函数:

library(spatstat)

W <- owin(xrange = c(-0.5, 4.5), yrange = c(-0.5, 3.5))

covValue <- function(x, y) {
  # defining the segment AB
  b <- W$yrange[2] + 2
  A <- c(W$xrange[1], b)
  I <- c(W$xrange[2], W$yrange[2])
  m <- (I[2] - A[2]) / (I[1] - A[1])
  B <- c((W$yrange[1] - b) / m, 0)

  C <- c(x, y)

  C <- c(4.5, 3.5)
  x1 <- A[1]
  y1 <- A[2]
  x2 <- B[1]
  y2 <- B[2]
  x3 <- C[1]
  y3 <- C[2]

  # calculating the orthogonal point D that belongs to the segment AB with respect to a given point C = (x,y) inside the observation window

  px  <- x2 - x1
  py  <- y2 - y1
  dAB <- px * px + py * py
  u   <- ((x3 - x1) * px + (y3 - y1) * py) / dAB
  xr   <- x1 + u * px
  yr   <- y1 + u * py

  D <- c(xr, yr)
  # t<-((C[1]-A[1])*(B[1]-A[1])+(C[2]-A[2])*(B[2]-A[2]))/((B[1]-A[1])^2+(B[2]-A[2])^2)
  # Dx=A[1]+t*(B[1]-A[1])
  # Dy=A[2]+t*(B[2]-A[2])

  # if the point C is away from the segment AB, this has less value
  dist  <- sqrt((C[1] - D[1]) ^ 2 + (C[2] - D[2]) ^ 2)
  value <- 1 / exp(dist)
  return(value)
}
库(spatstat)

函数必须进行向量化,以便对于长度为n的向量x和y,它必须返回长度为n的向量。如果你只需要到线段的距离,你可以创建一个psp对象并使用distfun。现在在机场,所以我不能填写细节

我不熟悉这个包,但可以尝试这样的方法:
imagen另外,我看不出函数参数
x
y
在哪里被使用…@Samuel:我正在使用spatat包的书中的这个示例作为模板:f A
imagen <- as.im(covValue, W = W)