Urban Region Toy

Urban Region Toy preview image

1 collaborator

19344_1338329223422_4777790_n Javier Sandoval (Author)

Tags

urban 

Tagged by Javier Sandoval almost 6 years ago

urban planning 

Tagged by Javier Sandoval almost 6 years ago

urbanization 

Tagged by Javier Sandoval almost 6 years ago

Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.1.1 • Viewed 537 times • Downloaded 59 times • Run 0 times
Download the 'Urban Region Toy' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

This model demonstrates land use patterns that may arise as a result of land-use compatibilities stablished in urban development plans and conditions present in the territory where they apply.

HOW IT WORKS

The model begins by representing the surface of a territory of finite dimension through a grid and without any urbanization. Each cell in this grid starts with a potential value of 1 or -1 assigned randomly and with the interest in developing one of 7 possible land uses that is also assigned at random. At each step, the model updates the potential value of each cell according to the potential values ​​of the neighboring cells and adjacent roads (roads increase the potential value of neighboring cells). If the new potential value passes a certain threshold, the cell becomes potentially developable. Next, the cell seeks that its interest in developing a land use is not incompatible with the surrounding land uses within a tolerance radius specified by the user. If it is not incompatible, the cell is urbanized with the intended land use. If not, the cell remains undeveloped and again its potential value is estimated successively in each generation of the model.

The following land uses are considered incompatible, so they must be at a distance equal to TOLERANCE-RADIUS to co-exist:

Residential and Industrial Residential and Commercial-Industrial Industrial and Tourism Industrial and Residential-Commercial Tourism and Commercial-Industrial Tourism and Equipment Residential-Commercial and Commercial-Industrial

HOW TO USE IT

Position the RESTRICTIONS? switch ON or OFF. If ON is chosen, the model will place natural restrictions on urbanization randomly over the territory. These can be interpreted as hills, bodies of water, protected natural areas, etc.

Select the tolerance radius of the land uses with the TOLERANCE-RADIUS slider. This is a distance after which the coexistence of two incompatible land uses is possible. The greater the value, the greater the distance between them so that they can coexist.

Assign % of projected land uses. Under the PROJECTED column, the planned percentages of each of the 7 land uses are entered. The total sum must be 100%.

(Optional) Paint roads and land use. Under the BRUSHES column, press the button for land use or road that you want to represent in the territory. While the active button is kept, hover the cursor with the left mouse button pressed on the territory to paint. When finished painting, deactivate the button before proceeding with the simulation.

Press the SETUP button. This will assign a random value of 1 or -1 to each of the cells.

Press the GROW button to start the simulation.

At any time during the simulation, the GROW button can be pressed to pause the simulation and paint land uses, roads or change the TOLERANCE-RADIUS value. Press again to resume the simulation.

THINGS TO NOTICE

At the beginning of the simulation, groups of land uses are formed, where the accommodation of each use with the rest will depend on its compatibility and tolerance radius. If there are roads, these will attract land uses forming urban corridors along with them and at their intersections.

The actual behavior of the percentage of projected land uses varies according to the relationship between the amount of the percentage, compatibilities, and tolerance radius among all uses. This can be verified under the % OF LAND USES column, where PROJECTED vs. REAL percentage are compared, and in the % OF LAND USES OVER TIME chart.

The resulting land-use patterns may be similar to those found in real urban regions.

THINGS TO TRY

Try the following options:

a) Start the simulation without roads. After clusters of urbanization are formed, pause the simulation and connect them with roads. Resume the simulation and observe how the land use pattern is modified by the attraction of the new roads. Pause the simulation again and connect the new clusters, and so on. Observe how road network and land-use patterns are formed as a result of this feedback process.

b) Draw land-use patterns before starting the simulation and observe how new urban growth adapts to it. Use land-use patterns of your neighborhood, city or region.

EXTENDING THE MODEL

The model can be extended including a self-regulation process, in which the growth of land uses beyond its projected growth is not allowed.

