Crecimiento urbano con AC

No preview image

1 collaborator

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 5.1.0 • Viewed 255 times • Downloaded 14 times • Run 0 times
Download the 'Crecimiento urbano con AC' modelDownload this modelEmbed this model

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


Info tab cannot be displayed because of an encoding error

Comments and Questions

Archivo faltante (Question)

Hola qué tal, estoy interesado en este modelo, pero al ejecutarlo me indica que falta el archivo "nucleo urbano.csv", ¿cómo lo puedo obtener? Gracias.

Posted over 2 years ago

Click to Run Model

patches-own[
  tipo-suelo
  potencial
  capacidad-crecimiento
  vecinos
  ]

globals[
  puntero-grueso ;creamos esta variable para que no haya conflicto con el modelo "CreaMapa.nlogo".
  patches-aleatorios
  urbanizados-inicial
  carreteras-inicial
  ]

;Importa el mapa seleccionado y restaura los valores por defecto.

to importarMapa
  clear-all
  import-world selecc-mapa
  ;Reajusta el tamaño del mundo para que se adapte a la longitud de los mapas.
  set-patch-size 480 / world-width
  reset-ticks
  clear-all-plots  
  ;Asignamos un valor a la propiedad "tipo-suelo" de cada patche del escenario.
  ask patches with [pcolor = 14][set tipo-suelo "urbanizado"]
  ask patches with [pcolor = 63][set tipo-suelo "no-urbanizado"]
  ask patches with [pcolor = 4][set tipo-suelo "carretera"]
  ask patches with [pcolor = 104][set tipo-suelo "rio"]
  ask patches with [pcolor = 75][set tipo-suelo "lago"]
  ask patches with [pcolor = 25][set tipo-suelo "polucion"]
  set urbanizados-inicial patches with [pcolor = 14]
  set carreteras-inicial patches with [pcolor = 4]
  ;Llama al procedimiento que asigna valores a los tipos de suelo
  parametrizacion
  ;Tras inicializar, llamamos a las reglas que sólo necesiten ejecutarse una vez.
  reglas-una-ejecucion
end 

;Resetea el mapa para no importarlo de nuevo.

to reset
  ask patches with [tipo-suelo = "no-urbanizado"] 
  [
    set pcolor 63
  ]
  ask patches with [tipo-suelo = "urbanizado" or tipo-suelo = "centro-comercial" or tipo-suelo = "carretera"]
  [
    set pcolor  63
    set tipo-suelo "no-urbanizado"
  ]
  ask urbanizados-inicial
  [
    set pcolor 14
    set tipo-suelo "urbanizado"
  ]
  ask carreteras-inicial
  [
    set pcolor 4
    set tipo-suelo "carretera"
  ]
  clear-turtles
  reset-ticks
  clear-all-plots
  parametrizacion
  reglas-una-ejecucion
end 

;Relaciona capacidades de crecimiento con tipos de suelo.

to parametrizacion
  ask patches with [tipo-suelo = "urbanizado"] [set capacidad-crecimiento cc-urbanizado]
  ask patches with [tipo-suelo = "carretera"] [set capacidad-crecimiento cc-carretera]
  ask patches with [tipo-suelo = "rio"] [set capacidad-crecimiento cc-rio]
  ask patches with [tipo-suelo = "lago"] [set capacidad-crecimiento cc-lago]
  ask patches with [tipo-suelo = "polucion"] [set capacidad-crecimiento cc-polucion]
  ask patches with [tipo-suelo = "contaminado"] [set capacidad-crecimiento cc-contaminado]
  ask patches with [tipo-suelo = "no-urbanizado"] [set capacidad-crecimiento cc-no-urbanizado]
end 

;Llama a las reglas que se ejecutan una sola vez.

to reglas-una-ejecucion 
  crea-contamina
  ask patches [
    set vecinos patches in-radius vision
  ]
  ask patches with [tipo-suelo = "no-urbanizado"][set potencial 0]
  potencial-inicial
end 

