This page was automatically generated by NetLogo 5.0RC4.
powered by NetLogo
view/download model file: potatoes.nlogo
WE regard the Irish Potato Famine of 1845 as a complex dynamical system with many nodes, eg, English Parliament, English market for beef and dairy products, absentee landlors, middlement, farmers, laborers, potato crops, all other crops, various deadly fevers, and of course, the late potato blight. This NetLogo model, made with Rev 5.0RC4, simulates a minimal subsystem including the tenants subsisting on potatoes, potato crops, potatotes in storaage, and the blight. Time ticks indicate months of a 12-month growing season.
The key to understanding the rapid and deadly blight attacks is the combined effect of two climate factors: temperature and humidity. When these two factors (shown by a turtle moving in an XY plot in the left side of the Graphics Window) stay in the danger zone (yellow rectangle) for two successsive days, the dormant blight spores spring to life.
Then the potatoe crop (center of Graphic Window and the potato storage (right side) turn to mush.
Click on the :setup“ button, then experiment with the other buttons to learn their function. The ”go" button begins an animiation of a 12-month growing season.
as the model uses real data formonthly aveerages of the temperature and humidity and these values avoid the danger zone, famine will not occur unless the user figures out how to perturb the climate from the Command Center.
The tenant family consume potatoes at a constant rate of about 1000 lbs per month.
TRy changing the wweather from the Command Center. You must read the Code to figure this out.
Add buttoms to apply random perturbations to the temperature and humidity.
WE mad our own XY plot becuase NetLogo did not allow us to easily draw the danger zone in the backgrount of the Plot widget (but, there is a way).
Check out Wolves and Sheep.
Check out this site: http://www.ralph-abraham.org/courses/ross-sys-2011/models.html. AS usual, we owe a huge debt to Uri Wilensky and his team.
;;; potatoes-01.nlogo, firt draft model for irish famine
;;; ralph abraham, visual math institute, 26 nov 2011
;;; BREEDS ;;;
breed [ plants plant ]
breed [ potatoes potato ]
;;; GLOBALS ;;;
globals [
margin ;;; between windows
width-1 ;;; width of window 1
width-2
width-3
x-offset-1
x-offset-2
x-offset-3
high
month
templist
humidlist
monthlist
umin umax vmin vmax ;;; from def of map-u and map-v (from dorband)
xmin xmax ymin ymax ;;; from Graphics Window attributes
deltau deltav deltax deltay
]
;;; PROCS ;;;
to init-globals ;;; determine geometry
let temp max-pxcor / 18 ;;; this is 1
set margin 1
set x-offset-1 margin
set width-1 ( 4 * temp ) ;;; this is 4
set x-offset-2 ( margin + width-1 + margin )
set width-2 ( 6 * temp )
set x-offset-3 ( margin + width-1 + margin + width-2 )
set width-3 ( 4 * temp )
set high max-pycor - ( 2 * margin )
set month 0
set templist [ 2 2 3 4 6 9 11 11 9 7 4 3 ]
set humidlist [ 92 91 88 83 79 80 84 87 89 91 92 92 ]
set monthlist [ "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec" ]
;;;;;;; these or conversion reporters
set xmin 1.5 ;;; to left edge of first window IN TURTLE COORDS
set xmax 4.5
set ymin 1.5
set ymax 4.5
set deltax ( width-1 - 1 ) ;;; width of window 1
set deltay ( width-1 - 1 ) ;;; height of window 1
set umin 75 ;;; u is relative humidity
set umax 100
set vmin 0 ;;; v is temperature deg C
set vmax 12
set deltau (umax - umin)
set deltav (vmax - vmin)
end
to setup-0 ;;; basic clear-all
ca ;;; clear all
init-globals
reset-ticks ;;; for plots
end
to setup-1 ;;; for the xy-plot
ask patches [
if ( pxcor > margin ) and ( pxcor < margin + width-1 ) ;;; >= 2 and < 5 (is it 3 x 3 ??????????
and ( pycor < margin + high ) and ( pycor > margin )
[ set pcolor blue ]
if ( pxcor > margin + 2 ) and ( pxcor < margin + width-1 )
and ( pycor < margin + high ) and ( pycor > margin + 2 )
[ set pcolor red ]
]
crt 1 ;;; plot-turtle
[
set size 1
set shape "turtle"
set heading 0
my-plotxy 0
set color yellow
pd
]
end
to setup-2 ;;; for the potato patch
ask patches [
if ( pxcor > margin + width-1 + margin ) and ( pxcor < margin + width-1 + margin + width-2 )
and ( pycor < margin + high ) and ( pycor > margin )
[ set pcolor brown ]
]
end
to planting
create-plants 10
[ set shape "flower"
set size 1
set heading 0
set color green
]
ask plant 1 [ setxy ( x-offset-2 + 1 ) ( margin + 1.25 ) ]
ask plant 2 [ setxy ( x-offset-2 + 2 ) ( margin + 1.25 ) ]
ask plant 3 [ setxy ( x-offset-2 + 3 ) ( margin + 1.25 ) ]
ask plant 4 [ setxy ( x-offset-2 + 4 ) ( margin + 1.25 ) ]
ask plant 5 [ setxy ( x-offset-2 + 5 ) ( margin + 1.25 ) ]
ask plant 6 [ setxy ( x-offset-2 + 1 ) ( margin + 2.5 ) ]
ask plant 7 [ setxy ( x-offset-2 + 2 ) ( margin + 2.5 ) ]
ask plant 8 [ setxy ( x-offset-2 + 3 ) ( margin + 2.5 ) ]
ask plant 9 [ setxy ( x-offset-2 + 4 ) ( margin + 2.5 ) ]
ask plant 10 [ setxy ( x-offset-2 + 5 ) ( margin + 2.5 ) ]
end
to setup-3 ;;; for the cellar stock
ask patches [
if ( pxcor > margin + width-1 + margin + width-2 + margin )
and ( pxcor < margin + width-1 + margin + width-2 + margin + width-3)
and ( pycor < margin + high ) and ( pycor > margin )
[ set pcolor yellow ]
]
end
to storing
create-potatoes 12
[ set shape "circle"
set size 0.5
set heading 0
set color brown
]
ask potato 11 [ setxy ( x-offset-3 + 2 ) ( margin + 1 ) ]
ask potato 12 [ setxy ( x-offset-3 + 2.7 ) ( margin + 1 ) ]
ask potato 13 [ setxy ( x-offset-3 + 3.4 ) ( margin + 1 ) ]
ask potato 14 [ setxy ( x-offset-3 + 4 ) ( margin + 1 ) ]
ask potato 15 [ setxy ( x-offset-3 + 2 ) ( margin + 2 ) ]
ask potato 16 [ setxy ( x-offset-3 + 2.7 ) ( margin + 2 ) ]
ask potato 17 [ setxy ( x-offset-3 + 3.4 ) ( margin + 2 ) ]
ask potato 18 [ setxy ( x-offset-3 + 4 ) ( margin + 2 ) ]
ask potato 19 [ setxy ( x-offset-3 + 2 ) ( margin + 3 ) ]
ask potato 20 [ setxy ( x-offset-3 + 2.7 ) ( margin + 3 ) ]
ask potato 21 [ setxy ( x-offset-3 + 3.4 ) ( margin + 3 ) ]
ask potato 22 [ setxy ( x-offset-3 + 4 ) ( margin + 3 ) ]
end
to clear-garden
ask plants [ ht ]
end
to replant
ask plants [
st ;;; un-hide
set size 1 ;;; become seedlings again
]
end
to harvest
clear-garden
ask potatoes [ st ] ;;; un-hide
end
to step
let temp ( 22 - month )
ask plants [ set size ( size + 0.1 ) ]
ask potato temp [ ht ]
if ( month < 11 ) [ set month ( month + 1 ) ]
my-plotxy month
tick ;;; to make plots work
end
to my-plotxy [ mo ]
let u ( item mo humidlist )
let x horizdeconvert u
let v ( item mo templist )
let y vertdeconvert v
ask turtle 0 [ setxy x y ]
; show u
; show v
; show x
; show y
end
to go
repeat 12 [
wait 0.5
step
]
set month 0 ;;; get ready for a second show
end
;;; reporters (from dorband)
;;; ==============================================
;;; conversion functions, world-coords <--> turtle-screen-coords:
;;; horizontal: (u <--> x), vertical (v <--> y)
;;; ----------------------------------------------
;;; (u <-- x): u = convert(x)
to-report horizconvert [ x ]
let u (deltau * ( x - xmin ) / deltax) + umin
report u
end
;;; (u --> x): x = deconvert(u)
to-report horizdeconvert [ u ]
let x (deltax * ( u - umin ) / deltau) + xmin
report x
end
;;; (v <-- y): v = convert(y)
to-report vertconvert [ y ]
let v (deltav * ( y - ymin ) / deltay) + vmin
report v
end
;;; (v --> y): y = deconvert(v)
to-report vertdeconvert [ v ]
let y (deltay * ( v - vmin ) / deltav) + ymin
report y
end
;;; ==============================================
;;; END CODE ;;;