CREDITS AND REFERENCES

The simulation takes its growth algorithm from a model called "Structure from randomness 2" found in the Netlogo model library. This model in turn is based on another model found in the book "Cities and Complexity" by Michael Batty.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

;::::::::::::::::::::::::::::::::::::::::U R B A N   R E G I O N   T O Y::::::::::::::::::::::::::::::::::::::::
;::::::::::::::::::::::::::::::::::::::::Code: Dr. Javier Sadoval Felix:::::::::::::::::::::::::::::::::::::::::
;::::::::::::::::::::::::::::::::::::::::Contact: jarquisol@gmail.com:::::::::::::::::::::::::::::::::::::::::::

extensions [rnd]
patches-own [
  potential
  new-potential
  interest
  urban?
slope]

globals [
  %Residential
  %Commercial
  %Industrial
  %Tourism
  %R-C
  %C-I
  %Equipment
  probability-list
  fitness
  threshold
]

to setup
  clear-all
  set threshold 4

  ifelse Restrictions?
  [ask patches [ set potential one-of [1 -1] ]
   set probability-list (list (list "Residential" Residential) (list "Commercial" Commercial) (list "Industrial" Industrial) (list "Tourism" Tourism) (list "H-C" Residential-Commercial) (list "C-I" Commercial-Industrial) (list "Equipment" Equipment))
   setup-patches
   set fitness ((max [slope] of patches) - (min [slope] of patches))]

  [ask patches [ set potential one-of [1 -1] ]
   set probability-list (list (list "Residential" Residential) (list "Commercial" Commercial) (list "Industrial" Industrial) (list "Tourism" Tourism) (list "H-C" Residential-Commercial) (list "C-I" Commercial-Industrial) (list "Equipment" Equipment))
 ]
  reset-ticks
end 

to go
  estimate-%
  if (Residential + Commercial + Industrial + Tourism + Residential-Commercial + Commercial-Industrial + Equipment) != 100 [user-message "Suma de porcentajes de uso no es igual a 100%"
    stop]
  ask patches with [pcolor = white] [ask neighbors [set potential (potential + one-of [1 -1])]]
  ask patches [ set new-potential (potential + sum [potential] of neighbors4) / 5 + one-of [1 -1] ]
  ask patches [ set potential new-potential
                if potential > threshold and urban? = 0 and slope >= ((min [slope] of patches) + (fitness / 2))

                 [set interest first rnd:weighted-one-of-list probability-list last]
                   if interest = "Residential" and count patches in-radius Tolerance-radius with [interest = "Industrial" or interest = "C-I"] = 0
                        [set pcolor yellow
                         set urban? 1]

                   if interest = "Commercial" and (count patches in-radius Tolerance-radius with [interest = "Industrial"] = 0)
                        [set pcolor red
                         set urban? 1]

                   if interest = "Industrial" and (count patches in-radius Tolerance-radius with [interest = "Residential" or interest = "H-C" = 0 or interest = "Tourism" or interest = "Commercial"] = 0)
                        [set pcolor violet
                         set urban? 1]

                   if interest = "Tourism" and (count patches in-radius Tolerance-radius with [interest = "Industrial" or interest = "C-I" or interest = "Equipment"] = 0)
                        [set pcolor pink
                         set urban? 1]

                   if interest = "H-C" and (count patches in-radius Tolerance-radius with [interest = "Industrial" or interest = "C-I"] = 0)
                        [set pcolor orange
                         set urban? 1]

                   if interest = "C-I" and (count patches in-radius Tolerance-radius with [interest = "Residential" or interest = "Tourism" or interest = "H-C"] = 0)
                        [set pcolor brown
                         set urban? 1]

                   if interest = "Equipment" and (count patches in-radius Tolerance-radius with [interest = "Tourism"] = 0)
                        [set pcolor blue
                         set urban? 1]]
  tick
end 

