如何在GIS图层上以一定距离孵化乌龟?

问题描述 投票:0回答:1

我的补丁包含海拔等属性:

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,因此单位为米。

现在,我想从现有的海龟中创建新的海龟,并在距海龟 150m 的半径内随机创建(新海龟可以在 1m 或 130m 处孵化)。例如,我只要求一只海龟在名为 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 比例的东西?还是其他问题?

gis distance netlogo
1个回答
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

如果栅格中的像素具有不同的现实世界高度和宽度,则必须分别对水平和垂直尺寸进行补丁缩放。

© www.soinside.com 2019 - 2024. All rights reserved.