我的补丁包含高程等属性
set mnt gis:load-dataset "F:/StageM2/Modelisation/Modele/mnt.asc"
gis:apply-raster mnt alt
gis:set-transformation (list 567887.504252 573503.504252 6183200.86463 6187628.86463) (list min-pxcor max-pxcor min-pycor max-pycor)
gis:set-world-envelope gis:envelope-of mnt
和海龟是从森林栅格创建的:
to import-foret93
set foret-93 gis:load-dataset "F:/StageM2/Modelisation/Modele/foret76_93.asc"
gis:apply-raster foret-93 f93
用[f93 = 1]询问补丁 [ 设置pcolor黑色 设置foret93?真正 ;用[foret93]询问2813个补丁中的n个? =真] [孵化2813]
sprout-arbres 1 [set color pink
set size 4]
] 端
图层具有相同的空间参考:RGF1993,因此以米为单位。
现在,我想从现有的海龟中创造出新的海龟,并在距海龟150米半径范围内随机创建(新海龟可以在1米或130米处孵化)。举例来说,我只要求一只乌龟在一个名为dispersal-dist的界面中通过输入框给出一只距离孵化的乌龟。
to disp-graines
ask turtle 2918
[
hatch-arbres 1
[
let seedX xcor
let seedY ycor
let ran-bear random 360
lt ran-bear
move-to one-of patches in-radius dispersal-dist
set color magenta
set size 15
]
]
end
但是创建的乌龟走得更远,然后以米为单位的扩散距离。 我忘记了以米为单位转换netlogo规模的东西吗?或者这是另一个问题?
提前感谢您的帮助!
答案 0 :(得分:1)
虽然您的栅格数据集以米为单位表示,但您的补丁没有真实世界范围。假设您的栅格具有方形像素,则可以使用以下内容计算补丁比例:
let patch-scale (item 1 gis:world-envelope - item 0 gis:world-envelope ) / world-width
然后您可以在现有代码中使用它:
move-to one-of patches in-radius dispersal-dist / patch-scale
如果栅格中的像素具有不同的真实世界高度和宽度,则必须分别为水平和垂直尺寸执行贴片缩放。