PAM ist eine Python-Bibliothek für die Modellierung von Populationsaktivitätssequenzen . Beispielhafte Anwendungsfälle:
PAM unterstützt gängige Reise- und Aktivitätsformate, einschließlich MATSim.
Bevölkerungsaktivitätssequenzen (manchmal auch Aktivitätspläne genannt) werden verwendet, um die Aktivitäten (wo und wann Menschen zu Hause sind, arbeiten, studieren usw.) und die damit verbundenen Reisen einer Bevölkerung zu modellieren:
Aktivitätssequenzen werden von Verkehrsplanern zur Modellierung der Reisenachfrage verwendet, können aber auch in anderen Bereichen verwendet werden, beispielsweise zur Virusübertragung oder zur Modellierung des Energieverbrauchs.
PAM wurde ursprünglich entwickelt und geteilt, um bestehende Aktivitätsmodelle schnell zu modifizieren, um auf Pandemie-Lockdown-Szenarien zu reagieren.
Diese Funktionalität verwendete ein Lese-, Änderungs- und Schreibmuster . Wo Änderungen durch Anwenden von Richtlinien vorgenommen werden. Beispiele für Richtlinien könnten sein, dass (a) infizierte Personen zu Hause unter Quarantäne gestellt werden, (b) nur kritische Arbeitnehmer zur Arbeit reisen und (c) jeder vor Ort einkauft.
Zusätzlich zum ursprünglichen Lese-, Änderungs- und Schreibmuster und der Funktionalität verfügt PAM über Module für:
Allgemeiner gesagt können die PAM-Kerndatenstruktur und -Module als Bibliothek zur Unterstützung Ihrer eigenen Anwendungsfälle verwendet werden, einschließlich der Erstellung Ihres eigenen aktivitätsbasierten Modells.
PAM unterstützt das MATSim-Bevölkerungs-/Planformat vollständig. Dazu gehören Fahrzeuge, nicht ausgewählte Pläne, Etappenrouten und Etappenattribute. Ein zentraler Anwendungsfall von PAM ist das Lesen, Ändern und Schreiben erfahrener Pläne aus MATSim. Dadurch können neue MATSim-Szenarien aus vorhandenen Szenarien „warm gestartet“ werden, wodurch die MATSim-Rechenzeit erheblich verkürzt wird.
Ausführlichere Anweisungen finden Sie in unserer Dokumentation.
Um PAM zu installieren, empfehlen wir die Verwendung des Mamba-Paketmanagers:
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 .
Eine direkte Installation mit pip als Benutzer ( pip install cml-pam
) oder als Entwickler ( pip install -e '.[dev]'
) ist ebenfalls möglich, Sie müssen jedoch die Geospatial-Nicht-Python-Bibliotheken libgdal
und libspatialindex
vorinstalliert haben .
Ausführlichere Anweisungen finden Sie in unserer Dokumentation.
Es gibt viele Möglichkeiten, sowohl technische als auch nichttechnische Beiträge zu PAM zu leisten. Bevor Sie Beiträge zum PAM-Quellcode leisten, lesen Sie unsere Beitragsrichtlinien und befolgen Sie die Installationsanweisungen für die Entwicklung.
Wenn Sie pip
zur Installation von PAM anstelle der empfohlenen mamba
verwenden, können Sie die optionalen Test- und Dokumentationsbibliotheken mithilfe der dev
-Option installieren, d. h. pip install -e '.[dev]'
Wenn Sie Änderungen am Code vornehmen möchten, verwenden Sie bitte regelmäßig die folgenden Tools, um die Codebasis während der Arbeit zu überprüfen:
pre-commit
: Führen Sie pre-commit install
in Ihrer Befehlszeile aus, um integrierte Prüfungen zu laden, die jedes Mal ausgeführt werden, wenn Sie Ihre Änderungen festschreiben. Die Prüfungen sind: 1. Überprüfen Sie, ob keine großen Dateien bereitgestellt wurden, 2. Lint-Python-Dateien auf schwerwiegende Fehler, 3. Formatieren Sie Python-Dateien so, dass sie dem pep8-Standard entsprechen. Sie können diese Prüfungen auch jederzeit selbst durchführen, um sicherzustellen, dass die gestaffelten Änderungen sauber sind, indem Sie einfach pre-commit
aufrufen.pytest
– Führen Sie die Unit-Test-Suite aus, überprüfen Sie die Testabdeckung und testen Sie, ob die Beispiel-Notebooks erfolgreich ausgeführt werden.pytest -p memray -m "high_mem" --no-cov
(nicht verfügbar unter Windows) – Testen Sie nach der Installation von Memray ( mamba install memray pytest-memray
), dass die Speicher- und Zeitleistung die Benchmarks nicht überschreitet.Weitere Informationen finden Sie in unserer Dokumentation.
Wenn Sie keinen Zugriff auf die Online-Dokumentation haben, können Sie die Dokumentation lokal erstellen. Installieren Sie zunächst eine Entwicklungsumgebung von PAM und stellen Sie dann die Dokumentation mit Mike bereit:
mike deploy 0.2
mike serve
Anschließend können Sie die Dokumentation in einem Browser unter http://localhost:8000/ anzeigen.
Dieses Paket wurde mit Cookiecutter und der Projektvorlage arup-group/cookiecutter-pypackage erstellt.