# Sheep&CattleHerdDynamics

Model was written in NetLogo 5.3.1
•
Viewed 254 times
•
Downloaded 15 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 about 4 years ago by Jamie Joyce.

## Attached files

File | Type | Description | Last updated | |
---|---|---|---|---|

Sheep&CattleHerdDynamics.png | preview | Preview for 'Sheep&CattleHerdDynamics' | about 4 years ago, by Jamie Joyce | Download |

This model does not have any ancestors.

This model does not have any descendants.