Home

Awesome

quetzal

What is it?

quetzal is a Python package providing flexible models for transport planning and traffic forecasting.

Copyright

(c) SYSTRA

License

CeCILL-B

Documentation

The official documentation is hosted on https://systragroup.github.io/quetzal

Backward compatibility

In order to improve the ergonomics, the code may be re-factored and a few method calls may be re-designed. As a consequence, the backward compatibility of the library is not guaranteed. Therefore, the version of quetzal used for a project should be specified in its requirements.

Installation from sources

For Linux

One should choose between

poetry

  1. May need to set the default (or local) python version in the project
pyenv local 3.12
  1. install dependancies (this will create a new virtualenv)
poetry install
  1. activate the env
poetry shell
  1. add the env to ipykernel (to use in jupyter)
python -m ipykernel install --user --name=quetzal_env

Virtualenv

Virtual environment: virtualenv .venv -p python3.12; source .venv/bin/activate or any equivalent command.

pip install -e .

Anaconda

In order to use python notebook, Anaconda 3 + Python 3.12 must be installed. Then create + activate quetzal environment:

conda init
conda create -n quetzal_env -y python=3.12
conda activate quetzal_env
pip install -e . -r requirements_win.txt
python -m ipykernel install --user --name=quetzal_env

For Windows

Anaconda 3 + Python 3.12 is supposed to be installed. You must edit the Pathuser environment variable, adding several folders where Anaconda is installed:

PIP and Anaconda (recommended)

To create quetzal_env automatically and install quetzal

(base) C:users\you\path\to\quetzal> windows-install.bat

press enter to accept default environment name

If you are facing SSL issues

(base) pip config set global.trusted-host "pypi.org files.pythonhosted.org"
(base) C:users\you\path\to\quetzal> windows-install.bat

security warning: the host is added to pip.ini

If you are facing DLL or dependencies issues

Anaconda and Pip do not get along well, your Anaconda install may have been corrupted at some point.

migration to 3.12

# before
sm.volumes = sm.volumes.append(vol)
#now
sm.volumes = pd.concat([sm.volumes, vol])
#or
sm.volumes = pd.concat([sm.volumes, pd.DataFrame(vol)])

filtering index with set was remove:

# before
sm.volumes = sm.volumes.loc[od_set]
#now
sm.volumes = sm.volumes.loc[list(od_set)]
# before
hull = zones.unary_union.convex_hull
# now
hull = zones.union_all().convex_hull
# add n_init='auto'
KMeans(n_clusters=num_zones,random_state=0,n_init='auto')