;Asigna potencial a las celdas cuando se carga el mapa.

to potencial-inicial
   ask patches with [tipo-suelo = "carretera"][
    ask vecinos with [tipo-suelo = "no-urbanizado"][
      set potencial (potencial + [capacidad-crecimiento] of myself);one-of patches with [tipo-suelo = "carretera"])
    ]
  ]
  ask patches with [tipo-suelo = "rio"][
    ask vecinos with [tipo-suelo = "no-urbanizado"][
      set potencial (potencial + [capacidad-crecimiento] of myself);one-of patches with [tipo-suelo = "rio"])
    ]
  ]
  ask patches with [tipo-suelo = "lago"][
    ask vecinos with [tipo-suelo = "no-urbanizado"][
      set potencial (potencial + [capacidad-crecimiento] of myself);of one-of patches with [tipo-suelo = "lago"])
    ]
  ]
  ask patches with [tipo-suelo = "urbanizado"][
    ask vecinos with [tipo-suelo = "no-urbanizado"][
      set potencial (potencial + [capacidad-crecimiento] of myself);one-of patches with [tipo-suelo = "urbanizado"])
    ]
  ]
  ask patches with [tipo-suelo = "no-urbanizado"][
    ask other vecinos with [tipo-suelo = "no-urbanizado"][
      set potencial (potencial + [capacidad-crecimiento] of myself);one-of patches with [tipo-suelo = "urbanizado"])
    ]
  ]
end 

to go
  ;Para cada iteración o tick, necesitamos resetear los subíndices y las listas, que serán usadas para el vector de transición (potencial).
  if not any? patches with [tipo-suelo = "no-urbanizado"] [stop]
  set patches-aleatorios (%crecimiento-aleatorio * tasa-crecimiento / 100)
  ;Llamamos a un conjunto de reglas y les aplicamos el potencial.
  ordena-potencial
  ;Cada x ticks, se desarrollan centros comerciales en la periferia de la ciudad
  if (ticks-creacion-centro-comercial > 0)[
    if (ticks mod ticks-creacion-centro-comercial = 0)[
      crea-centro-comercial
    ]
  ]
  if (ticks-creacion-carretera > 0)[
    if (ticks mod ticks-creacion-carretera = 0)[
      crea-carretera
    ]
  ]
  ifelse muestra-potencial? [ muestra-potencial] [ask patches with [tipo-suelo = "no-urbanizado"] [set pcolor 63]]
  ;Detenemos la ejecución cuando se llega a 50 ticks, el límite de crecimiento marcado para este modelo.
  if (pasos-de-simulacion > 0 and ticks = pasos-de-simulacion)[
    stop
  ]
  ;Una vez que se aplican las reglas y las celdas correspondientes crecen, pasamos al siguiente paso o tick.
  tick
  ;Esperamos un segundo entre cada paso para ver claramente la evolución
  wait (1 - velocidad-ejecucion)
end 

;Los patches que se encuentran dentro de un radio de 8 celdas (usamos la vecindad circular), de celdas "Polucion", se convierten en "Contaminado".

to crea-contamina
  ask patches with [tipo-suelo = "polucion"] [
    ask patches in-radius vision-contaminado with[tipo-suelo = "no-urbanizado"] [
        set tipo-suelo "contaminado"
      ]
    ]
end 

to ordena-potencial
;  let cc cc-urbanizado;[capacidad-crecimiento] of one-of patches with [tipo-suelo = "urbanizado"]
  let pp patches with [tipo-suelo = "no-urbanizado"]
  let nuevos min (list (count pp) (tasa-crecimiento - patches-aleatorios))
  ask max-n-of nuevos pp [potencial] [
    convierte-urbanizado
  ]
  ;Una vez se desarrollan los patches con mayor potencial, ahora desarrolla el porcentaje de patches aleatorios
  desarrolla-aleatorio
end 

;Elige un patche no-urbanizado para desarrollarlo, tantas veces como se haya indicado en el deslizador del portenctaje de crecimiento aleatorio

