Revealing the similarity between urban transportation networks and optimal transport-based infrastructures
What is Opt-urban Nextrout about? - This project uses a method inspired by optimal transport theory to generate networks that show similarity with the structure of real public transportation networks. By taking in input a set of latitude-longitude coordinates, our algorithm outputs a network structure that represents the optimal topology connecting such points.
Our inputs correspond to real origin-destination station coordinates across multiple cities. We then measure similarities between the existing structures and the outputs of our algorithm by computing different metrics. More details can be found at:
- Revealing the similarity between urban transportation networks and optimal transport-based infrastructures (currently under review). If you use this software please cite this work.
We use the approach described in Nextrout, which requires the following dependencies:
* A Fortran compiler (any gfortran version>4 but version 5);
* Blas and Lapack libraries;
* Python 3;
* Meshpy;
* Click;
* Numpy v<1.19;
* f90wrap;
Linux/OSX
If all dependencies are installed, you just need to clone this repository:
git clone https://github.com/Danielaleite/opt-urban-nextrout
cd opt-urban-nextrout
python setup.py
This will download and install "Nextrout" and all required python dependencies. If you have any issues with the installation of Nextrout
, feel free to reach me out. =)
The execution of setup.py
takes a few minutes to complete (dont't panic if you notice it's taking a while). After that, you should find the following folders:
- code
- data
Inside code you will find the Nextrout folder, which contains:
- dmk_utilities
- nextrout_core
Inside dmk_utilities there are all the files related to the DMK solver. These are needed to execute NextRout. In nextrout_core, you will find the main python scripts and subfolders where the entire procedure takes place. In case of errors during installation, please visit DMK solver, section Troubleshooting.
You can simply check our Tutorial at https://github.com/Danielaleite/opt-urban-nextrout/blob/master/code/opt_urban_nextrout_tutorial.ipynb
We appreciate any help or suggestions for further improvement. Do not hesitate to contact us in case you want to contribute or have any questions.