Commit Graph

137 Commits

Author SHA1 Message Date
Dustin Carlino
cda586dfc9 Cleanup by moving some methods to belong to MapName. #326 2020-11-05 14:18:13 -08:00
Dustin Carlino
4f2cda8d53 Reorganize data/system/ files by city! The only interesting change is
abstutil::path_all_maps becoming abstutil::list_all_maps. #326
2020-11-05 14:05:48 -08:00
Dustin Carlino
e17273dc31 Expose distance crossed per agent in the API. 2020-11-05 12:19:58 -08:00
Dustin Carlino
67530bec07 Future-proof file organization by changing map_name from a string to a
struct. Whatever choices we make next about naming cities hierarchially
or not can be managed in just one place. #326

This is a pretty huge change, but the compiler gives reasonable
confidence it's correct. More bugs are likely to crop up in the next
step, when filenames start being namespaced by the city too.
2020-11-04 17:26:32 -08:00
Dustin Carlino
1707b6fe37 Consolidate some PolyLine geometry code, and refactor some geom->geojson
mappings
2020-10-29 12:23:39 -07:00
Dustin Carlino
f187cf4bd8 Add an API call to export intersection geometry to geojson, for experimental streetmix3d integration.
To get an example:
> cargo run --bin headless -- --port=1234
> curl http://localhost:1234/map/get-intersection-geometry?id=291
2020-10-29 12:00:34 -07:00
Dustin Carlino
3ed7e73aa8 Use a u64 RNG seed, not a u8 2020-10-29 09:25:07 -07:00
Dustin Carlino
a579cb4f74 Add a sanity check to catch live map edit bugs faster. Deleted turns
aren't getting cleaned up properly.

