【发布时间】:2018-04-19 16:52:34
【问题描述】:
我正在构建一个模型,它要求我将 shapefile 加载到 netlogo。我已经这样做了,并且视图上显示的地图与它应该的相对应。问题是 shapefile 没有与补丁重叠。我的 shapefile 由 x|y|attribute 组成,我在文件中大约有 800 000 行。理想的情况是每行对应一个补丁,但是当我执行计数补丁时,它只有 1089 个。更糟糕的是,当我要求属性值时,每个补丁都会检索 NaN。我将粘贴与此问题相关的部分代码:
globals [ mintempcm-dataset
maxtemphm-dataset
precipitation-dataset
meantemp-dataset
color-list
]
patches-own [
mintempcm
maxtemphm
meantemp
precipitation
]
to setup
ca
gis:load-coordinate-system (word "WGS_84_Geographic.prj")
set maxtemphm-dataset gis:load-dataset "mxtwm.shp"
gis:set-world-envelope (gis:envelope-union-of
(gis:envelope-of maxtemphm-dataset)
)
gis:apply-coverage maxtemphm-dataset "MAXTEMPHM" maxtemphm
ask patches[
set maxtemphm maxtemphm
]
gis:set-drawing-color blue
gis:draw maxtemphm-dataset 1
reset-ticks
end
我是否遗漏了什么或做错了什么? 澄清一下,我需要让文件的每个坐标对应一个patch,并将属性传递给patch。
谢谢。
【问题讨论】:
-
你的 shapefile 是什么数据类型?如果它只是一个点 x y 值或线,
gis:apply-coverage将不起作用,只有多边形数据将 (see definition)。你可能想要gis:intersecting。 -
是的,它是 x|y|值。我认为应用覆盖会起作用。我会尝试 gis:intersecting。谢谢
-
据我所知,相交会返回与其他东西相交的东西。我正在尝试将 shapefile 的每个点分配给一个补丁,即我的文件中有坐标 x 坐标 y 和属性。我想在文件的每一行和一个补丁之间建立一个对应关系。