将矩阵转换为包 spatstat 中的 im 对象 - 行是反向的

Converting matrix into im object from package spatstat - rows are in reverse

这里是第一次使用。我正在将矩阵从包 spatstat 转换为 im 对象。但是,矩阵 mat[1,1] 的左上角值写在图像的左下角,例如im 函数从上到下读取矩阵的行,但从底部开始将它们写入 im。试图以相反的顺序将 im() 的 yrow 参数指定为 seq() 但仍然相同 result.Suggestions 如何解决这个问题?

    require(spatstat)

    mat <- matrix(seq(1,20, by=1), nrow=4, ncol=5)
    print(mat)
    im <- im(mat, xcol = seq(1,5), yrow = seq(4,1))
    plot(im, axes = T)

有两种解决方法。在来自 github 的最新开发版 spatstat 中,您可以在不同的布局之间进行转换。有关详细信息,请参阅 help(transmat)。您提供的布局称为 'European',用于 spatstat 的布局称为 'spatstat',因此您可以:

require(spatstat)
mat <- matrix(seq(1,20, by=1), nrow=4, ncol=5)
m <- transmat(mat, from = 'European', to = 'spatstat')
i <- im(m)
plot(i, axes = TRUE)

如果您没有 spatstat 的开发版本,您可以简单地执行以下操作:

require(spatstat)
mat <- matrix(seq(1,20, by=1), nrow=4, ncol=5)
m <- mat[4:1,]
i <- im(m)
plot(i, axes = TRUE)