2015-10-05 209 views
1

我目前正在使用NetLogo中的模型來模擬某些農場的土地使用變化。爲此,我需要在NetLogo中使用GIS擴展。我遠沒有模型運行,但我想知道是否最好的方式去與我的模型將是:Netlogo:Shapefile與光柵

(1)使用shapefile與農場的邊界和覆蓋與其他柵格地圖(如歐幾里得從市場距離)

(2)採用與代表農場小區ID的柵格。這樣,我可以在屬性和其他柵格地圖之間有一個完美的重疊。

預先感謝您!

+0

如何你的尺寸相匹配?每個NetLogo單元對應的真實世界面積有多大?典型的農場有多大? – JenB

回答

0

到了這一天的最後是去與問題的最好辦法:

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 
+0

我仍然在使用shapefile,只是爲了讓NetLogo世界變得「漂亮」...... –

2

我懷疑答案取決於你打算如何使用GIS文件中包含的信息。我真正可以建議的是,你收集了幾種人們已經整合了GIS的方式,並且看看最相似的東西。這是你的第一個例子。

我有一個最近的模型,有一個強大的空間組件傳播流行病。流行感染力受到人口的強烈影響。我爲模型中的所有國家(下拉框選擇國家)在分區域一級獲得了人口密度作爲光柵文件。將其導入NetLogo作爲補丁信息有效地調整柵格大小。然後,我將NetLogo補丁轉換爲實際平方公里(對於每個國家),以便爲每個NetLogo補丁創建人口。

+0

謝謝JenB,在一天結束的時候,我發現的最好方法就是將多個變量添加到補丁中。所以每個像素都有一個LOT-ID,一個LAND-USE,一個距離標記等......我會在我提出的代碼之下發布。 –