我有一个NetLogo模型,我想创建不同的人为干扰场景,影响整个景观的食肉动物“猎物”。这是我的NetLogo真实保护区景观。较浅色的像素比较暗的像素具有更高的猎物值。
我想创建一些模拟来自受保护区域边缘的人为干扰的函数。我想尝试不同的功能,例如S形和指数衰减(即,更靠近受保护区域边缘的区域使猎物像素值比远离边缘的猎物像素减少得更多)。
我可以用以下方法实现一些简单的功能:
ask patches with [is-park?] ; patches inside the protected area
[
set dist-boundary distance (min-one-of patches with [is-park? = FALSE][distance myself]) ; calculate distance of patch from edge of park
set prey (prey - e ^ (- dist-boundary / 10)) ; scenario 1 human disturbance
set prey (prey - (-0.1 * dist-boundary ^ 2 + 0.9 * dist-boundary)) ; scenario 2 human disturbance
]
然而,我理想地想要创建一组场景,使得整个景观中的总猎物减少对于每个场景是相等的(但是以不同方式分布在整个场景中)。这将使我能够评估人类干扰的空间分布的影响,而不受总影响程度的影响。关于如何做到这一点的任何想法将帮助我一堆。我现在已经被困住了一段时间。
答案 0 :(得分:0)
听起来你正在寻找“漫反射”功能。
diffuse "patch-variable" "number"
当你在一个补丁中有一个人(可能是一只乌龟)时,他们可以传播“负面影响”一个我刚刚发明的补丁变量,它可以移除猎物并减少猎物。
ask patches with [human?] ;patches with a human create negative influence
[
set negative-influence 8.8; can be any number
]
所以你创造了负面影响,现在我们实施了扩散:
ask patches with [negative-influence>1]
[
set prey prey-(factor*negative-influence); removes some prey
set negative-influence negative-influence*(1-factor); reduce negative-influence
diffuse negative-influence 0.5 ; half gets diffused into neighboring patches
]