Crecimiento urbano con AC
No preview image
Model was written in NetLogo 5.1.0
•
Viewed 380 times
•
Downloaded 28 times
•
Run 0 times
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
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 about 10 years ago by Salvador Guerra Sánchez.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
ciudad extensa.csv | data | Mapa ciudad extensa.csv | about 8 years ago, by Salvador Guerra Sánchez | Download |
mapa 200x200.csv | data | Mapa mapa 200x200.csv | about 8 years ago, by Salvador Guerra Sánchez | Download |
Mapa-altura-1.csv | data | Mapa-altura-1.csv | about 8 years ago, by Salvador Guerra Sánchez | Download |
Mapa-altura-2.csv | data | Mapa-altura-2.csv | about 8 years ago, by Salvador Guerra Sánchez | Download |
nucleo urbano.csv | data | Mapa nucleo urbano.csv | about 8 years ago, by Salvador Guerra Sánchez | Download |
This model does not have any ancestors.
This model does not have any descendants.
Javier Sandoval
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 about 8 years ago