to desarrolla-aleatorio
;  let cc cc-urbanizado;[capacidad-crecimiento] of one-of patches with [tipo-suelo = "urbanizado"]
  let pp patches with [tipo-suelo = "no-urbanizado"]
  let nuevos min (list (count pp) patches-aleatorios)
  
  ask n-of nuevos pp[
    convierte-urbanizado
  ]
end 

;Urbaniza patches

to convierte-urbanizado
  set tipo-suelo "urbanizado"
  ifelse Evolucion-temporal? [set pcolor scale-color red ticks 0 200] [set pcolor 14]
  
  ask vecinos with [tipo-suelo = "no-urbanizado"] [
    set potencial (potencial + cc-urbanizado)
  ]
end 

;Crea centros comerciales en zonas con densidad de población urbanizada

to crea-centro-comercial
  
  let densidad-centro-comercial ([count patches in-radius radio-creacion-centro-comercial] of patch 100 100) * 0.4
  let frontera patches with [tipo-suelo = "no-urbanizado" and any? neighbors with [tipo-suelo = "urbanizado"]]
  ask frontera [
    let p patches in-radius radio-creacion-centro-comercial
    ;if((count patches in-radius radio-creacion-centro-comercial with [tipo-suelo = "urbanizado"] > densidad-centro-comercial) and
    if((count p with [tipo-suelo = "urbanizado"]  > densidad-centro-comercial) and (count p with [tipo-suelo = "centro-comercial"] = 0))[
      ask one-of (patches in-radius radio-creacion-centro-comercial) with [tipo-suelo = "no-urbanizado"]
      [
        set pcolor 45
        set tipo-suelo "centro-comercial"
        ask patches in-radius radio-creacion-centro-comercial with [tipo-suelo = "no-urbanizado"] [
          set potencial (potencial + cc-centro-comercial * (1 - distance myself / radio-creacion-centro-comercial))
        ]
      ]
    ]
  ]
end 

;Crea carreteras partiendo de un punto que ya es carretera.

to crea-carretera
  repeat numero-carreteras-nuevas[
    ask one-of patches with 
    [tipo-suelo = "carretera" and count patches in-radius 10 with [tipo-suelo = "carretera"] < 50]
   [
      sprout 1 [
        hide-turtle
        let objetivos patches with [tipo-suelo = "no-urbanizado" and distance myself < 50]
        if any? objetivos [face one-of objetivos]
        repeat random-normal (max-pxcor / 4) (max-pxcor / 8) [
          rt random 5
          lt random 5
          fd 1
          ifelse([tipo-suelo] of patch-here = "lago" )
          [
            stop
          ]
          [
            
            ask patch-here [
              if tipo-suelo != "rio" [
                set pcolor 4
                set tipo-suelo "carretera"
                ]
              ask patches in-radius vision with [tipo-suelo = "no-urbanizado"][
                set potencial potencial + cc-carretera
              ]
            ]
          ]
        ]
      ]
   ]
  ]
end 

to muestra-potencial
  ask patches with [tipo-suelo = "no-urbanizado"]
  [
    set pcolor scale-color yellow potencial 0 100
  ]
end 

There is only one version of this model, created over 4 years ago by Salvador Guerra Sánchez.

Attached files

File Type Description Last updated
ciudad extensa.csv data Mapa ciudad extensa.csv over 2 years ago, by Salvador Guerra Sánchez Download
mapa 200x200.csv data Mapa mapa 200x200.csv over 2 years ago, by Salvador Guerra Sánchez Download
Mapa-altura-1.csv data Mapa-altura-1.csv over 2 years ago, by Salvador Guerra Sánchez Download
Mapa-altura-2.csv data Mapa-altura-2.csv over 2 years ago, by Salvador Guerra Sánchez Download
nucleo urbano.csv data Mapa nucleo urbano.csv over 2 years ago, by Salvador Guerra Sánchez Download

This model does not have any ancestors.

This model does not have any descendants.