PAM 是一個用於人口活動序列建模的 python 庫。範例用例:
PAM 支援常見的旅行和活動格式,包括 MATSim。
人口活動序列(有時稱為活動計劃)用於對人口的活動(人們在家、工作、教育等的地點和時間)以及相關旅行進行建模:
交通規劃者使用活動序列來模擬出行需求,但也可以用於其他領域,例如病毒傳播或能源使用建模。
PAM 最初建構和共享的目的是快速修改現有活動模型,以應對疫情封鎖場景。
此功能使用讀取-修改-寫入模式。透過應用策略進行修改。範例政策可能是 (a) 感染者在家隔離,(b) 只有關鍵工作人員前往上班,以及 (c) 每個人都在當地購物。
除了原始的讀取-修改-寫入模式和功能之外,PAM 還具有以下模組:
更一般地說,核心 PAM 資料結構和模組可以用作庫來支援您自己的用例,包括建立您自己的基於活動的模型。
PAM 完全支援 MATSim 總體/計劃格式。這包括車輛、未選擇的計劃、支線路線和支線屬性。 PAM 的核心用例是從 MATSim讀取-修改-寫入經驗豐富的計劃。這可以允許新的 MATSim 場景從現有場景「熱啟動」 ,從而顯著減少 MATSim 計算時間。
有關更詳細的說明,請參閱我們的文件。
要安裝 PAM,我們建議使用 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 .
也可以以使用者身分 ( pip install cml-pam
) 或開發人員 ( pip install -e '.[dev]'
) 直接使用 pip 安裝,但您需要預先安裝libgdal
和libspatialindex
地理空間非 python 函式庫。
有關更詳細的說明,請參閱我們的文件。
有很多方法可以為 PAM 做出技術和非技術貢獻。在對 PAM 原始程式碼做出貢獻之前,請參閱我們的貢獻指南並遵循開發安裝說明。
如果您使用pip
安裝 PAM 而不是建議的mamba
,則可以使用dev
選項安裝可選的測試和文件庫,即pip install -e '.[dev]'
如果您計劃更改程式碼,請在工作時定期使用以下工具來驗證程式碼庫:
pre-commit
:在命令列中執行pre-commit install
以載入每次提交變更時都會執行的內建檢查。檢查內容為:1. 檢查是否未暫存大型文件,2. lint python 檔案是否有重大錯誤,3. 格式化 python 檔案以符合 pep8 標準。您也可以隨時自行執行這些檢查,透過簡單的呼叫pre-commit
來確保分階段的變更是乾淨的。pytest
- 運行單元測試套件,檢查測試覆蓋率,並測試範例筆記本是否成功運行。pytest -p memray -m "high_mem" --no-cov
(在 Windows 上不可用) - 安裝 memray ( mamba install memray pytest-memray
) 後,測試記憶體和時間效能是否超過基準。有關更多信息,請參閱我們的文件。
如果您無法存取線上文檔,您可以在本機建立文檔。首先安裝PAM的開發環境,然後使用mike部署文件:
mike deploy 0.2
mike serve
然後您可以在瀏覽器中檢視文件:http://localhost:8000/。
該套件是使用 Cookiecutter 和 arup-group/cookiecutter-pypackage 專案範本建立的。