gis - 如何使用补丁变量的约束设置乌龟的随机 XY 坐标
问题描述
我有一个名为 ID 和人口的变量的补丁,从 GIS 矢量导入。我要求补丁在每个特征 ID 的质心处产生种群,即海龟。但我希望海龟不要重叠,在补丁 ID 变量的约束内为每个海龟分配随机 xy 坐标。例如,在一个补丁 ID = 1 的质心中喷出的乌龟可以在任何 ID = 1 的补丁中,但不能在具有其他 ID 的补丁中。
> patches-own [ID centroid? pop]
> turtles-own [tID]
>
> ask patches with [ID >= 1] [sprout (pop * 0.1) [
> set tID ID
> let mypatch one-of patches with [ID = tID]
> move-to mypatch ]]
一个错误说我不能使用 tID 作为补丁上下文,因为 tID 只显示海龟。
解决方案
令 NetLogo 困惑的tID
是with
声明中的内容。您可以通过设置一个局部变量来保存该值来解决这个问题:
patches-own [ ID ]
turtles-own [ tID ]
to test1
clear-all
ask patches [ set ID random 3 ]
ask patches with [ID >= 1] [
sprout (random 10) [
set tID ID
let tID-local tID
let mypatch one-of patches with [ID = tID-local]
move-to mypatch
]]
end
但我不确定这实际上是你想要的。你已经在ID >= 1
向sprout
海龟询问补丁,这意味着它们已经在这些补丁上。试试这个,看看它是否正确:
to test2
clear-all
ask patches [ set ID random 3 ]
ask patches with [ID >= 1] [
sprout (random 10) [
set tID ID
]]
end
我可能完全错了,你的意思是在相同 ID 的补丁中重新排列人口,在这种情况下忽略我的第二部分!
推荐阅读
- qt - 如何将 ScaleBarOverlay 添加到 arcgis 地图中
- javascript - why property does not exist on type in object destructuring?
- generics - Can't handle specific status code error in Retrofit with Rxjava while using a base extension fuction for handilng Exception
- django - Django Model Some problems
- sql-server - 在sql server中获取最后插入的varchar类型的主键
- css - 使用全局 styles.scss 来控制每个 Angular 组件的 :host
- python - 如何在 python 数据框中使重复的列值为空?
- python-3.x - 使用 Django REST 令牌授权访问 API 时获取页面未找到错误
- replace - 崇高文本 - 将多个选择复制到行尾
- excel - 循环范围内的单元格,范围内的每个单元格复制并粘贴到多个工作簿