PAM est une bibliothèque Python pour la modélisation de séquences d'activités de population. Exemples de cas d'utilisation :
PAM prend en charge les formats de voyage et d'activités courants, y compris MATSim.
Les séquences d'activités de la population (parfois appelées plans d'activité ) sont utilisées pour modéliser les activités (où et quand les gens sont à la maison, au travail, à l'école, etc.) et les déplacements associés d'une population :
Les séquences d'activités sont utilisées par les planificateurs des transports pour modéliser la demande de déplacement, mais peuvent également être utilisées dans d'autres domaines, comme pour la transmission de virus ou la modélisation de la consommation d'énergie.
PAM a été initialement créé et partagé pour modifier rapidement les modèles d’activité existants afin de répondre aux scénarios de confinement pandémique.
Cette fonctionnalité utilisait un modèle de lecture-modification-écriture . Où des modifications sont apportées en appliquant des politiques . Des exemples de politiques pourraient être (a) les personnes infectées se mettent en quarantaine à la maison, (b) seuls les travailleurs critiques se rendent au travail et (c) tout le monde fait ses achats localement.
En plus du modèle et des fonctionnalités de lecture-modification-écriture d'origine, PAM dispose de modules pour :
Plus généralement, la structure de données et les modules de base de PAM peuvent être utilisés comme bibliothèque pour prendre en charge vos propres cas d'utilisation, y compris la création de votre propre modèle basé sur les activités.
PAM prend entièrement en charge le format de population/plans MATSim. Cela inclut les véhicules, les plans non sélectionnés, les itinéraires et les attributs des étapes. Un cas d'utilisation principal de PAM consiste à lire-modifier-écrire des plans expérimentés à partir de MATSim. Cela peut permettre de « démarrer à chaud » de nouveaux scénarios MATSim à partir de scénarios existants, réduisant ainsi considérablement le temps de calcul de MATSim.
Pour des instructions plus détaillées, consultez notre documentation.
Pour installer PAM, nous vous recommandons d'utiliser le gestionnaire de packages 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 .
L'installation directement avec pip en tant qu'utilisateur ( pip install cml-pam
) ou en tant que développeur ( pip install -e '.[dev]'
) est également possible, mais vous aurez besoin des bibliothèques géospatiales non-python libgdal
& libspatialindex
préinstallées .
Pour des instructions plus détaillées, consultez notre documentation.
Il existe de nombreuses façons d’apporter des contributions techniques et non techniques au PAM. Avant de contribuer au code source de PAM, consultez nos directives de contribution et suivez les instructions d'installation de développement.
Si vous utilisez pip
pour installer PAM au lieu du mamba
recommandé, vous pouvez installer les bibliothèques de test et de documentation facultatives à l'aide de l'option dev
, c'est-à-dire pip install -e '.[dev]'
Si vous envisagez d'apporter des modifications au code, veuillez utiliser régulièrement les outils suivants pour vérifier la base de code pendant que vous travaillez :
pre-commit
: exécutez pre-commit install
dans votre ligne de commande pour charger les vérifications intégrées qui s'exécuteront à chaque fois que vous validez vos modifications. Les vérifications sont les suivantes : 1. vérifier qu'aucun fichier volumineux n'a été mis en scène, 2. détecter les erreurs majeures dans les fichiers Python Lint, 3. formater les fichiers Python pour les rendre conformes à la norme pep8. Vous pouvez également exécuter ces vérifications vous-même à tout moment pour vous assurer que les modifications par étapes sont propres en appelant simplement pre-commit
.pytest
- exécutez la suite de tests unitaires, vérifiez la couverture des tests et testez que les exemples de blocs-notes s'exécutent correctement.pytest -p memray -m "high_mem" --no-cov
(non disponible sous Windows) - après avoir installé memray ( mamba install memray pytest-memray
), testez que les performances de mémoire et de temps ne dépassent pas les références.Pour plus d’informations, consultez notre documentation.
Si vous ne parvenez pas à accéder à la documentation en ligne, vous pouvez créer la documentation localement. Tout d'abord, installez un environnement de développement PAM, puis déployez la documentation à l'aide de Mike :
mike deploy 0.2
mike serve
Vous pouvez ensuite consulter la documentation dans un navigateur à l'adresse http://localhost:8000/.
Ce package a été créé avec Cookiecutter et le modèle de projet arup-group/cookiecutter-pypackage.