在循环上运行随机点生成时遇到此错误。如果我只生成一次点,spsample工作正常,但如果我反复尝试这个,我最终(迟早)会出现此错误。任何想法如何正确解决它(我的意思是理论上我可以跳过错误的迭代,但这不是很好的编码,对吧?)。这个问题似乎只发生在“随机”选项中。
data(meuse.riv)
meuse.sr = SpatialPolygons(list(Polygons(list(Polygon(meuse.riv)), "x")))
#works fine if run just once
n<-10
points<-spsample(meuse.sr, n, "random")
for (i in 1:5000){
print(i)
points<-spsample(meuse.sr, n, "random")
}
答案 0 :(得分:3)
我猜您应该遵循错误消息的建议:
for (i in 1:5000){
print(i)
points<-spsample(meuse.sr, n, "random", iter=10)
}
在没有错误消息的情况下运行了所有5000次迭代。 ?spsample
说
iter(默认值= 4)在放弃并返回NULL之前尝试将样本点放置在多边形中的次数 - 这可能发生在尝试使用较小数字的大型边界框中击中一个小且形状笨拙的多边形时分数。
因此给予它更多机会可以解决问题。