-
Notifications
You must be signed in to change notification settings - Fork 0
License
jcabannes/Projet_tut
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Mumoro: MUltiModal MUltiObjective ROuting == Requirements == On ubuntu or debian, please install the developpment versions * GCC: C++ compiler (others aren't tested) * Boost: used for the graph structures, serialization and heaps * Python2 (no support for python3 is provided) * Swig: for interfacing python with C++ === Installing Python Dependencies === Python dependencies can be install by running: `sudo easy_install sqlalchemy cherrypy genshi transitfeed` Make sure the packages were installed for python2 (you might need to use `easy_install-2.7` instead). Note for Mac OSX users: the gnuport python2-7 is fine if you use easy_install-2.7 === osm4routing === For importing data from OSM files, this project uses osm4routing. Some modifications were brought to osm4routing to support: * Importing data from multiple OSM files * Use of the `maxspeed` key when defining the maximum speed on a road segment Make sure you have an osm4routing coming from our repository ( https://github.com/athy/osm4routing ) installed. You can fetch it with git, explanations on how to install it are provided in the README. ``` git clone https://github.com/athy/osm4routing.git ``` Installation is basically: `sudo python2 setup.py install` == Project layout == MuMoRo is composed of three parts - Core : A C++ core that contains mainly the graph structure. This part is in lib/core - Algorithms : C++ implementation of various routing algorithms - Frontend : A python part that is mainly used to import data and run a web service to have a basic UI. It uses SWIG to interface with the C++ code == Building with CMake == The C++ code can be built with a standard CMake build : ``` mkdir build cd build/ cmake -DCMAKE_BUILD_TYPE=Release .. make ``` The default target is an executable based on algorithms/main.cpp. To build the swig interface, run `make swig`. This will generate a shared library (_mumoro.so) and a python interface (mumoro.py) that will be automatically copied in lib/core/ == Running == Running MuMoro requires a configuration (aka scenario). Some example are present in the `scenarios/` folder. Those allow to define which data (OSM or GTFS) will be used for building the multi-modal graph. A scenario folder whould contain a `conf.py` file that contains the configuration. Look at the toulouse folder in scenarios/ for an example. For the rest of this README, we will stick to the toulouse example that is provided === Importing data === First step is to load data into your database. This is done by running: `python2 data_import.py scenarios/toulouse/` NOTE : the `/` at the end of the path _is_ compulsory. After this step, a database was created and populated with nodes and edges extracted from the OSM and GTFS instances. This is typically (although it can be changed in the configuration) a `sqlite.db` file sitting in the configuration directory. === Building the graph === In this step a multi-modal graph is constructed from the database. It is saved to an archive (either portable text or machine-specific binary). `python2 build_graph.py scenarios/toulouse/` At the end of this step, you should have to archives sitting in your configuration directory: - graph.bin-dump (binary archive) - graph.txt-dump (text artchive) Those contain the whole graph and can be used to load it quickly into memory. === Running the server === Once the graph is built, next step is to run the server. If ran for the first time the graph will be generated from database and serilalized in a .dump file. This file will be used for subsequent loading as long as the scenario is not changed. `python2 server.py scenarios/toulouse/` Interface is then accessible on http://localhost:3001/ (or whatever url defined in the configuration).
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published