matsim-org / matsim-code-examples

A repository containing code examples around MATSim
GNU General Public License v3.0
83 stars 179 forks source link

Guidance for a beginner #120

Closed vasilis-mourtakos closed 5 years ago

vasilis-mourtakos commented 5 years ago

Hello dear MATSim community,

Project/Plan: I'm relatively new to MATSim and working on my thesis(civil engineering-transportation planning and engineering). I'm using The MATSim Open Berlin Scenario (1%) for my project. My project/plan is to build scenarios of mixed traffic with all the available traffic modes/vehicles (cars, taxis, bikes, pt) and also with autonomous vehicles(of various automation levels), robotaxis (autonomous taxi services), privately owned shared autonomous vehicles(with different passenger capacities, availability and pricing than robotaxis (DRT?) ). The objective is to gather the output data, analyze it (visualize) and extract conclusions(such as possible policies for future traffic management)

Time frame and problem: I have about three months to complete my thesis. Following the advice of Mr. Maciejewski, I run The Open Berlin Scenario (which I intend to use as a baseline for the project) and now I'm trying to adapt the scenario to include what was mentioned above. The problem that I'm facing is that no one in my University knows how to use MATSim. So I'm trying to figure everything out online. But there is an abundance of information and I'm really getting lost.

My Questions: I'm willing to study and work on this in great lengths, it is a really interesting subject for me. But since time is of great essence I really need some experienced people to guide me and stop me from wandering indefinitely online searching for information and answers. I have some specific questions but EVERY piece of advice would be highly valuable. 1)My info sources are primarily the MATSim book and secondarily the public Berlin course and user issues/questions on GitHub. Should I consider some other sources or are these sufficient?

2)The resources I think to be required for my project are: https://github.com/matsim-vsp/matsim-berlin https://github.com/matsim-org/matsim-maas I'm not really sure about:
( https://github.com/matsim-eth/av https://github.com/idsc-frazzoli/amodeus ) Are there any other resources that I might need to look into?

3)I understand that I need to comprehend how the program(or at least parts of it) work to be able to adapt the scenario to my project's goals. Since I don't think it's feasible to do that for the entirety of the MATSim code, on which parts/files of the code you think I should focus on and understand how they work?

4)Following the previous question, how this procedure would look like? I, for example, change some parameters on code regarding vehicles (e.g. https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/berlin/berlin-v5.3-10pct/input/berlin-v5-mode-vehicle-types.xml) and re-run MATSim through the given jar file? (given that I have download the file that I changed and pointed the new location on the config file). Any further guidance on this topic would be highly appreciated!

5)What is going to be the most challenging/time-consuming process? So that I can manage/plan my time.

6)Apart from the outputs/analysis that MATSim is producing (modestats, scorestats, etc.) is there a way to extract data so as to draw conclusions about road safety, traffic congestion, speeds, etc. and environmental parameters?

Skills and progress: Decent coding in python and R. Recently started learning the basics of Java. Can work with git, Eclipse(basic), Via, QGIS, OSM, JOSM, Sublime+cmd for java code and can learn anything else needed. Can understand probably everything regarding transportation, traffic. Studied a good part of the MATSim book and still studying (mostly Part II and III). Studied as many relative studies on this subject as I could find. Tried to read the MATSim code to understand how the program works but got overwhelmed pretty quickly. Have browsed/read most of the posted issues on GitHub for possible problems/answers.

I sincerely thank everyone who might take some time to read all this and respond, Vasilis Mourtakos

mrieser commented 5 years ago

Hi, a long list of questions and information you provide and ask. I can only provide answers to some.

First, combining all these different modes is very ambitious.

Second, combining all these different modes requires some coding capabilities in Java. Many of the additional modes come from extensions (e.g. the aforementioned matsim-maas). While most extensions come with a simple "RunXyzExtension" class that provides the code-modifications to run them, using multiple such extensions requires combining the code-modifications of each extension into a new main class.

If you really want to go along this route, this is what I would suggest to do:

Thus, as additional resources: Have a look at the Run*-classes of each extension you plan to use. Try to understand how this extension is enabled, try to run it on your own, and only then start combining it.

I highly recommend starting with the matsim-example-project, and trying to run and integrate the extensions based on this structure. The provided jar-files with the berlin-scenario is good for re-running the exactly same scenario, but not for extending it with additional requirements.

tduberne commented 5 years ago

To complement what Marcel said: three months is indeed a short time for such an ambitious project. Two pieces of advice given your goal:

And then advice I usually give to newcomers:

Good luck, and do not hesitate to come back with more precise questions if you get stuck.

vasilis-mourtakos commented 5 years ago

Thanks a lot for your answers, they gave me a much better perspective on my project. I will meet with my professor to calibrate my expectations and project goals. Thanks again for your time!