PAM adalah perpustakaan python untuk pemodelan urutan aktivitas populasi. Contoh kasus penggunaan:
PAM mendukung format perjalanan dan aktivitas umum, termasuk MATSim.
Urutan aktivitas populasi (terkadang disebut rencana aktivitas ) digunakan untuk memodelkan aktivitas (di mana dan kapan orang berada di rumah, tempat kerja, pendidikan, dan sebagainya) dan perjalanan terkait suatu populasi:
Urutan aktivitas digunakan oleh perencana transportasi untuk memodelkan permintaan perjalanan, namun juga dapat digunakan di domain lain, seperti untuk pemodelan penularan virus atau penggunaan energi.
PAM pada awalnya dibuat dan dibagikan untuk dengan cepat mengubah model aktivitas yang ada guna merespons skenario penguncian pandemi.
Fungsionalitas ini menggunakan pola baca-modifikasi-tulis . Dimana modifikasi dilakukan dengan menerapkan kebijakan . Contoh kebijakannya adalah (a) orang yang terinfeksi harus dikarantina di rumah, (b) hanya pekerja penting yang bepergian ke tempat kerja, dan (c) semua orang berbelanja secara lokal.
Selain pola dan fungsionalitas baca-modifikasi-tulis asli, PAM memiliki modul untuk:
Secara umum, struktur dan modul data inti PAM dapat digunakan sebagai perpustakaan untuk mendukung kasus penggunaan Anda sendiri, termasuk membangun model berbasis aktivitas Anda sendiri.
PAM sepenuhnya mendukung format populasi/rencana MATSim. Ini termasuk kendaraan, rencana yang tidak dipilih, rute perjalanan, dan atribut perjalanan. Kasus penggunaan inti PAM adalah membaca-memodifikasi-menulis rencana berpengalaman dari MATSim. Hal ini memungkinkan skenario MATSim baru untuk "dimulai secara hangat" dari skenario yang sudah ada, sehingga mengurangi waktu komputasi MATSim secara signifikan.
Untuk petunjuk lebih detail, lihat dokumentasi kami.
Untuk menginstal PAM, kami sarankan menggunakan manajer paket 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 .
Menginstal langsung dengan pip sebagai pengguna ( pip install cml-pam
) atau sebagai pengembang ( pip install -e '.[dev]'
) juga dimungkinkan, tetapi Anda memerlukan pustaka non-python geospatial libgdal
& libspatialindex
yang sudah diinstal sebelumnya .
Untuk petunjuk lebih detail, lihat dokumentasi kami.
Ada banyak cara untuk memberikan kontribusi teknis dan non-teknis pada PAM. Sebelum memberikan kontribusi pada kode sumber PAM, lihat pedoman kontribusi kami dan ikuti petunjuk instalasi pengembangan.
Jika Anda menggunakan pip
untuk menginstal PAM dan bukan mamba
yang direkomendasikan, Anda dapat menginstal pustaka pengujian dan dokumentasi opsional menggunakan opsi dev
, yaitu pip install -e '.[dev]'
Jika Anda berencana membuat perubahan pada kode, harap gunakan alat berikut secara rutin untuk memverifikasi basis kode saat Anda bekerja:
pre-commit
: jalankan pre-commit install
di baris perintah Anda untuk memuat pemeriksaan bawaan yang akan dijalankan setiap kali Anda melakukan perubahan. Pemeriksaannya adalah: 1. periksa tidak ada file besar yang dipentaskan, 2. file lint python untuk kesalahan besar, 3. format file python agar sesuai dengan standar pep8. Anda juga dapat menjalankan pemeriksaan ini sendiri kapan saja untuk memastikan perubahan bertahap sudah bersih hanya dengan menelepon pre-commit
.pytest
- jalankan rangkaian pengujian unit, periksa cakupan pengujian, dan uji apakah contoh notebook berhasil dijalankan.pytest -p memray -m "high_mem" --no-cov
(tidak tersedia di Windows) - setelah menginstal memray ( mamba install memray pytest-memray
), uji apakah kinerja memori dan waktu tidak melebihi tolok ukur.Untuk informasi lebih lanjut, lihat dokumentasi kami.
Jika Anda tidak dapat mengakses dokumentasi online, Anda dapat membuat dokumentasi secara lokal. Pertama, instal lingkungan pengembangan PAM, lalu terapkan dokumentasinya menggunakan mike:
mike deploy 0.2
mike serve
Kemudian Anda dapat melihat dokumentasinya di browser di http://localhost:8000/.
Paket ini dibuat dengan Cookiecutter dan templat proyek arup-group/cookiecutter-pypackage.