Skip to content



Repository files navigation


Build Status Coverage Status

PopulationSim is an open platform for population synthesis. It emerged from Oregon DOT's desire to build a shared, open, platform that could be easily adapted for statewide, regional, and urban transportation planning needs. PopulationSim is implemented in the ActivitySim framework.


Installing from this repository

The official PopulationSim releases have fallen behind ActvitySim, which is the primary dependency. As a result it has caused some incompatibilities unless package versions are locked. To avoid this, I have created this fork of PopulationSim that is compatible with the an older version of ActivitySim. In addition, I have included several bug fixes and enhancements that have not been merged into the official PopulationSim repository.

Some changes in this fork:

  • Lock ActivitySim version to 1.1.3
  • Added "hard_constraints" option to expansion factors forcing the max/min values to be respected. Official PopulationSim allows these limits to be exceeded slightly.
  • Added various assertations throughout the code to catch errors earlier.
  • Added "tqdm" progress bars to some processes.
  • Converted some slow loops and pandas.apply() calls to vectorized pandas operations or slightly faster list comprehensions.

I have provided several different dependency management files to make it easier to install this fork using Conda/Mamba, pip, or Poetry.

Python Environment Update!

In an effort to enhance stability I have used Poetry to manage the dependencies for this fork. I have migrated away from the older, setup.cfg, and requirements.txt files in lieu of the more modern and simpler pyproject.toml file. I also provided an environment.yml for Conda if that is preferred.

Installing from GitHub

You can install this fork directly from GitHub using pip. This will install all dependencies and the forked version of PopulationSim to your current Python environment.

pip install git+

This will install the forked version of PopulationSim from this repository and all dependencies.

Development install with pip

It is sometimes useful to install in an editable development mode. You may clone the repository and install with pip using the editable flag -e. This will install an editable version of PopulationSim from your local repository. This is useful if you want to make changes to the code and test them without having to reinstall the package.

# Create a new conda environment (or whatever environment manager you prefer)
conda create -n populationsim python=3.9

# Clone the repository
git clone -b v0.6.1
cd populationsim
pip install -e .