Also fix broken headless build, woops.
2020-10-21 10:23:56 -07:00
Dustin Carlino
c435d3fce2 Consolidate two scenario modifiers, allowing all walking trips to be cancelled, for #368 2020-10-19 18:03:17 -05:00
Dustin Carlino
422882c03b Ditch cpuprofiler in favor of cargo flamegraph. Add a tool that just
runs a scenario headlessly, since that's easier than sending a few curl
commands to the API. #368
2020-10-15 17:12:38 -05:00
Dustin Carlino
b3525f95a2 Enable profiling in the headless server. #368
(Although actually, I'm liking cargo flamegraph better than cpuprofiler.
Might rip out the support for cpuprofiler.)
2020-10-15 16:21:57 -05:00
Dustin Carlino
ab270ce9f5 Some versions of python apparently need to explicitly be told utf8
encoding to read a .json
2020-10-14 11:28:02 -05:00
Dustin Carlino
cd1d790659 And fix the headless example scripts to not pass an argument to headless, woops 2020-10-14 10:49:24 -05:00
Dustin Carlino
eb7ee6d57d Fix a few build warnings and breaks, and document the headless server a
bit more
2020-10-14 10:46:18 -05:00
Dustin Carlino
2c3fd09378 Add an example Python tool that works with the JSON map export. Support
specifying trip endpoints by building or intersection when importing
traffic demand data.
2020-10-07 15:37:59 -07:00
Dustin Carlino
d844646cb9 Implement per-road caps for #325, necessitating a tiny map edits version
bump.
2020-10-06 14:17:55 -07:00
Dustin Carlino
6fd8422cf5 Woops, fix headless build break 2020-10-06 13:05:23 -07:00
Dustin Carlino
f258c50595 Organize import blocks using https://github.com/dabreegster/organize_rust_imports 2020-10-05 20:29:22 -07:00
Dustin Carlino
9ccbf40dba Merge the concept of cancelled and aborted trips, in preparation for storing the reason for cancellation, for #312 2020-10-03 10:41:53 -07:00
Dustin Carlino
cfa203a4d3 Add an API call to dump all traffic signals' current state 2020-10-02 21:03:29 -07:00
Dustin Carlino
f951b296f7 Cap all roads in the Python experiment. Right now, this'll unintentionally merge adjacent zones with the same cap into zones. 2020-10-01 15:13:18 -07:00
Dustin Carlino
4e4e11b404 A few documentation adjustments after
5de05a6fe3
2020-09-29 09:21:36 -07:00
Dustin Carlino
2c0f3a13f7 Distinguish capped/uncapped trips in experiment results. #325 2020-09-24 18:08:05 -07:00
Dustin Carlino
0d8ab143f9 Slightly better error handling in the API 2020-09-24 17:26:46 -07:00
Dustin Carlino
e1b079900a Don't touch SimFlags in headless at all 2020-09-24 17:10:07 -07:00
Dustin Carlino
da1921ae74 Do a few rounds of capping in the experiment. #325 2020-09-24 13:24:31 -07:00
Dustin Carlino
c9fbf67989 Rearrange headless API to explicitly apply edits at the same time as
specifying the scenario to run. #325
2020-09-24 13:14:49 -07:00
Dustin Carlino
07a8a21fec Cap the busiest road. Not actually working yet, because all the commands
to manage edits are stomping on each other. #325
2020-09-24 12:08:46 -07:00
Dustin Carlino
47061fcb6c Expose road throughput through the API. Start a second Python
experiment, refactor a bit. #325
2020-09-24 11:23:19 -07:00
Dustin Carlino
597ef473f2 Upgrade most dependencies 2020-09-24 09:36:26 -07:00
Dustin Carlino
566f6a9e13 Port the Go experiment to Python 2020-09-23 15:00:38 -07:00
Dustin Carlino
fb377d3326 Fix headless --edits; was forgetting to fully apply the edits 2020-09-23 08:46:32 -07:00
Dustin Carlino
e1de43b75c Add a /map/set-edits API call 2020-09-21 10:18:02 -07:00
Dustin Carlino
5dd761ceb9 Add an --edits flag to headless 2020-09-18 10:43:58 -07:00
Dustin Carlino
9e38eedaaf Plumb sim flags through headless properly. Make the Go experiment print
comparison results ASAP.
2020-09-15 13:47:04 -07:00
Dustin Carlino
82ea851a4e Make the Go API example track the same people through different cancellation runs, evaluating how much time the 'survivors' are gaining or losing 2020-09-14 18:56:52 -07:00
Dustin Carlino
79d3db83ce Measure runtime and detect gridlock in go example.
Findings: 12 hours of south seattle works fine with 60% trips cancelled,
but melts down at 50%
2020-09-14 14:46:56 -07:00
Dustin Carlino
122bc82867 Add flags to Go example, use it to figure out if downtown can run with lots of people cancelled 2020-09-14 12:37:21 -07:00
Dustin Carlino
2d24bb4a36 Add an API example in Go to measure trip times with different
percentages of people cancelled.
2020-09-10 11:44:11 -07:00
Dustin Carlino
8cc61aafc8 Add a method to the API to modify a scenario. No callers/tests yet. 2020-09-09 19:52:15 -07:00
Dustin Carlino
5be4c2ca84 Add an API to add a new trip in the middle of the simulation. Fixes #313
[rebuild]
2020-09-06 13:53:31 -07:00
Dustin Carlino
74aca40c0c
Mechanicallyish rename TurnGroup -> Movement for #197, as decided in (#306)
https://github.com/dabreegster/abstreet/pull/302#discussion_r479571931
2020-08-29 15:18:54 -07:00
Dustin Carlino
a36ef99c06
Rename Phase -> Stage, to be more in line with standard traffic signal (#302)
controller terminology. Part of #197.

Holding off on touching PhaseType and all of the serialized
seattle_traffic_signals format, since this will all change in Kyle's PR
anyway.
2020-08-28 17:19:23 -07:00
Dustin Carlino
0eb1309ace Add an API to get back all of the map edits so far 2020-08-28 14:09:44 -07:00
Dustin Carlino
83a5df7886 Add an API for the Xi'an group to get agent positions 2020-08-26 09:22:33 -07:00
Dustin Carlino
11832aa606 Record throughput through a traffic signal by direction, expose through
the API (#245), and beef up the Python example.

Impact to prebaked file size is tiny -- for lakeslice, the original
intersection_thruput is 2MB and the new traffic_signal_thruput is 435KB.

[rebuild]
2020-08-22 09:13:16 -07:00
Dustin Carlino
2783c3e180 Expose the granular delays through an API for reinforcement learning (#245). 2020-08-20 16:21:52 -07:00
Dustin Carlino
02569b1642 Get an end-to-end sample experiment working through the API and Python client 2020-08-18 12:52:38 -07:00
Dustin Carlino
5c337e2e8e Add some methods to the headless API for manipulating traffic signals, and start a Python client example. Everything still WIP. 2020-08-18 11:31:20 -07:00
Dustin Carlino
8ce2568280
turn the headless runner into a demo of a JSON API, for #245 (#268)
turn the headless runner into a demo of a JSON API, for #245
2020-08-11 16:44:19 -07:00