to Hab
    if mouse-down?
    [ask patch mouse-xcor mouse-ycor
        [ set pcolor yellow
          set urban? 1
          set interest "Residential"]]
  display
end 

to Com
  if mouse-down?
    [ask patch mouse-xcor mouse-ycor
        [ set pcolor red
          set urban? 1
          set interest "Commercial"]]
  display
end 

to Ind
  if mouse-down?
    [ask patch mouse-xcor mouse-ycor
        [ set pcolor violet
          set urban? 1
          set interest "Industrial"]]
  display
end 

to Equi
  if mouse-down?
    [ask patch mouse-xcor mouse-ycor
        [ set pcolor blue
          set urban? 1
          set interest "Equipment"]]
end 

to Tur
  if mouse-down?
    [ask patch mouse-xcor mouse-ycor
        [ set pcolor pink
          set urban? 1
          set interest "Tourism"]]
  display
end 

to Hab-Com
  if mouse-down?
    [ask patch mouse-xcor mouse-ycor
        [ set pcolor orange
          set urban? 1
          set interest "H-C"]]
  display
end 

to Com-Ind
  if mouse-down?
    [ask patch mouse-xcor mouse-ycor
        [ set pcolor brown
          set urban? 1
          set interest "C-I"]]
  display
end 

to Road
  if mouse-down?
    [ask patch mouse-xcor mouse-ycor
        [ set pcolor white
          set urban? 1
          set interest 0]]
  display
end 

to No-urb
  if mouse-down?
    [ask patch mouse-xcor mouse-ycor
        [ set pcolor gray
          set urban? 1]]
  display
end 

to setup-patches
  ask patches
  [set slope ( random 15 )]
  repeat 70
  [diffuse slope 1]
  ask patches
  [set pcolor scale-color green slope 7 6]
end 

to estimate-%
  if count patches with [pcolor = yellow] != 0 [set %Residential (count patches with [pcolor = yellow] * 100) / (count patches with [pcolor = yellow or pcolor = red or pcolor = violet or pcolor = pink or pcolor = orange or pcolor = brown or pcolor = blue])]
  if count patches with [pcolor = red] != 0 [set %Commercial (count patches with [pcolor = red] * 100) / (count patches with [pcolor = yellow or pcolor = red or pcolor = violet or pcolor = pink or pcolor = orange or pcolor = brown or pcolor = blue])]
  if count patches with [pcolor = violet] != 0 [set %Industrial (count patches with [pcolor = violet] * 100) / (count patches with [pcolor = yellow or pcolor = red or pcolor = violet or pcolor = pink or pcolor = orange or pcolor = brown or pcolor = blue])]
  if count patches with [pcolor = pink] != 0 [set %Tourism (count patches with [pcolor = pink] * 100) / (count patches with [pcolor = yellow or pcolor = red or pcolor = violet or pcolor = pink or pcolor = orange or pcolor = brown or pcolor = blue])]
  if count patches with [pcolor = orange] != 0 [set %R-C (count patches with [pcolor = orange] * 100) / (count patches with [pcolor = yellow or pcolor = red or pcolor = violet or pcolor = pink or pcolor = orange or pcolor = brown or pcolor = blue])]
  if count patches with [pcolor = brown] != 0 [set %C-I (count patches with [pcolor = brown] * 100) / (count patches with [pcolor = yellow or pcolor = red or pcolor = violet or pcolor = pink or pcolor = orange or pcolor = brown or pcolor = blue])]
  if count patches with [pcolor = blue] != 0 [set %Equipment (count patches with [pcolor = blue] * 100) / (count patches with [pcolor = yellow or pcolor = red or pcolor = violet or pcolor = pink or pcolor = orange or pcolor = brown or pcolor = blue])]
end 

There is only one version of this model, created almost 6 years ago by Javier Sandoval.

Attached files

File Type Description Last updated
Urban Region Toy.png preview Preview for 'Urban Region Toy' almost 6 years ago, by Javier Sandoval Download

This model does not have any ancestors.

This model does not have any descendants.