This is an implementation of the GMU-Social Model in Python, using Mesa and Mesa-Geo.
In this model, buildings are randomly assigned to agents as their home and work places, and the buildings' nearest road vertices are used as their entrances. Agents' commute routes can be found as the shortest path between entrances of their home and work places. These commute routes are segmented according to agents' walking speed. In this way, the movements of agents are constrained on the road network.
The GeoSpace contains multiple vector layers, including buildings, lakes, and a road network. More specifically, the road network is constructed from the polyline data and implemented by two underlying data structures: a topological network and a k-d tree. First, by treating road vertices as nodes and line segments as links, a topological network is created using the NetworkX and momepy libraries. NetworkX also provides several methods for shortest path computations (e.g., Dijkstra, A-star). Second, a k-d tree is built for all road vertices through the Scikit-learn library for the purpose of nearest vertex searches.
The commuters are the GeoAgents.
Si usas Windows, te recomiendo instalar el Windows Subsystem for Linux. Puede ser la versión 1 o 2 (recomiendo WSL2). Como distribución te recomiendo Ubuntu 22.04 (es la que uso yo).
Abre la consola (shell) de Ubuntu y ejecuta el siguiente comando:
sudo apt install make libxcursor1 libgdk-pixbuf2.0-dev libxdamage-dev osmctools gcc
Esto instalará algunas bibliotecas que son necesarias para el funcionamiento de aves
(particularmente de graph-tool
que es usada por aves).
Además, para administrar el entorno de ejecución de aves necesitas una instalación de conda
(Miniconda es una buena alternativa) y de mamba
. Primero debes instalar conda
, y una vez que la tengas, puedes ejecutar:
conda install mamba
¿Por qué mamba
? Es una versión más eficiente de conda
. ¡Te ahorrará muchos minutos de instalación!
Después de descargar o clonar el repositorio (utilizando el comando git clone
), debes instalar el entorno de conda
con los siguientes comandos:
make conda-create-env
make install-package
Ello creará un entorno llamado zorzim
que puedes utilizar a través del comando conda activate zorzim
.
conda activate zorzim
Luego, puedes ejecutar la simulación con:
python scripts/run.py --campus ub
Reemplaza ub
a gmu
para ver un campus distinto.
Abre http://127.0.0.1:8521/ en tu navegador y haz click en Start
.
El principal modo de uso de aves es a través de los notebooks de Jupyter.
Es posible que ya tengas un entorno de conda
en el que ejecutes Jupyter. En ese caso, puedes agregar el entorno de aves
como kernel ejecutando este comando desde el entorno que contiene Jupyter:
make install-kernel
Así quedará habilitado acceder al entorno de aves desde Jupyter.
Para añadir o actualizar dependencias:
- Agrega el nombre (y la versión si es necesaria) a la lista en
environment.yml
. - Ejecuta
conda env update --name aves --file environment.yml --prune
. - Actualiza el archivo
environment.lock.yml
ejecutandoconda env export > environment.lock.yml
.