我正在研究一些网格温度数据,我将其分类为一个矩阵,其中每个单元格可以是两个类别中的一个 - 简单来说,假设为0或1。对于每个课程,我想计算补丁统计数据,从FRAGSTATS获取灵感,用于景观生态学,以表征栖息地斑块的形状和大小。
就我的目的而言,补丁是同一类的相邻单元的集群。这是一个示例矩阵mat
:
mat <-
matrix(c(0,1,0,
1,1,1,
1,0,1), nrow = 3, ncol = 3,
byrow = TRUE)
0 1 0
1 1 1
1 0 1
mat
中的所有1都形成一个补丁(我们将忽略0),为了计算各种不同的形状指标,我需要能够计算周长(即外边缘的数量) 。
修改 对不起,我显然无法发布图像,因为我没有足够的声誉,但你可以在下面的G5W答案的黑线中看到1的外边框代表我所指的外边缘。
手动我可以算一下1s的补丁有14个外边缘,我知道区域(即单元格数)是6.基于He et al.和this other question的论文,我想到了如何计算内边缘的数量(本例中为5),但我真的很难为外边缘做同样的事情!我认为这与贴片形状与具有较小面积的最大整数正方形(在这种情况下为2 x 2平方)相比有所不同,但到目前为止,我的研究和思考都无济于事。
N.B。我知道包SDMTools
,它可以计算各种FRAGSTATS指标。很遗憾,返回的指标过于严格,例如而不仅仅是聚合索引,我需要知道用于计算它的实际数字(观察到的共享边数/最大共享边数)。
这是我在这里发表的第一篇文章,所以我希望它足够详细!在此先感谢:)