Sheep&CattleHerdDynamics
Model was written in NetLogo 5.3.1
•
Viewed 556 times
•
Downloaded 37 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
globals [ CFR ;; quantity (kg) of fodder required by cattle herd from current step SFR ;; quantity (kg) of fodder required by sheep herd from current step CLR ;; area (ha) of land required by cattle herd from current step SLR ;; area (ha) of land required by sheep herd from current step LR ;; total pastureland (ha) required by both herds from current step LB ;; total labour (hrs) required to produce fodder required by both herds from current step LBL ;; list of LB values MC ;; manure (kg) collected from cattle herd from current step R ;; total number of steps per run of model AMP ;; average meat (kg) produced by cattle and sheep herd from previous 10 steps AMkP ;; average milk (l) produced by cattle and sheep herd from previous 10 steps AWP ;; average wool (kg) produced by sheep herd from previous 10 steps Cal ;; total calories (kcal) available from milk and meat produced from current step CPYC ;; number of cattle remaining at end of previous step CTYC ;; number of cattle remaining at end of current step SPYC ;; number of sheep remaining at end of previous step STYC ;; number of sheep remaining at end of current step CGR ;; population growth rate of cattle herd CGRL ;; list of CGR values CAGR ;; average growth rate of cattle herd per ten steps CMP ;; meat (kg) produced by cattle herd from current step CMPL ;; list of CMP values CMkP ;; milk (l) produced by cattle herd from current step CMkPL ;; list of CMkP values SGR ;; population growth rate of sheep herd SGRL ;; list of SGR values SAGR ;; average growth rate of sheep herd per ten steps SMP ;; meat (kg) produced by sheep herd from current step SMPL ;; list of SMP values SMkP ;; milk (l) produced by sheep herd from current step SMkPL ;; list of SMkP values SWP ;; wool (kg) produced by sheep herd from current step SWPL ;; list of SWP values CAM ;; number of dead adult cattle from current step CIM ;; number of dead immature cattle from current step CYM ;; number of dead young cattle from current step CNM ;; number of dead newborn cattle from current step SAM ;; number of dead adult sheep from current step SIM ;; number of dead immature sheep from current step SYM ;; number of dead young sheep from current step SNM ;; number of dead newborn sheep from current step MP ;; total meat (kg) produced by cattle and sheep herds from current step MkP ;; total milk (l) produced by cattle and sheep herds from current step MPL ;; list of MP values MkPL ;; list of Mk values C ;; number of ticks AWS ;; adult sheep weight AWC ;; adult cow weight IWS ;; immature sheep weight IWC ;; immature cow weight YWC ;; young cow weight YWS ;; young sheep weight SWY ;; annual sheep wool yield SMY ;; annual sheep milk yield CMY ;; annual cow milk yield catastrophe? ;; records whether a castrophic event has occured SLE ;; sheep life expectancy CLE ;; cow life expectancy NCM ;; newborn cattle mortality rate NSM ;; newborn sheep mortality rate ] breed [ ;; creates the various breeds for the two types of animals based on age group adultcows adultcow ] breed [ immaturecows immaturecow ] breed [ youngcows youngcow ] breed [ newborncows newborncow ] breed [ adultsheeps adultsheep ] breed [ immaturesheeps immaturesheep ] breed [ youngsheeps youngsheep ] breed [ newbornsheeps newbornsheep ] turtles-own [ ;; stores age of individual animal and whether or not the animal is lactating age lactating ] to setup ca reset-ticks set C 0 ;; resets counter value to 0 set LR 0 ;; resets land requirement to 0 set R 100 ;; sets number of steps of the model to 100 set catastrophe? "NO" ;; sets initial value for catastrophe? as no set CGRL ( n-values ( R + 1 ) [ 0 ] ) ;; following commands create the various list variables (see above), which comprises 100 empty items (one item per step therefore) set CMPL ( n-values R [ 0 ] ) set CMkPL ( n-values ( R + 1 ) [ 0 ] ) set SGRL ( n-values (R + 1) [ 0 ] ) set SMPL ( n-values (R + 1) [ 0 ] ) set SMkPL ( n-values (R + 1) [ 0 ] ) set SWPL ( n-values (R + 1) [ 0 ] ) set MkPL ( n-values ( R + 1 ) [ 0 ] ) set MPL ( n-values ( R + 1 ) [ 0 ] ) set LBL ( n-values ( R + 1 ) [ 0 ] ) set AWS 25 ;; sets weight of adult sheep as 25kg set AWC 200 ;; sets weight of adult cattle as 200kg set IWS 15 ;; sets weight of immature sheep as 15kg set IWC 75 ;; sets weight of immature cattle as 75kg set YWC 35 ;; sets weight of young cattle as 35kg set YWS 7.5 ;; sets weight of young sheep as 7.5kg set SWY 2 ;; sets annual yield of fleece from adult/immature sheep as 2kg set SMY 60 ;; sets annual milk yield of adult lactating sheep as 60l set CMY 150 ;; sets annual milk yield of adult lactating cattle as 150l set SLE 10 ;; sets maximum age of sheep as 10 years set CLE 20 ;; sets maximum age of cattle as 20 years set NCM 0.3 ;; sets newborn mortality rate of cattle as 30% set NSM 0.3 ;; sets newborn mortality rate of sheep as 30% create-adultcows 10 [ ;; following commands create turtles of various breeds and assigns a random age for each individual within the ranges assumed per animal species and age cohort set age 4 + random 16 ] create-immaturecows 10 [ set age one-of [ 1 2 3 ] ] create-youngcows 10 [ set age 0 ] create-adultsheeps 10 [ set age 2 + random 8 ] create-immaturesheeps 10 [ set age 1 ] create-youngsheeps 10 [ set age 0 ] end to go if count turtles = 0 [ ;; model does not run if there are no turtles stop ] if ticks = R [ ;; model does not run if number of ticks exceeds the runtime (100 steps) stop ] set CPYC ( count adultcows + count immaturecows + count youngcows ) ;; sets the value for CPYC (count previous year cattle) as the current number of cattle set SPYC ( count adultsheeps + count immaturesheeps + count youngsheeps ) ;; sets the value for SPYC (count previous year sheep) as the current number of sheep set CAM 0 ;; following commands reset the number of animals that have died to 0 at the beginning of each step set CIM 0 set CYM 0 set SAM 0 set SIM 0 set SYM 0 set CNM 0 set SNM 0 set MC 0 ;; resets the manure yield of cattle to 0 at the beginning of each step set Cal 0 ;; resets the number of calories yielded by the herds to 0 at the beginning of each step set CFR 0 ;; following commands reset the fodder requirement of sheep and cattle to 0 at the beginning of each step set SFR 0 GoEpidemic GoAnimals GoFodder GoLand GoManure GoGrowthRate GoProduction GoCalories set C C + 1 ;; increases value for counter by 1 at end of each step tick end to GoEpidemic if enable-catastrophe? = "TRUE"[ ;; following commands only called if value for enable-catastrophe switch is TRUE if catastrophe? = "NO" [ ;; following commands only called if value for global variable catastrophe? is NO, i.e. catastrophic event has not occured yet during model's run if count turtles with [ breed != newbornsheeps and breed != newborncows ] >= 50 [ ;; following commands only called if number of animals >= 50 ask n-of ( count turtles * 0.9 ) turtles [ ;; kills 90% of all turtles die ] set catastrophe? "YES" ;; sets value for catastrophic event to "YES" to prevent further catastrophic events reoccuring during model's run ] ] ] end to GoAnimals ask adultsheeps [ ;; following commands simulate reproduction by adult sheep of newborn sheep according to probability of birthing (i.e. value for SBa). set lactating "N" if random-float 1 < SBa [ hatch 1 [ set breed newbornsheeps set age 0 ] set lactating "Y" ;; sets value for lactating of any adult sheep that has reproduced to "Y" i.e. yes ] if random-float 1 < sheep-adult-mortality [ ;; simulates death of adult sheep according to probability of occurence set SAM SAM + 1 ;; if adult sheep dies, value for SAM is increases by 1 die ] set age age + 1 ;; if adult sheep survives, age is increased by 1 if age > SLE [ ;; if age of adult sheep exceeds life expectancy, the animal is killed die ] ] ask adultcows [ set lactating "N" if random-float 1 < CBa [ ;; simulates reproduction by adult cattle, process not different to that of sheep (see above) hatch 1 [ set breed newborncows set age 0 ] set lactating "Y" ] if random-float 100 / 100 < cow-adult-mortality [ ;; simulates death of adult cattle (see description of process affecting adult sheep above) set CAM CAM + 1 die ] set age age + 1 if age > CLE [ die ] ] ask immaturesheeps [ ;; following commands simulate death of individual animals according to probabilities of mortality per species and per age cohort (see mortality processes of adult cattle and sheep above) if random-float 100 / 100 < sheep-immature-mortality [ set SIM SIM + 1 die ] set age age + 1 set breed adultsheeps ] ask immaturecows [ if random-float 100 / 100 < cow-immature-mortality [ set CIM CIM + 1 die ] set age age + 1 if age = 4 [ set breed adultcows ] ] ask youngsheeps [ if random-float 100 / 100 < sheep-young-mortality [ set SYM SYM + 1 die ] set age age + 1 set breed immaturesheeps ] ask youngcows [ if random-float 100 / 100 < cow-young-mortality [ set CYM CYM + 1 die ] set age age + 1 set breed immaturecows ] ask newbornsheeps [ if random-float 100 / 100 < NSM [ set SNM SNM + 1 die ] set age age + 1 set breed youngsheeps ] ask newborncows [ if random-float 100 / 100 < NCM [ set CNM CNM + 1 die ] set age age + 1 set breed youngcows ] end to GoFodder ;; calculates fodder required (kg) by cattle and sheep herds set CFR ( count adultcows * ( 800 * ( AWC / 200 ) ) + count immaturecows * ( 800 * ( IWC / 200 ) ) + count youngcows * ( 800 * ( YWC / 200 ) ) ) ;; sets fodder required by cattle herd set SFR ( count adultsheeps * (306 * ( AWS / 30 ) ) + count immaturesheeps * ( 306 * ( IWS / 30 ) ) + count youngsheeps * ( 306 * ( YWS / 30 ) ) ) ;; sets fodder required by sheep herd set LB ( ( CFR + SFR ) / 3000 * 4 ) ;; sets labour in hours required to produce fodder set LBL replace-item C LBL LB ;; adds value calculated above to list LBL end to GoLand ;; calculates pasture land required by cattle and sheep set SLR ( ( count adultsheeps + count immaturesheeps + ( count youngsheeps * ( 11 / 12 ) * 0.5 ) ) + ( SFR / 3000 ) ) / 7.5 ;; sets pasture land required by sheep herd set CLR ( ( count adultcows + count immaturecows + ( count youngcows * ( 7 / 12 ) * 0.5 ) ) ) * 8 / 12 + ( CFR / 3000 ) / 3 ;; sets pasture land required by cattle herd set LR ( SLR + CLR ) ;; sets value for total pastureland required end to GoManure ;; calculates quantity of manure (kg) produced by cattle herd for four months during winter let manure-output-cow ( ( count adultcows * ( AWC * 0.075 ) ) + ( count immaturecows * ( IWC * 0.075 ) ) + ( count youngcows * ( YWC * 0.075 ) ) ) ;; calculates manure output per day of cattle herd set MC manure-output-cow * 240 ;; calculates manure output of cattle herd for total period of time manure available (four months during winter, plus nights for remainder of the year) end to GoProduction set CMP ( CAM * ( AWC * 0.3 ) + CIM * ( IWC * 0.35 ) + CYM * ( YWC * 0.4 ) ) ;; calculates quantity of meat (kg) produced by cattle herd as number of dead animals adjusted for % of carcass edible set CMPL replace-item C CMPL CMP ;; updates list CMPL with value calculated above set CMkP ( ( count adultcows with [ lactating = "Y" ] ) * CMY ) ;; calculates quantity of milk (l) produced by cattle herd set CMkPL replace-item C CMkPL CMkP ;; updates list CMkPL with value calculate above set SMP ( SAM * ( AWS * 0.3 ) + SIM * ( IWS * 0.35 ) + SYM * ( YWS * 0.4 ) ) ;; calculates quantity of meat (kg) produced by shee[ herd as number of dead animals adjusted for % of carcass set SMPL replace-item C SMPL SMP ;; updates list CMPL with value calculated above set SMkP ( ( count adultsheeps with [ lactating = "Y" ] ) * SMY ) ;; calculates quantity of milk (l) produced by cattle herd set SMkPL replace-item C SMkPL SMkP ;; updates list CMPL with value calculated above set SWP ( ( count adultsheeps + count immaturesheeps ) * SWY );; calculates quantity of wool (kg) produced by sheep herd set SWPL replace-item C SWPL SWP ;; updates list CMPL with value calculated above set MP ( CMP + SMP ) ;; calculates total meat produced by both herds set MPL replace-item C MPL MP ;; updates list CMPL with value calculated above set MkP ( CMkP + SMkP ) set MkPL replace-item C MkPL MkP ;; updates list CMPL with value calculated above if C > 9 [ ;; calculates average output of meat, milk and wool every ten steps set AMP mean ( sublist MPL ( C - 9 ) ( C + 1 ) ) set AMkP mean ( sublist MkPL ( C - 9 ) ( C + 1 ) ) set AWP mean ( sublist SWPL ( C - 9) ( C + 1 ) ) ] end to GoGrowthRate ;; calculates % population growth rates of cattle and sheep herds set CTYC ( count adultcows + count immaturecows + count youngcows ) if CTYC > 0 [ set CGR ( 100 * ( CTYC - CPYC ) / CPYC ) set CGRL replace-item C CGRL CGR ] if C > 8 [ set CAGR mean ( sublist CGRL ( C - 9 ) ( C + 1 ) ) ] set STYC ( count adultsheeps + count immaturesheeps + count youngsheeps ) if STYC > 0 [ set SGR ( 100 * ( STYC - SPYC ) / SPYC ) set SGRL replace-item C SGRL SGR ] if C > 8 [ set SAGR mean ( sublist SGRL ( C - 9 ) ( C + 1 ) ) ] end to GoCalories ;; calculates total calories supplied by milk and meat output of sheep and cattle herds set Cal ( (CMP * 0.6 * 1700 ) + ( CMP * 0.3 * 8000 ) + ( CMP * 2000 * 0.1 ) + ( SMP * 0.7 * 2930) + ( SMP * 0.2 * 6000 ) + ( SMP * 0.1 * 2000 ) ) end
There is only one version of this model, created over 8 years ago by Jamie Joyce.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Sheep&CattleHerdDynamics.png | preview | Preview for 'Sheep&CattleHerdDynamics' | over 8 years ago, by Jamie Joyce | Download |
This model does not have any ancestors.
This model does not have any descendants.