在这里,我一直在努力解决一些挑战。我将解释我的全部工作流程,以便您可以根据需要进行复制。
我在Google SketchUp中创建虚拟景观,我最终想在Netlogo中使用它来检查海龟如何与它们互动。
我的问题是,当我将景观带入Netlogo时,这些单元似乎与原始3D模型无关。
步骤1:使用Toposhaper扩展在Sketchup中创建一个50米乘50平方米的简单山丘。
步骤2:导出到.dae文件并导入Meshlab,通过在测量工具的帮助下调整单位,确保Meshlab模型与Sketchup模型具有相同的尺寸。从meshlab导出为.xyz文件。
步骤3:通过从分隔文件添加新图层,将.xyz文件作为点导入QGis。选择field_1和field_2作为X和Y字段。
步骤4:使用Raster创建点的栅格>插值>插值。添加field_3作为插值属性,将列数设置为50乘50(对应于50m x 50m 3D模型),调整单元格大小X和Y匹配以确保Netlogo将读取生成的.asc文件。
步骤5:最后,我在Netlogo中设置了一个模型来接收光栅。首先,在模型设置中,我将min和max pxor和pycor设置为0和50.然后,使用Gis扩展,我导入栅格将z值应用于称为高程的补丁变量:
to load-gis
set elevation gis:load-dataset "cone_50.asc"
gis:set-world-envelope-ds gis:envelope-of elevation
gis:apply-raster elevation target-elev
end
现在,我的50 x 50 Netlogo世界的每个补丁应该具有从我的50 x 50栅格中获取的高程值。理论上,将所有高程值加在一起应该(粗略地)给出山的凸起区域的总体积?我获得的数字较高,但随着数量的增加,问题会变得更糟。
有人可以帮忙吗?