COBAM-f

COBAM-f preview image

1 collaborator

Default-person Richard Taylor (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 5.0.3 • Viewed 282 times • Downloaded 27 times • Run 0 times
Download the 'COBAM-f' modelDownload this modelEmbed this model

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

;; 21st April
;; cobam model for Cameroon TNS

;; TODO rules for how NTFPs grow or shrink
;; TODO improve rules for collection of NTFPs
;; TODO problem of traders getting stuck at edge of screen because prevented from stopping at fdest

breed [households household]
breed [people person]
breed [farms farm]
breed [trees tree]
breed [roads road]
breed [GICs GIC]
breed [mangues mangue]
breed [kokos koko]
breed [traders trader]
breed [rivernodes rivernode]
breed [villages village]   
breed [spinners spinner]                     ;; clock face which shows the month 
breed [primarys primary]                     ;; forest areas are represented as agents somewhat artificially here
breed [secondarys secondary]
breed [boundarys boundary]

undirected-link-breed [riverlinks riverlink]
undirected-link-breed [tradelinks tradelink]

patches-own [
  partof
]
farms-own [                               
  size-xy area
  controller                  ;; who controls access - management entity or hh head
  ;; health 
  harvest   
  landuse                     ;; landuse is current use
  total-cost      ;; farm accounting variables
  farm-income farm-profit annual-profit
]   
primarys-own [
  forestset ;; patchset
  size-xy
  clan
  state
  ;;adult-count juvenile-count           ;; includes fishy variables here
  ;;shoal-size                           ;; there is only one shoal
]
secondarys-own [
  forestset ;; patch set
  size-xy
  clan
  state
] 

households-own [
  hhtype head members clan             ;; hhtype relates to the structure; clan is the ethnicity of origin
  association                          ;; which farming group
  location 
  ;;hh-workforce                         ;; hh-workforce is a list, may or may not include children. total income from farm labour , migrant or mangrove work 
  income profit                        ;; variables for the current tick. assume that profit (or loss) accrues to savings of the hh head
  hh-annual-profit
  nutrition                    ;; nutrition is a number between 0 and 4 signifying availability of different foods to household.
  food-cost annual-food-cost
] 
people-own [
  clan hh status  ;; status is the present activity; 
  pdest fdest     ;; destination the village or patch of forestset
  mcol kcol       ;; count of each NTFP collected this season
]
villages-own [salinity health]           ;; health depends only on salinity: see health-homestead reporter

traders-own [
  croptype  ;; each trader is only interested in one croptype at any moment
  demand
  destination               ;; forest that the agent is currently headed for
]
globals
[
  ;; the following are fixed, user-defined global variables chosen or input by the user
  ;;number-people             ;; overall number of people, set before they are assigned into networks, occupations, households etc
  number-households         ;; hh vary in terms of structure and assets (may be landless)
  ClanHHCensus              ;; a list of number of hh of each clan
  ClanList
  tries-paddys              ;; a maximum number. number-paddys is also constrained by min-distance
  
  farmsize-min farmsize-max ;; minimum and maximum (acres)
  forestsize-min forestsize-max
  min-distance              ;; min distance between any two agents              
  max-distance              ;; maximum for there to be a connection
  riverbank-distance        ;; min distance from a farm node to river nodes - to improve display
  min-distance-forest
  ticks-per-month           ;; allow for time-level below the month
  walk-speed
  ;; non-fixed variables
  number-paddys             ;; count of number
  the-month                 ;; string variable in bengali
  month-id                  ;; integer from 0 to 11 incl.
  the-period                ;; integer - time level below month
  year-id                   ;; integer initial value of 0
  ;;climate                   ;; string variable can take value monsoon or dry
  price-cacao             ;; price for sale to exporter
  price-rice                ;; market price
  price-fish                ;; market price
  sprout-set                ;; current set of patches generating NTFPS
  NTFPS                     ;; amount appearing each month of various forest products
  calendar                  ;; string definition for the calendar being used i.e. munshigonj
  croptypes             
  ;; agentsets
  ;;headset                   ;; turtleset of all household heads, set in set-livelihoods
  workforce                 ;; all individuals not allocated to jobs yet
  all-locations             ;; farms, mangrove, village
  livelihoods               ;; occupations that are done over the course of one or more months
  
  ;; other features of the terrain
  hyp                       ;; track length
  primary-forest           ;; patch set
  secondary-forest
  
  ;; village law
  buffer-distance           ;; buffer zone around village where shrimp ponds are not allowed to be established

]        

to setup

  clear-all              ;; resets all global variables to zero, and calls reset-ticks, clear-turtles, clear-patches, clear-drawing, clear-all-plots, and clear-output.
  ;;set calendar "munshigonj"
  set ticks-per-month 8  ;; assume a number of ticks per month - this allows an animation of the activities, recueilleNTFPs etc
  ;; timelevel below the  month
  set the-period 0
  set month-id 0
  ;; parameters needed before agent creation
  ;; world-width and world-height set in view (default is -16 to +16)
  set min-distance 5         ;; distances between two farms
  set max-distance 10
  set tries-paddys 40
  set riverbank-distance 1.2
  set min-distance-forest 8
  set walk-speed 2
  ;; these parameters would be set depending on the location and calendar 
  ;; TODO put in setup munshigonj method
  set farmsize-min 1
  set farmsize-max 5
  set forestsize-min 8
  set forestsize-max 12
  set number-households 36    ;; this should equal the number used in the create-structured-households method
  
  ;; string identifies the name of the product, digits indicate the months when it can appear (and the percentage chance) 
  set NTFPS []
  set NTFPS lput ["mangue" 0 0 0 0 10 5 1 1 0 0 0 0] NTFPS 
  set NTFPS lput ["koko" 0 0 0 0 2 2 2 2 0 0 0 0] NTFPS
  set sprout-set no-patches
  
  ;; define cash crops. TODO there could be subtypes/varieties with different names and characteristics
  set croptypes []
  set croptypes lput ["coffee"] croptypes ;; only characteristic so far is the name
  set croptypes lput ["cocoa"] croptypes
  
  ;; create the village in the centre of the window
  create-villages 1
  [ 
    set xcor 0 set ycor 0
    set shape "house"
    set color brown
  ]
  ask patches [set pcolor grey]
  ;; settlement and road
  ;; add river through village
  position-river
  ;; households and social infrastructure
  ;; generate a set of points for locating households (10 by 10 grid around origin) with separation of 0.1
  let points []
  let vals n-values 10 [?]  
  foreach vals [
    let x ((? - 5) / 10) 
    foreach vals [
      let y ((? - 5) / 10) 
      set points lput list x y points
    ]
  ]
  let HHID 0 
  let ClanID 0
  ;; TODO these are broad ethnicities rather than clans - should be about 12
  set ClanList ["Mpiemo" "Baka" "Muslim" "CAF"] ;; order of appearance 
  ;; define what fraction of HH are from each clan
  ;; define approx. what fraction of owned land belongs to each clan
  set ClanHHCensus [12 10 8 4]                  ;; number of HH of each clan 
  let ClanForestAreas [14 6 6 4]               ;; number of areas for each clan
  print (word "Starting model with " length ClanList " Clans, " sum ClanHHCensus " households, ..") 
  create-households sum ClanHHCensus [
    ;; first hh are ones with 100% access
    set clan item ClanID ClanList
    let close []
    ;; select a location with distance of nearest turtle < 0.15
    ;; do not allow multiple hh occupying the same spot ie distance > 0 .05
    foreach points [
      let px item 0 ?
      let py item 1 ?
      let nn min-one-of other (turtle-set villages households)  [distancexy item 0 ? item 1 ?]
      ask nn [if distancexy px py < 0.15 and distancexy px py > 0.05 [set close lput list px py close] ]
    ]
    let point one-of close
    setxy item 0 point item 1 point
    ;; increase the HHID index by one unit and set the ClanID for next HH
    set HHID HHID + 1
    if HHID >= item 0 ClanHHCensus [set ClanID 1]
    if HHID >= item 0 ClanHHCensus + item 1 ClanHHCensus  [set ClanID 2]
    if HHID >= item 0 ClanHHCensus + item 1 ClanHHCensus + item 2 ClanHHCensus [set ClanID 3]  
  ]
  
  foreach sort households [
    create-people 1 [
      set clan [clan] of ?
      set hh ?
      setxy [xcor] of ? [ycor] of ? 
      ;set pdest "village-0"
      set pdest one-of villages  ;; no-patches ?
      set fdest no-turtles
      ;hide-turtle
    ]
  ]
  ;; create landscape
  ;; TODO gardens closer to village
  
  ;; TODO farm creation should be dynamic and agricultural groups construction
  set-default-shape trees "tree"
  set-default-shape farms "plant"

  ;; village land residence and garden
  set-default-shape boundarys "line"
  ;; forest product shapes
  set-default-shape mangues "x"
  set-default-shape kokos "triangle"
  ;; create forest areas - choose a location away from any other forest area
  create-primarys 15
  [
    set size-xy (list (forestsize-min + random-float (forestsize-max - forestsize-min)) (forestsize-min + random-float (forestsize-max - forestsize-min)))  
    position-forest-area
    set forestset patches with [abs (pxcor - [xcor] of myself) < ( item 0 [size-xy] of myself / 2 ) and abs (pycor - [ycor] of myself) < ( item 0 [size-xy] of myself / 2 )]
    ask forestset [set pcolor 2 set partof myself]
    hide-turtle
    ;;set label "PRIMARY"
  ]
  create-secondarys 15
  [
    set size-xy (list (forestsize-min + random-float (forestsize-max - forestsize-min)) (forestsize-min + random-float (forestsize-max - forestsize-min)))
    position-forest-area
    set forestset patches with [abs (pxcor - [xcor] of myself) < ( item 0 [size-xy] of myself / 2 ) and abs (pycor - [ycor] of myself) < ( item 0 [size-xy] of myself / 2 )]
    ;let fp patches with [abs (pxcor - [xcor] of myself) < (forest-size / 2 ) and abs (pycor - [ycor] of myself) < (forest-size / 2 )]
    ask forestset [set pcolor 12 set partof myself]
    hide-turtle
    ;;set label "SECONDARY"
  ]
  ;; set forestset after all forests have been created (each patch can only be in one set)
  ask (turtle-set primarys secondarys) [ 
    set forestset patches with [partof = myself]
    let thisforest self
    let mycolorid 0
    ifelse breed = primarys 
    [set mycolorid one-of (list 33 34 35)]
    [set mycolorid one-of (list 53 54 55)]
    ask forestset [set pcolor mycolorid]
    ;; ask patches on edges of forest area to recolour
    ask forestset [if count neighbors with [partof = thisforest] < 8 [set pcolor 36] ]   
    ;; TODO add lines to demark the patch sets ?
    ;;create-boundaries
  ]
 
  show (word "Creating " count (turtle-set primarys secondarys)  " forest areas, controlled by 4 clans")
  ;; other logging concessionary areas are outside of model 
  ;; distribution of patches into forest
  let sforests reverse sort-on [count patches with [partof = myself]] (turtle-set secondarys primarys)
  ;; foreach sforests [show count patches with [partof = ?]]

  set ClanID 0
  let forestID 0
  ;; allocate forests to clans
  ask (turtle-set primarys secondarys) [ 
    set clan item ClanID ClanList
    set forestID forestID + 1
    ;; TODO use case when more than 4 clans
    if forestID >= item 0 ClanForestAreas [set ClanID 1]
    if forestID >= item 0 ClanForestAreas + item 1 ClanForestAreas  [set ClanID 2]
    if forestID >= item 0 ClanForestAreas + item 1 ClanForestAreas + item 2 ClanForestAreas [set ClanID 3]    
  ]
  ask (turtle-set primarys secondarys) [ show clan]
  ;; TODO: other characteristics of forest areas
  ;; add markers
  ;; forest production rules : at times resources appear in patches and can be collected
  
  ;; define households main activity depending on their access to farm/forest (if it is above a threshold)
  ;; create groups - farmer associations. done using traders
  ;; allocate hh to a group. 
  
  create-spinner
  ;; set display properties
  set-default-shape households "house"
  ask households [set size 1]
  ask households [set color brown]
  
  ;; other setup
  set-default-shape traders "person"
  set-default-shape people "person"
  reset-ticks
end 

;; recueilleNTFPs

to recueilleNTFPs
  let nearset patches in-radius walk-speed
  let nearNTFPs (turtle-set kokos-on nearset mangues-on nearset)
  let collected no-turtles
  if any? nearNTFPs [
    let nnt min (list 3 (count nearNTFPs)) 
    set collected n-of nnt nearNTFPs
  ]          
  foreach sort collected [            
    if [breed] of ? = mangues [ set mcol mcol + 1]
    if [breed] of ? = kokos [ set kcol kcol + 1]
  ]
  ask collected [die]
end 

;; nice animation of village activities

to ramble
  ;; short random walk
  set heading random 360
  fd 0.5
  ;; sleeping etc
end 

to go
  reset-tick
  ifelse (the-period = ticks-per-month)
  [set the-period 1 ]                   ;; new month has started
  [set the-period the-period + 1]
  if the-period = 1 [ 
    reset-month
    set-month        ;; set the month (string and id) 
  ]
  
  if the-period = 1 [NTFP-growth]
  
  ;; traders update their demands annually
  if month-id = 0 and the-period = 1 [
    ask traders [update-demands]
  ]
 
  ifelse any? (turtle-set mangues kokos) [
    
    foreach sort people [  
      let thisp ?
      let pclan [clan] of ?
      ;; if person is at village when NTFPS present - setting off for forest
      ifelse [pdest] of ? = village 0 [
        ;;print "set off" 
        let fordest one-of (turtle-set primarys secondarys) with [clan = pclan]
        ask thisp [
          set fdest fordest
          set status "collecting"
          set pdest one-of [forestset] of fdest
          set heading towards pdest
        ]
        ;; or choose other activity (farming etc.)
      ]
      ;; otherwise continue forward (at walkspeed)
      [
        ;; if I am at my destination, collect any NTFPs within walking distance, and change destination to another within forest set
        ;; TODO if I am at my forest destination collect any. only change patch destination when I reach near there
        ask ? [
          ifelse member? pdest patches in-radius walk-speed
          [ 
            ;; collect and account for NTFPs         
            recueilleNTFPs
            set pdest one-of [forestset] of fdest
            set heading towards pdest 
          ]
          ;; otherwise, continue walking towards destination
          [
            fd walk-speed
          ]      
        ]
      ]
    ]
  ] 
  [  
    foreach sort people [
      ask ? [ 
        set status "waiting"
        set pdest village 0
        set heading towards pdest
        ;; either ramble around at destination or stay at destination
        ifelse member? pdest turtles-on patches in-radius walk-speed
        ;;if not member? pdest turtles-on [neighbors] of patch-here
        [
          ramble
        ]
        [
          fd walk-speed
        ]
      ]
    ]
  ]
  ;; after a certain number of months/years a trader appears
  if month-id = 2 and the-period = 1 [
    create-traders 1 [
      setxy random-pxcor random-pycor
      set croptype item 0 one-of croptypes
      ;; turtle moves to the center of a random patch
      print (word "New " croptype " trader has appeared at " xcor ", " ycor)
      set demand random 100
      set color black
      set destination one-of (turtle-set primarys secondarys) 
      set heading towards destination
    ]
  ]
  ask traders [
    fd walk-speed
    ;; if arrived at destination and if no people nearby change destination
    if [partof] of patch-here = destination and not any? people in-radius walk-speed [
      ;;print "changing direction"
      set destination one-of (turtle-set primarys secondarys) 
      set heading towards destination
    ]
    if any? people in-radius walk-speed [
      create-tradelinks-with people in-radius walk-speed
    ]
    
  ] 

    
  ;;**** 1. climate and farm activity ********
  update-spinner                         ;; report the climate regime, track the climate and the current month
  tick
end 


;; shifting demand patterns for crop and amount to be supplied

to update-demands
  set croptype item 0 one-of croptypes
  set demand random 100
end 

;; it generates a new type of crop

to-report cropchooser
end 

;; this is controlled by a button

to initial-plantations
  let FarmID 0
  create-farms tries-paddys [
    set harvest 0
    set annual-profit 0
    set size-xy (list (farmsize-min + random-float (farmsize-max - farmsize-min)) (farmsize-min + random-float (farmsize-max - farmsize-min)))
    position-paddy
    let xc xcor
    let yc ycor
    set area (item 0 size-xy) * (item 1 size-xy)
    let fp patches with [abs (pxcor - xc) < ( item 0 [size-xy] of myself / 2 ) and abs (pycor - yc) < ( item 1 [size-xy] of myself / 2)] 
    ;;ask fp [set pcolor 32]
    set landuse "paddy"
    set color green
    ;; make them look like planations using transparency
    ask fp [sprout-trees 1 [set color 32 set-transparency 150]]
    ;; create lines around them?
    if FarmID < item 0 ClanHHCensus [set controller item 0 ClanList]
    set FarmID FarmID + 1
  ]
  show (word "Creating " count farms  " farms")
end 

;; done at beginning of month

to NTFP-growth  
  let NTFPSID 0
  foreach NTFPS [
    let current ?
    set NTFPSID position current NTFPS
    let percent item (month-id + 1) current ;; percent chance the product will appear
    ;;if item (month-id + 1) current > 0 [
    if percent > 0 [
      ;;print (word item 0 current " is ready to harvest")
      ;;let sprout-set no-patches
      foreach sort (turtle-set primarys secondarys) [
        ask [forestset] of ? [
          if random 100 < percent [set sprout-set (patch-set sprout-set self)]   
        ]
        select-case NTFPSID [
          [ 0 "ask sprout-set [sprout-mangues 1 [set color 15 set-transparency 100 show-turtle]]"]
          [ 1 "ask sprout-set [sprout-kokos 1 [set color 45 set-transparency 100 show-turtle]]"]
        ]
        
      ]
    ]
    set sprout-set no-patches
    ;; ungathered NTFPs disappear
    if percent = 0 [
      select-case NTFPSID [
          [ 0 "ask mangues [die]"]
          [ 1 "ask kokos [die]"]
      ]
    ]
  ]
end 
  
;; resetting of different variables at start of tick

to reset-tick
  set sprout-set no-patches
  ask people [set mcol 0 set kcol 0]
end 

;; things that need to be done at end of a month

to reset-month
  ask traders [ask tradelinks[die]]
end 

;; timelevels are the-month (numeric month-id) and the timelevel below the-month, the-period 

to set-month
  ;; month is calculated from the value of tick
  
  let period-of-year ticks mod (ticks-per-month * 12) ;; "period" is timelevel below "month" timelevel
  set month-id floor (period-of-year / ticks-per-month)
  
  ;; these variables could be useful
  set year-id floor (ticks / (ticks-per-month * 12))
 
  ;; select the correct string for current month (* - not permitted to resalinise)
  select-case month-id [
    [ 0 "set the-month \"Janvier\""]   ;;  sf harvest pre monsoon
    [ 1 "set the-month \"Fevrier\""]   ;; * MAY-JUNE  add sf harvest here? pre-monsoon
    [ 2 "set the-month \"Mars\""]     ;; * monsoon-saltrinse add sf harvest here? monsoon
    [ 3 "set the-month \"Avril\""]    ;; * JULY-AUG aman start? add desalinisation law? monsoon
    [ 4 "set the-month \"Mai\""]    ;; * CHANGE sf harvest -> rice culivation  add desalinisation law? monsoon
    [ 5 "set the-month \"Juin\""]    ;; paddy harvest add desalinisation law? post monsoon
    [ 6 "set the-month \"Juillet\""]     ;; add sf  here? OCT - NOV aman harvest? post monsoon
    [ 7 "set the-month \"Aout\""]
    [ 8 "set the-month \"Septembre\""]       ;; one-cycle shrimp (dec-june )
    [ 9 "set the-month \"Octobre\""]        ;; CHANGE sf harvest -> sf cultivation JAN-FEB
    [ 10 "set the-month \"Novembre\""]
    [ 11 "set the-month \"Decembre\""]   ;; add sf harvest here? 
  ]
    ;; calculate climate - now using climate-regime reporter  
end 

to-report month
  report the-month
end 
;; useful switch/case procedure
;; Agent runs a command task or a string containing commands.

to select-case [ value cases ]
foreach cases
[ 
  if first ? = value [ run last ? stop ]
]
end  


;; place a river node at each point along x=0 axis
;; river links are directed from top most point of grid (where y= max value)
;; todo set as directed

to position-river
  let river-x 1
  ;; start at top where y takes maximum value (+16)
  let intlist n-values (max-pycor + 1 ) [?]
  foreach intlist [
    create-rivernodes 1 [
      set xcor river-x
      set ycor ?
    ]
  ]
  set intlist n-values max-pycor [?]
  foreach intlist [
    create-rivernodes 1 [
      set xcor river-x
      set ycor 0 - (1 + ?)
    ]
  ]
  ask rivernodes [
    let mywho who
    ;;create-riverlinks-to rivernodes with [who = mywho + 1] 
    create-riverlinks-with rivernodes with [who = mywho + 1] 
    hide-turtle
  ]
  ask riverlinks [
    set color blue
    set thickness 0.1
  ]
end 

;; paddy context

to position-paddy
  let exit false
  let tries 0
  while [exit = false] [
    ;;print "stuck in while"
     ;; report a random floating point number from the allowable range of turtle coordinates along the given axis, x or y.  
     let rfx random-xcor 
     let rfy random-ycor
     set xcor rfx
     set ycor rfy
     ;; distancexy reports distance from this agent to the point (xcor, ycor) and distance reports distance from this agent to another
     ;; paddys not allowed too close to other paddy or the village or mangrove
     ;; myself here refers to the current paddy that we are positioning
     ;;show distance min-one-of rivernodes [distance myself] ;;< riverbank-distance  
     ifelse any? other farms with [distance myself < min-distance] or distance one-of villages < min-distance or (distance min-one-of rivernodes [distance myself]) <  riverbank-distance
     [
       set tries tries + 1
       if tries > 20 
       [  die 
          set exit true
       ] ;; limit the number of paddy agents
     ]
     [ 
       let river-distance distance min-one-of rivernodes [distance myself]
       
       set exit true
     ]
  ] 
end 

;; position primarys or secondarys
;; note that a farm can be located in a forest area 

to position-forest-area
  let exit false
  let tries 0
  while [exit = false] [
    ;;print "stuck in while"
     ;; report a random floating point number from the allowable range of turtle coordinates along the given axis, x or y.  
     let rfx random-xcor 
     let rfy random-ycor
     set xcor rfx
     set ycor rfy
     ;; distancexy reports distance from this agent to the point (xcor, ycor) and distance reports distance from this agent to another
     ;; paddys not allowed too close to other paddy or the village or mangrove
     ;; myself here refers to the current paddy that we are positioning
     ;;show distance min-one-of rivernodes [distance myself] ;;< riverbank-distance  
     ifelse any? other (turtle-set primarys secondarys) with [distance myself < min-distance-forest] or distance one-of villages < min-distance-forest or (distance min-one-of rivernodes [distance myself]) <  riverbank-distance
     [
       set tries tries + 1
       if tries > 20 
       [  die 
          set exit true
       ] ;; limit the number of paddy agents
     ]
     [ 
       let river-distance distance min-one-of rivernodes [distance myself]
       
       set exit true
     ]
  ] 
end 

to create-boundaries
 ;; draw 4 lines around edge of this forestset
 print "entered create-boundaries"
 let halfwidth item 0 size-xy / 2 
 let halfheight item 1 size-xy / 2
 let myx xcor
 let myy ycor
 hatch-boundarys 1 [
   set xcor myx - halfwidth
   ;; set xcor myx
   set ycor myy
  set heading 0
 ]
 hatch-boundarys 1 [
   set xcor myx
   set ycor myy - halfheight
   set heading 90
 ]
 hatch-boundarys 1 [
   set xcor myx + halfwidth
   set ycor myy
   set heading 0
 ]
 hatch-boundarys 1 [
   set xcor myx
   set ycor myy + halfheight
   set heading 90
 ]
  ask boundarys [
   set color white
   set size 3
   show-turtle
  ]
end 

;; make the spinner for the upper right hand corner

to create-spinner
  create-spinners 1
  [ set shape "clock"
    setxy (min-pxcor + 1.5) (max-pycor - 1.5)
    ;; place it near top left corner, but not on top of a paddy
    if any? other turtles with [distancexy (min-pxcor + 1.5) (max-pycor - 1.5) < 1.8]
    [
      let tow towards min-one-of other turtles [distance myself]
      ;;print (word "found turtle at " tow)
      ifelse tow < 90 or tow > 270
      [
        setxy (min-pxcor + 1.5)(max-pycor - 3) ;; move it down
      ]
      [
        ifelse tow > 180
        [
         setxy (min-pxcor + 3) (max-pycor - 1.5) ;; move it right
        ]
        [
          setxy (min-pxcor + 1) (max-pycor - 1) ;; move it slightly up and left      
        ]
      ]
    ]  
    set color gray - 1.5
    set size 2.5
    set heading 0]
    ;;set label 0 ]
end 

;; move the hand on one unit (one hour)

to update-spinner
  ask spinners
  [ set heading month-id * 30
    ;;ifelse climate-regime = "Monsoon"
    ;;[set color blue]
    ;;[set color grey]]
  ]
end 

;;Note the inversion of the transparency value so that the larger the number the MORE transparent (can remove or adjust that as you please).

to set-transparency [new-transparency]
  ifelse is-list? color
     [ set color lput (255 - new-transparency) sublist color 0 3 ]
     [ set color lput (255 - new-transparency) extract-rgb color ]
end 

;In Mendoungué village, the right of access to the land is based on the clan. Each clan owns a space and the children inherit land from their parents.
; Baka have access to resources that are located around their camps. Rivers and fields and fallow land boundaries are. Access to land for a native of 
; the village seeking land outside those left by his parents is authorized by the owner of the neighboring land that he seeks. Swamps belong to families 
; whose plots are located all around.
;1. The alien does not have the right of access to land. Access to NTFPs can be done by purchasing this with the owner.
;2. The timber is the only resource available to the authorization of the native responsible for CF. If marketing, a sales contract is established between the head of HR and the client. This regulation has contributed to the resurgence of wild timber in the village.

There is only one version of this model, created almost 11 years ago by Richard Taylor.

Attached files

File Type Description Last updated
COBAM-f.png preview screenshot almost 11 years ago, by Richard Taylor Download

This model does not have any ancestors.

This model does not have any descendants.