PAM es una biblioteca de Python para modelar secuencias de actividades de poblaciones. Casos de uso de ejemplo:
PAM admite formatos comunes de viajes y actividades, incluido MATSim.
Las secuencias de actividades de la población (a veces llamadas planes de actividades ) se utilizan para modelar las actividades (dónde y cuándo están las personas en casa, en el trabajo, en la educación, etc.) y los viajes asociados de una población:
Los planificadores de transporte utilizan secuencias de actividades para modelar la demanda de viajes, pero también pueden usarse en otros dominios, como para la transmisión de virus o el modelado del uso de energía.
PAM se creó y compartió originalmente para modificar rápidamente los modelos de actividad existentes para responder a escenarios de bloqueo pandémico.
Esta funcionalidad utilizó un patrón de lectura-modificación-escritura . Cuando se realizan modificaciones mediante la aplicación de políticas . Ejemplos de políticas podrían ser (a) las personas infectadas se ponen en cuarentena en casa, (b) solo los trabajadores críticos viajan al trabajo y (c) todos compran localmente.
Además del patrón y la funcionalidad originales de lectura, modificación y escritura , PAM tiene módulos para:
En términos más generales, la estructura de datos y los módulos centrales de PAM se pueden utilizar como una biblioteca para respaldar sus propios casos de uso, incluida la creación de su propio modelo basado en actividades.
PAM es totalmente compatible con el formato de planes/población MATSim. Esto incluye vehículos, planes no seleccionados, rutas de tramo y atributos de tramo. Un caso de uso principal de PAM es leer, modificar y escribir planes experimentados de MATSim. Esto puede permitir que nuevos escenarios MATSim se "inicien en caliente" a partir de escenarios existentes, lo que reduce significativamente el tiempo de cálculo de MATSim.
Para obtener instrucciones más detalladas, consulte nuestra documentación.
Para instalar PAM, recomendamos utilizar el administrador de paquetes mamba:
mamba create -n pam -c conda-forge -c city-modelling-lab cml-pam
mamba activate pam
git clone [email protected]:arup-group/pam.git
cd pam
mamba create -n pam -c conda-forge -c city-modelling-lab --file requirements/base.txt --file requirements/dev.txt
mamba activate pam
pip install --no-deps -e .
También es posible instalar directamente con pip como usuario ( pip install cml-pam
) o como desarrollador ( pip install -e '.[dev]'
), pero necesitarás las bibliotecas geoespaciales no python libgdal
y libspatialindex
preinstaladas. .
Para obtener instrucciones más detalladas, consulte nuestra documentación.
Hay muchas maneras de realizar contribuciones técnicas y no técnicas a PAM. Antes de realizar contribuciones al código fuente de PAM, consulte nuestras pautas de contribución y siga las instrucciones de instalación en desarrollo.
Si está utilizando pip
para instalar PAM en lugar del mamba
recomendado, puede instalar las bibliotecas de prueba y documentación opcionales utilizando la opción dev
, es decir, pip install -e '.[dev]'
Si planea realizar cambios en el código, utilice periódicamente las siguientes herramientas para verificar el código base mientras trabaja:
pre-commit
: ejecute pre-commit install
en su línea de comando para cargar comprobaciones incorporadas que se ejecutarán cada vez que confirme sus cambios. Las comprobaciones son: 1. verificar que no se hayan preparado archivos grandes, 2. archivos lint python para detectar errores importantes, 3. formatear los archivos python para que cumplan con el estándar pep8. También puede ejecutar estas comprobaciones usted mismo en cualquier momento para asegurarse de que los cambios preparados estén limpios con una simple llamada pre-commit
.pytest
: ejecute el conjunto de pruebas unitarias, verifique la cobertura de la prueba y pruebe que los cuadernos de ejemplo se ejecuten correctamente.pytest -p memray -m "high_mem" --no-cov
(no disponible en Windows): después de instalar memray ( mamba install memray pytest-memray
), pruebe que el rendimiento de la memoria y el tiempo no excedan los puntos de referencia.Para obtener más información, consulte nuestra documentación.
Si no puede acceder a la documentación en línea, puede crear la documentación localmente. Primero, instale un entorno de desarrollo de PAM, luego implemente la documentación usando mike:
mike deploy 0.2
mike serve
Luego puede ver la documentación en un navegador en http://localhost:8000/.
Este paquete fue creado con Cookiecutter y la plantilla de proyecto arup-group/cookiecutter-pypackage.