我目前正在使用NetLogo中的模型來模擬某些農場的土地使用變化。爲此,我需要在NetLogo中使用GIS擴展。我遠沒有模型運行,但我想知道是否最好的方式去與我的模型將是:Netlogo:Shapefile與光柵
(1)使用shapefile與農場的邊界和覆蓋與其他柵格地圖(如歐幾里得從市場距離)
或
(2)採用與代表農場小區ID的柵格。這樣,我可以在屬性和其他柵格地圖之間有一個完美的重疊。
預先感謝您!
我目前正在使用NetLogo中的模型來模擬某些農場的土地使用變化。爲此,我需要在NetLogo中使用GIS擴展。我遠沒有模型運行,但我想知道是否最好的方式去與我的模型將是:Netlogo:Shapefile與光柵
(1)使用shapefile與農場的邊界和覆蓋與其他柵格地圖(如歐幾里得從市場距離)
或
(2)採用與代表農場小區ID的柵格。這樣,我可以在屬性和其他柵格地圖之間有一個完美的重疊。
預先感謝您!
到了這一天的最後是去與問題的最好辦法:
extensions [gis]
globals
[
land-use-map
lotid-patch-map
def-risk-map
market-dist-map
]
patches-own
[
land-use
lotid-patch
def-risk
market-dist
]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; load the maps ;;
;;;;;;;;;;;;;;;;;;;;;
to load-gis
clear-all
set land-use-map gis:load-dataset "area2_lu_black.asc" ;loads the land use map
set lotid-patch-map gis:load-dataset "area2_lot.asc" ;loads the lots map
set def-risk-map gis:load-dataset "area2_risk.asc" ;loads the deforestation risk map
set market-dist-map gis:load-dataset "area2_mkt.asc" ;loads the distance from markets map
gis:set-world-envelope-ds gis:envelope-of land-use-map ;sets the envelope of the world to match that of the GIS dataset
gis:apply-raster land-use-map land-use ;patches in the land-use-map have a specific land-use now
gis:apply-raster lotid-patch-map lotid-patch ;patches in the lot-id-map have a specific lot-id now
gis:apply-raster def-risk-map def-risk ;patches in the def-risk-map have a specific def-risk now
gis:apply-raster market-dist-map market-dist ;patches in the market-dist-map have a specific market-dist now
ask patches [
if land-use = 1 [ set pcolor 64 ] ; Green = Forest
if land-use = 2 [ set pcolor 14 ] ; Dark red = Agriculture
if land-use = 3 [ set pcolor 45 ] ; Yellow = Reforestation
]
let view gis:load-dataset "area2.shp" ;load a shapefile of the properties
gis:set-world-envelope-ds gis:envelope-of view
foreach gis:feature-list-of view
[
gis:set-drawing-color white ;draws the line of the shapefile
gis:draw ? 1
]
end
我仍然在使用shapefile,只是爲了讓NetLogo世界變得「漂亮」...... –
我懷疑答案取決於你打算如何使用GIS文件中包含的信息。我真正可以建議的是,你收集了幾種人們已經整合了GIS的方式,並且看看最相似的東西。這是你的第一個例子。
我有一個最近的模型,有一個強大的空間組件傳播流行病。流行感染力受到人口的強烈影響。我爲模型中的所有國家(下拉框選擇國家)在分區域一級獲得了人口密度作爲光柵文件。將其導入NetLogo作爲補丁信息有效地調整柵格大小。然後,我將NetLogo補丁轉換爲實際平方公里(對於每個國家),以便爲每個NetLogo補丁創建人口。
謝謝JenB,在一天結束的時候,我發現的最好方法就是將多個變量添加到補丁中。所以每個像素都有一個LOT-ID,一個LAND-USE,一個距離標記等......我會在我提出的代碼之下發布。 –
如何你的尺寸相匹配?每個NetLogo單元對應的真實世界面積有多大?典型的農場有多大? – JenB