2016-06-01 19 views
0

Ich habe ein Modell, das ein Landcover Shapefile importiert. Ich möchte, dass bestimmte Arten von Landschildkröten Schildkröten haben, die Nahrung darstellen sprout daraus.Kann ich in NetLogo Agenten aus den Funktionen eines GIS-Shapefiles sprießen lassen?

Wenn ich versuche, die folgenden:

set flats gis:find-one-feature landcover "CODE_12" "423" 

    ask flats [sprout-foods 1 
    [ set color black ] 
    ] 

ich den Fehler: ASK erwartet Eingang ein Mittel oder agentset zu sein, aber bekam die org.myworldgis.netlogo.VectorFeature

Gibt es eine Abhilfe für dies mit sprießen oder muss ich etwas anderes tun?

Dank

Antwort

2

sprout ist ein Patch-Befehl. Ihre Wohnungsvariable ist ein Vektormerkmal.

Wenn Sie nur eine Schildkröte, dass alle Funktionen, die „CODE_12“ = „423“ könnte etwas tun, wie passen:

let vf gis:find-features landcover "CODE_12" "423" 
foreach vf [ 
    let loc gis:location-of gis:centroid-of ? 
    crt 1 [setxy item 0 loc item 1 loc] 
] 
+0

Das ist brillant, vielen Dank. Ich gewöhne mich immer noch an die GIS-Terminologie. Eine letzte Sache ist, kann ich alle auf mehreren Eigenschaften von der Formdatei sofort? z.B. 'vf gis: find-features landcover" CODE_12 "" 423 "und" 424 "' –

+1

check out gis: find-range und beachten Sie, dass Sie Platzhalter "*" verwenden können. Obwohl mir keine Möglichkeit bekannt ist, boolesche Sucher zu benutzen (zB, und, oder, etc). Sie können immer zwei Suchen durchführen und dann die zwei zurückgegebenen Listen verketten. – StephenGuerin

+0

Der Vollständigkeit halber und für jeden, der hier arbeitet, habe ich gis: find-range eingebaut, was bei mir funktioniert hat. 'let vf gis: find-range Landbedeckung" CODE_12 "" 411 "" 523 " foreach vf [ Lassen Sie sich von loc gis: Lage-von-gis: Zentroid-von? create-Lebensmittel n-Lebensmittel [setxy loc Artikel Artikel 0 1 loc set "Kreis" Set Größe 0,3 Set Farbe gelb ] ] ' –