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

R语言MaxEnt偏置文件创建报错:kde2d存在未使用参数lins

MaxEnt偏置文件创建中kde2d函数报错的解决方法

问题背景

我跟着YouTube上的教程《如何选择MaxEnt运行设置及创建偏置文件》搭建MaxEnt模型,已经导入出现点数据(occ)并完成环境变量堆叠(env),现在需要创建偏置文件:

  1. 已成功执行代码:
occur.ras <- rasterize(occ,env,1)
  1. 但执行后续代码时触发错误:
presences <- which(values(occur.ras) == 1)
pres.locs <- coordinates(occur.ras)[presences,]
dens <- kde2d(pres.locs[,1], pres.locs[,2], n=c(nrow(occur.ras), ncol(occur.ras)), lins=c(extent(env)[1], extent(env)[2], extent(env)[3], extent(env)[4]))
dens.ras <- raster(dens,env)
dens.ras2 <- resample(dens.ras, env)

报错信息:

Error in kde2d(pres.locs[, 1], pres.locs[, 2], n = c(nrow(occur.ras),  : 
 unused argument (lins = c(extent(env)[1], extent(env)[2], extent(env)[3], extent(env)[4]))

解决方法

问题核心是参数名拼写错误:kde2d(来自MASS包)的范围约束参数是lims,不是你写的lins。修正参数名后,代码就能正常运行,同时保留你想用环境变量范围约束密度计算的逻辑,避免后续出现范围不匹配的问题。

修正后的完整代码:

presences <- which(values(occur.ras) == 1)
pres.locs <- coordinates(occur.ras)[presences,]
dens <- kde2d(pres.locs[,1], pres.locs[,2], n=c(nrow(occur.ras), ncol(occur.ras)), lims=c(extent(env)[1], extent(env)[2], extent(env)[3], extent(env)[4]))
dens.ras <- raster(dens,env)
dens.ras2 <- resample(dens.ras, env)

补充说明

  • 若直接移除lims参数,kde2d会默认用出现点的x/y坐标范围计算密度,生成的偏置文件范围可能和环境变量env不一致,后续建模时容易出现图层不匹配的错误,因此不建议直接移除。
  • 确保你的MASS包是最新版本,避免因版本过低导致参数兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:11:10