PAM — это библиотека Python для моделирования последовательности активности населения. Примеры использования:
PAM поддерживает распространенные форматы путешествий и мероприятий, включая MATSim.
Последовательность действий населения (иногда называемая планами деятельности ) используется для моделирования деятельности (где и когда люди находятся дома, на работе, учебе и т. д.) и связанных с ней поездок населения:
Последовательности действий используются планировщиками транспорта для моделирования спроса на поездки, но также могут использоваться и в других областях, например, для моделирования передачи вируса или энергопотребления.
PAM изначально был создан и распространен для быстрой модификации существующих моделей деятельности для реагирования на сценарии пандемической блокировки.
Эта функциональность использовала шаблон чтения-изменения-записи . Если изменения вносятся путем применения политик . Примером политики может быть (а) инфицированных людей помещают на домашний карантин, (б) на работу ездят только критически важные работники и (в) все делают покупки на месте.
В дополнение к исходному шаблону и функциональности чтения-изменения-записи 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 в качестве пользователя ( pip install cml-pam
) или разработчика ( pip install -e '.[dev]'
) также возможна, но вам потребуются предварительно установленные геопространственные библиотеки libgdal
и libspatialindex
не относящиеся к Python. .
Более подробные инструкции можно найти в нашей документации.
Есть много способов внести как технический, так и нетехнический вклад в PAM. Прежде чем вносить вклад в исходный код PAM, ознакомьтесь с нашими рекомендациями по участию и следуйте инструкциям по установке для разработки.
Если вы используете pip
для установки PAM вместо рекомендуемой mamba
, вы можете установить дополнительные библиотеки тестирования и документации, используя опцию dev
, т. е. pip install -e '.[dev]'
Если вы планируете вносить изменения в код, регулярно используйте следующие инструменты для проверки кодовой базы во время работы:
pre-commit
: запустите pre-commit install
в командной строке, чтобы загрузить встроенные проверки, которые будут выполняться каждый раз, когда вы фиксируете свои изменения. Проверки следующие: 1. проверка отсутствия больших файлов, 2. проверка файлов Python на наличие серьезных ошибок, 3. форматирование файлов Python в соответствии со стандартом pep8. Вы также можете запустить эти проверки самостоятельно в любое время, чтобы убедиться в чистоте поэтапных изменений, просто вызвав pre-commit
.pytest
— запустите набор модульных тестов, проверьте тестовое покрытие и убедитесь, что примеры блокнотов успешно работают.pytest -p memray -m "high_mem" --no-cov
(недоступно в Windows) — после установки memray ( mamba install memray pytest-memray
) проверьте, что производительность памяти и времени не превышает контрольные показатели.Для получения дополнительной информации см. нашу документацию.
Если у вас нет доступа к онлайн-документации, вы можете создать документацию локально. Сначала установите среду разработки PAM, затем разверните документацию с помощью Майка:
mike deploy 0.2
mike serve
Затем вы можете просмотреть документацию в браузере по адресу http://localhost:8000/.
Этот пакет был создан с помощью Cookiecutter и шаблона проекта arup-group/cookiecutter-pypackage.