You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在spatstat中将像素图像格式的平均簇大小转换为每簇平均点数?

从非均匀簇模型中提取每簇平均个体数

当使用spatstat包的kppm函数拟合非均匀簇模型(如示例中的Thomas模型)后,输出里的平均簇大小以[pixel image]类型呈现,这是因为非均匀模型的簇大小会随空间协变量(如高程elev、坡度grad)变化,对应模型对象中类为im的Z组件。以下是提取具体数值的方法:

核心操作方法

1. 计算全局平均簇大小

若需要整个研究区域内的每簇平均个体数,直接对Z图像计算加权平均值(权重为像素面积):

# 从拟合模型中提取并计算全局平均值
global_avg <- mean(fitBeiThom$Z)
print(global_avg)

2. 获取特定位置的簇大小数值

如果需要查看某一空间坐标点的局部平均簇大小,直接对Z对象按坐标索引:

# 示例:获取坐标(x=150, y=150)处的簇大小
point_value <- fitBeiThom$Z[x=150, y=150]
print(point_value)

3. 导出全区域簇大小的数值矩阵

若要查看所有像素位置的簇大小数据,可将im对象转换为数值矩阵:

cluster_size_matrix <- as.matrix(fitBeiThom$Z)
# 查看矩阵维度或部分内容
dim(cluster_size_matrix)
head(cluster_size_matrix)

完整示例代码

# 拟合非均匀Thomas模型
fitBeiThom <- kppm(bei ~ elev + grad, "Thomas", data=bei.extra)
# 提取全局每簇平均个体数
global_avg_cluster_size <- mean(fitBeiThom$Z)
cat("全局每簇平均个体数:", global_avg_cluster_size, "\n")
# 获取特定位置的簇大小
specific_value <- fitBeiThom$Z[x=100, y=100]
cat("坐标(100,100)处的局部平均簇大小:", specific_value, "\n")

内容的提问来源于stack exchange,提问作者Tieygons

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 06:15:05