Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get the total travel time for each link in the network #1162

Open
xuhan-incore opened this issue Sep 5, 2024 · 4 comments
Open

Get the total travel time for each link in the network #1162

xuhan-incore opened this issue Sep 5, 2024 · 4 comments

Comments

@xuhan-incore
Copy link

Hello,

Could anybody tell me after running the MATSIM, how to get the total travel time on each link in the network? Thank you.

@xuhan-incore
Copy link
Author

Hello,

Can anyone answer my questions? Is there a way to modify the config file so that the total travel time for each link can be shown in output files? Thank you.

Yours sincerely,
Xu Han

@tschlenther
Copy link
Contributor

Hi,

have a look into your iteration output directories for the ..linkstats.txt.gz. It contains travel time statistics for every hour (but not the sum of all travel times neither the volume, I think).
Writing this output file can be configured via the LinkStatsConfigGroup, e.g. like that:

<module name="linkStats" >
		<!-- Specifies over how many iterations the link volumes should be averaged that are used for the link statistics. Use 1 or 0 to only use the link volumes of a single iteration. This values cannot be larger than the value specified for writeLinkStatsInterval -->
		<param name="averageLinkStatsOverIterations" value="5" />
		<!-- Specifies how often the link stats should be calculated and written. Use 0 to disable the generation of link stats. -->
		<param name="writeLinkStatsInterval" value="50" />
	</module>

The easiest way to what you want might be running LinkStats class in matsim-libs as a postprocess. In case you have a scenario which is setup in the MATSim Application style (like matsim-berlin e.g.), you can also do that by starting your main run class but call link-stats instead of run on the command line.

Alternatively, you can program that yourself via an own implementation of LinkEnterEventHandler and LinkLeaveEventHandler. See the corresponding code-examples package, especially MyEventHandler1 for a kick-start.

Another way would be to load output events and network into Via and then make it compute average volumes and speeds (click on the network properties -> Link Attributes -> Add...) and then potentially export the network, if needed.

If you are rather interested in avrage speeds and volumes, you can also add the SimwrapperConfigGroup to your config and/or run script, and then enjoy interactive SimWrapper visualisations (especially the Overview and the Travel time dashboards).

@xuhan-incore
Copy link
Author

Hi tschlenther,

Thank you for your detailed response. I tried using the first approach (adding linkStats module in the config file). I was able to get the link statistics in the ITERS file. However, the results I obtained were a little bit weired. The hourly travel time (I think it is under the labels such as "TRAVELTIME0-1avg") seems to be constant, as follows
image
I know this isn't correct. As there are no cars passing in many time periods (such as 12am-8am), as can be seen from the data on hourly car volumes.
image
I cannot figure out why this happened. Could you help me figure it out? Thank you.

Xu Han

@xuhan-incore
Copy link
Author

Hello,

I can the columns like TRAVELTIME2-3avg indicates that the time for one vehicle to pass a link. So perhaps TRAVELTIME2-3avg times HRS2-3avg is the total time that all vehicles spent on each link during hours 2-3. However, it seems that the results for different iterations are different. I don't know the event output file is related to which iteration. Can anyone tell me? In addition, how to use LinkStats class in matsim-libs to do the postprocessing?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants