<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://earthwise-staging.bgs.ac.uk/index.php?action=history&amp;feed=atom&amp;title=OR%2F16%2F022_Appendix_1_-_NetLogo_associated_scripts</id>
	<title>OR/16/022 Appendix 1 - NetLogo associated scripts - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://earthwise-staging.bgs.ac.uk/index.php?action=history&amp;feed=atom&amp;title=OR%2F16%2F022_Appendix_1_-_NetLogo_associated_scripts"/>
	<link rel="alternate" type="text/html" href="http://earthwise-staging.bgs.ac.uk/index.php?title=OR/16/022_Appendix_1_-_NetLogo_associated_scripts&amp;action=history"/>
	<updated>2026-04-17T10:38:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>http://earthwise-staging.bgs.ac.uk/index.php?title=OR/16/022_Appendix_1_-_NetLogo_associated_scripts&amp;diff=29925&amp;oldid=prev</id>
		<title>Dbk: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://earthwise-staging.bgs.ac.uk/index.php?title=OR/16/022_Appendix_1_-_NetLogo_associated_scripts&amp;diff=29925&amp;oldid=prev"/>
		<updated>2016-10-18T11:02:18Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:02, 18 October 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Dbk</name></author>
	</entry>
	<entry>
		<id>http://earthwise-staging.bgs.ac.uk/index.php?title=OR/16/022_Appendix_1_-_NetLogo_associated_scripts&amp;diff=29924&amp;oldid=prev</id>
		<title>Ajhil at 15:44, 12 October 2016</title>
		<link rel="alternate" type="text/html" href="http://earthwise-staging.bgs.ac.uk/index.php?title=OR/16/022_Appendix_1_-_NetLogo_associated_scripts&amp;diff=29924&amp;oldid=prev"/>
		<updated>2016-10-12T15:44:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
{{OR/16/022}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NetLogo Script for the Northampton model&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;NetLogo Script&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
extensions [gis]&lt;br /&gt;
&lt;br /&gt;
globals [elevation-dataset]&lt;br /&gt;
&lt;br /&gt;
patches-own [elevation]&lt;br /&gt;
&lt;br /&gt;
turtles-own [exposure group]&lt;br /&gt;
&lt;br /&gt;
to setup&lt;br /&gt;
&lt;br /&gt;
let xHm [-7 6 -5 3]&lt;br /&gt;
&lt;br /&gt;
let yHm [6 5 -5 -6]&lt;br /&gt;
&lt;br /&gt;
set-default-shape turtles &amp;quot;person&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set        elevation-dataset        gis:load-dataset             &amp;quot;C:/Users/mrca/My Documents/Nthpton_As.asc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
gis:paint elevation-dataset 0&lt;br /&gt;
&lt;br /&gt;
gis:apply-raster elevation-dataset elevation&lt;br /&gt;
&lt;br /&gt;
let min-elevation gis:minimum-of elevation-dataset&lt;br /&gt;
&lt;br /&gt;
let max-elevation gis:maximum-of elevation-dataset&lt;br /&gt;
&lt;br /&gt;
ask patches&lt;br /&gt;
&lt;br /&gt;
[ if (elevation &amp;lt;= 0) or (elevation &amp;gt;= 0)&lt;br /&gt;
&lt;br /&gt;
[set pcolor scale-color black elevation min-elevation max-elevation]&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
ask patches&lt;br /&gt;
&lt;br /&gt;
[ if pcolor = black&lt;br /&gt;
&lt;br /&gt;
[set elevation 0]&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
create-turtles numturtles [&lt;br /&gt;
&lt;br /&gt;
set exposure 0&lt;br /&gt;
&lt;br /&gt;
set xcor -7&lt;br /&gt;
&lt;br /&gt;
set ycor 6&lt;br /&gt;
&lt;br /&gt;
set group 1&lt;br /&gt;
&lt;br /&gt;
set color red&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
create-turtles numturtles [&lt;br /&gt;
&lt;br /&gt;
set exposure 0&lt;br /&gt;
&lt;br /&gt;
set xcor 6&lt;br /&gt;
&lt;br /&gt;
set ycor 5&lt;br /&gt;
&lt;br /&gt;
set group 2&lt;br /&gt;
&lt;br /&gt;
set color green&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
create-turtles numturtles [&lt;br /&gt;
&lt;br /&gt;
set exposure 0&lt;br /&gt;
&lt;br /&gt;
set xcor -5&lt;br /&gt;
&lt;br /&gt;
set ycor -5&lt;br /&gt;
&lt;br /&gt;
set group 3&lt;br /&gt;
&lt;br /&gt;
set color blue&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
create-turtles numturtles [&lt;br /&gt;
&lt;br /&gt;
set exposure 0&lt;br /&gt;
&lt;br /&gt;
set xcor 3&lt;br /&gt;
&lt;br /&gt;
set ycor -6&lt;br /&gt;
&lt;br /&gt;
set group 4&lt;br /&gt;
&lt;br /&gt;
set color yellow&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
end to go&lt;br /&gt;
&lt;br /&gt;
ask turtles with [group = 1][&lt;br /&gt;
&lt;br /&gt;
ifelse distancexy -7 6 &amp;gt; dist-to-home&lt;br /&gt;
&lt;br /&gt;
[facexy -7 6]&lt;br /&gt;
&lt;br /&gt;
[rt random 360]               ; set random heading&lt;br /&gt;
&lt;br /&gt;
forward 1           ; advance one step&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
ask turtles with [group = 2][&lt;br /&gt;
&lt;br /&gt;
ifelse distancexy 6 5 &amp;gt; dist-to-home&lt;br /&gt;
&lt;br /&gt;
[facexy 6 5]&lt;br /&gt;
&lt;br /&gt;
[rt random 360]               ; set random heading&lt;br /&gt;
&lt;br /&gt;
forward 1           ; advance one step&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
ask turtles with [group = 3][&lt;br /&gt;
&lt;br /&gt;
ifelse distancexy -5 -5 &amp;gt; dist-to-home&lt;br /&gt;
&lt;br /&gt;
[facexy -5 -5]&lt;br /&gt;
&lt;br /&gt;
[rt random 360]               ; set random heading&lt;br /&gt;
&lt;br /&gt;
forward 1           ; advance one step&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
ask turtles with [group = 4][&lt;br /&gt;
&lt;br /&gt;
ifelse distancexy 3 -6 &amp;gt; dist-to-home&lt;br /&gt;
&lt;br /&gt;
[facexy 3 -6]&lt;br /&gt;
&lt;br /&gt;
[rt random 360]               ; set random heading&lt;br /&gt;
&lt;br /&gt;
forward 1           ; advance one step&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
ask patches [&lt;br /&gt;
&lt;br /&gt;
let my-turtles turtles-here&lt;br /&gt;
&lt;br /&gt;
if any? my-turtles [&lt;br /&gt;
&lt;br /&gt;
let lvls elevation / 100&lt;br /&gt;
&lt;br /&gt;
; print lvls&lt;br /&gt;
&lt;br /&gt;
ask my-turtles&lt;br /&gt;
&lt;br /&gt;
[set exposure (exposure + lvls)]&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
End.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;R Script for the NetLogo Northampton Model&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
library(RNetLogo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; this part starts up the NetLogo language&lt;br /&gt;
&lt;br /&gt;
nl.path &amp;lt;-&amp;quot;C:/Program Files/NetLogo 5.3/app&amp;quot;&lt;br /&gt;
&lt;br /&gt;
NLStart(nl.path,gui=TRUE, nl.obj=NULL, is3d=FALSE)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; now get the file path for the model we ant to run&lt;br /&gt;
&lt;br /&gt;
model.path&amp;lt;-file.choose()&lt;br /&gt;
&lt;br /&gt;
NLLoadModel(model.path)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This part sets up the model setting the number of turtles at each site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; and the maximum distance from home the agents are allowed to move&lt;br /&gt;
&lt;br /&gt;
NLCommand(&amp;quot;clear-all&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
NLCommand(&amp;quot;set numturtles 100&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
NLCommand(&amp;quot;set dist-to-home 3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
NLCommand(&amp;quot;setup&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Now we need to set up some dataframes to store the arsenic exposure&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; for each agent in each group&lt;br /&gt;
&lt;br /&gt;
df1&amp;lt;-data.frame(nms=as.character(1:100))&lt;br /&gt;
&lt;br /&gt;
df2&amp;lt;-data.frame(nms=as.character(1:100))&lt;br /&gt;
&lt;br /&gt;
df3&amp;lt;-data.frame(nms=as.character(1:100))&lt;br /&gt;
&lt;br /&gt;
df4&amp;lt;-data.frame(nms=as.character(1:100))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; this loop runs the NetLogo Program over 100 cycles collecting the exposure&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; from each agent in each group at each cycle&lt;br /&gt;
&lt;br /&gt;
for(i in 1:100){&lt;br /&gt;
&lt;br /&gt;
NLDoCommand(1, &amp;quot;go&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Exp1&amp;lt;- NLGetAgentSet(&amp;quot;exposure&amp;quot;,&amp;quot;turtles with [group = 1]&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
df1&amp;lt;-cbind(df1,Exp1)&lt;br /&gt;
&lt;br /&gt;
Exp2&amp;lt;- NLGetAgentSet(&amp;quot;exposure&amp;quot;,&amp;quot;turtles with [ group = 2 ]&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
df2&amp;lt;-cbind(df2,Exp2)&lt;br /&gt;
&lt;br /&gt;
Exp3&amp;lt;- NLGetAgentSet(&amp;quot;exposure&amp;quot;,&amp;quot;turtles with [ group = 3 ]&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
df3&amp;lt;-cbind(df3,Exp3)&lt;br /&gt;
&lt;br /&gt;
Exp4&amp;lt;- NLGetAgentSet(&amp;quot;exposure&amp;quot;,&amp;quot;turtles with [ group = 4 ]&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
df4&amp;lt;-cbind(df4,Exp4)&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; now the results can be plotted out&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;###################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This plots the cumulative expusure for each agent in each group&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; along with an average value for each group&lt;br /&gt;
&lt;br /&gt;
par(mfrow=c(2,2))&lt;br /&gt;
&lt;br /&gt;
avg1&amp;lt;-sapply(df1[,2:101],FUN=mean)&lt;br /&gt;
&lt;br /&gt;
plot(1:100,avg1,type=&amp;quot;l&amp;quot;, ylim=c(0,3.5),lty=2,lwd=4,&lt;br /&gt;
&lt;br /&gt;
xlab=&amp;quot;time&amp;quot;,ylab=&amp;quot;Exposure&amp;quot;, main=&amp;quot;Group 1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for( i in 1:100){&lt;br /&gt;
&lt;br /&gt;
lines(1:100,df1[i,2:101],col=83+i)&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lines(1:100,avg1,lty=2,lwd=3)&lt;br /&gt;
&lt;br /&gt;
avg2&amp;lt;-sapply(df2[,2:101],FUN=mean)&lt;br /&gt;
&lt;br /&gt;
plot(1:100,avg2,type=&amp;quot;l&amp;quot;, ylim=c(0,3.5),lty=2,lwd=2,&lt;br /&gt;
&lt;br /&gt;
xlab=&amp;quot;time&amp;quot;,ylab=&amp;quot;Exposure&amp;quot;, main=&amp;quot;Group 2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for( i in 1:100){&lt;br /&gt;
&lt;br /&gt;
lines(1:100,df2[i,2:101],col=83+i)&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lines(1:100,avg2,lty=2,lwd=3)&lt;br /&gt;
&lt;br /&gt;
avg3&amp;lt;-sapply(df3[,2:101],FUN=mean)&lt;br /&gt;
&lt;br /&gt;
plot(1:100,avg3,type=&amp;quot;l&amp;quot;, ylim=c(0,3.5),lty=2,lwd=2,&lt;br /&gt;
&lt;br /&gt;
xlab=&amp;quot;time&amp;quot;,ylab=&amp;quot;Exposure&amp;quot;, main=&amp;quot;Group 3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for( i in 1:100){&lt;br /&gt;
&lt;br /&gt;
lines(1:100,df3[i,2:101],col=83+i)&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lines(1:100,avg3,lty=2,lwd=3)&lt;br /&gt;
&lt;br /&gt;
avg4&amp;lt;-sapply(df4[,2:101],FUN=mean)&lt;br /&gt;
&lt;br /&gt;
plot(1:100,avg4,type=&amp;quot;l&amp;quot;, ylim=c(0,3.5),lty=2,lwd=2,&lt;br /&gt;
&lt;br /&gt;
xlab=&amp;quot;time&amp;quot;,ylab=&amp;quot;Exposure&amp;quot;, main=&amp;quot;Group 4&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for( i in 1:100){&lt;br /&gt;
&lt;br /&gt;
lines(1:100,df4[i,2:101],col=83+i)&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lines(1:100,avg4,lty=2,lwd=3)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;###################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This does a box and whisker plot for the final exposures over&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; 100 cycles par(mfrow=c(1,1))&lt;br /&gt;
&lt;br /&gt;
alldat&amp;lt;-cbind(df1[,101],df2[,101],df3[,101],df4[,101])&lt;br /&gt;
&lt;br /&gt;
boxplot(alldat, xlab=&amp;quot;Group&amp;quot;,ylab=&amp;quot;As Exposure&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;###################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This does a probability density function of the final exposure in each&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; group&lt;br /&gt;
&lt;br /&gt;
plot(density(alldat[,1]),main=&amp;quot;Exposure PDF&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
xlab=&amp;quot;Cumulative As Exposure&amp;quot;,col=&amp;quot;green&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
ylim=c(0,2),xlim=c(1.5,4.5),lwd=2)&lt;br /&gt;
&lt;br /&gt;
lines(density(alldat[,2]),col=&amp;quot;red&amp;quot;,lwd=2)&lt;br /&gt;
&lt;br /&gt;
lines(density(alldat[,3]),col=&amp;quot;blue&amp;quot;,lwd=2)&lt;br /&gt;
&lt;br /&gt;
lines(density(alldat[,4]),col=&amp;quot;purple&amp;quot;,lwd=2)&lt;br /&gt;
&lt;br /&gt;
legend(&amp;quot;topleft&amp;quot;,c(&amp;quot;Group1&amp;quot;,&amp;quot;Group2&amp;quot;,&amp;quot;Group3&amp;quot;,&amp;quot;Group4&amp;quot;),&lt;br /&gt;
&lt;br /&gt;
col=c(&amp;quot;green&amp;quot;,&amp;quot;red&amp;quot;,&amp;quot;blue&amp;quot;,&amp;quot;purple&amp;quot;),bty=&amp;quot;n&amp;quot;,lty=1,lwd=2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; this quits the NetLogo program&lt;br /&gt;
&lt;br /&gt;
NLQuit()&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
[[Category: OR/16/022 Agent Based Modelling: Initial assessment for use on soil bioaccessibility | 07]]&lt;/div&gt;</summary>
		<author><name>Ajhil</name></author>
	</entry>
</feed>