如何解决R中的错误:栅格中的focus函数的“无适用方法”
我想应用一个移动窗口(3x3)来估算异构景观上的条件熵(Nowosad&Stepinsky,2019):
entropy=function(r){
entropy=lsm_l_condent(r,neighbourhood = 4,ordered = TRUE,base = "log2")
return(entropy$value)
}
w=matrix(1,3,3)
result=focal(r,w,fun=entropy)
但是,出现此错误:
Error in .focal_fun(values(x),as.integer(dim(out)),runfun,NAonly) :
Evaluation error: no applicable method for 'lsm_l_condent' applied to an object of class "c('double','numeric')".
但是,当我在整个环境中运行熵函数时,它会起作用:
> entropy(r)
[1] 2.178874
r是INT4U栅格对象:
class : RasterLayer
dimensions : 886,999,885114 (nrow,ncol,ncell)
resolution : 300,300 (x,y)
extent : 934805.7,1234506,1006566,1272366 (xmin,xmax,ymin,ymax)
crs : +proj=tmerc +lat_0=4.59620041666667 +lon_0=-74.0775079166667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0 +units=m +no_defs
values : 99,321113 (min,max)
是否有解决“无适用方法”错误的想法?还是有任何想法可以通过移动窗口来估计条件熵?
预先感谢您的帮助。
最好
Jaime
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。