PAM é uma biblioteca python para modelagem de sequência de atividades populacionais. Exemplos de casos de uso:
O PAM oferece suporte a formatos comuns de viagens e atividades, incluindo MATSim.
As sequências de atividades populacionais (às vezes chamadas de planos de atividades ) são usadas para modelar as atividades (onde e quando as pessoas estão em casa, no trabalho, na educação e assim por diante) e viagens associadas de uma população:
As sequências de atividades são utilizadas pelos planeadores de transportes para modelar a procura de viagens, mas também podem ser utilizadas noutros domínios, como para a transmissão de vírus ou para a modelação da utilização de energia.
O PAM foi originalmente construído e partilhado para modificar rapidamente os modelos de atividades existentes para responder a cenários de bloqueio pandémico.
Esta funcionalidade usava um padrão de leitura-modificação-gravação . Onde as modificações são feitas através da aplicação de políticas . Exemplos de políticas podem ser (a) quarentena de pessoas infectadas em casa, (b) apenas trabalhadores críticos viajam para trabalhar e (c) todos fazem compras localmente.
Além do padrão e funcionalidade original de leitura-modificação-gravação , o PAM possui módulos para:
De forma mais geral, a estrutura de dados e os módulos principais do PAM podem ser usados como uma biblioteca para dar suporte aos seus próprios casos de uso, incluindo a construção de seu próprio modelo baseado em atividades.
O PAM suporta totalmente o formato de população/planos MATSim. Isso inclui veículos, planos não selecionados, rotas de trecho e atributos de trecho. Um caso de uso principal do PAM é ler, modificar e gravar planos experientes do MATSim. Isso pode permitir que novos cenários MATSim sejam "iniciados a quente" a partir de cenários existentes, reduzindo significativamente o tempo de computação do MATSim.
Para obter instruções mais detalhadas, consulte nossa documentação.
Para instalar o PAM, recomendamos usar o gerenciador de pacotes 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 .
Instalar diretamente com pip como usuário ( pip install cml-pam
) ou como desenvolvedor ( pip install -e '.[dev]'
) também é possível, mas você precisará das bibliotecas geoespaciais não-python libgdal
e libspatialindex
pré-instaladas .
Para obter instruções mais detalhadas, consulte nossa documentação.
Há muitas maneiras de fazer contribuições técnicas e não técnicas ao PAM. Antes de fazer contribuições ao código-fonte do PAM, consulte nossas diretrizes de contribuição e siga as instruções de instalação do desenvolvimento.
Se você estiver usando pip
para instalar o PAM em vez do mamba
recomendado, você pode instalar as bibliotecas opcionais de teste e documentação usando a opção dev
, ou seja, pip install -e '.[dev]'
Se você planeja fazer alterações no código, faça uso regular das seguintes ferramentas para verificar a base de código enquanto trabalha:
pre-commit
: execute pre-commit install
em sua linha de comando para carregar verificações integradas que serão executadas sempre que você confirmar suas alterações. As verificações são: 1. verificar se nenhum arquivo grande foi testado, 2. lint arquivos python para erros graves, 3. formatar arquivos python para estar em conformidade com o padrão pep8. Você também pode executar essas verificações a qualquer momento para garantir que as alterações preparadas sejam limpas, bastando chamar pre-commit
.pytest
- execute o conjunto de testes de unidade, verifique a cobertura do teste e teste se os notebooks de exemplo foram executados com êxito.pytest -p memray -m "high_mem" --no-cov
(não disponível no Windows) - após instalar o memray ( mamba install memray pytest-memray
), teste se o desempenho da memória e do tempo não excede os benchmarks.Para obter mais informações, consulte nossa documentação.
Se não conseguir acessar a documentação on-line, você poderá compilar a documentação localmente. Primeiro, instale um ambiente de desenvolvimento do PAM e depois implante a documentação usando mike:
mike deploy 0.2
mike serve
Então você pode visualizar a documentação em um navegador em http://localhost:8000/.
Este pacote foi criado com Cookiecutter e o modelo de projeto arup-group/cookiecutter-pypackage.