Commit Graph

160 Commits

Author SHA1 Message Date
Dustin Carlino
e99def9124 Switch all error handling to anyhow. Nothing consumes our code as a
library yet, so this is a step forward from string errors. Manually
tested how errors show up (including the nice with_context bit).
2021-01-05 11:35:03 -08:00
Dustin Carlino
bc3c3dfd6c Rename phase -> stage in the JSON traffic signal format. Meant to do this a long time ago. #295
Make this schema change backwards compatible for player edits.
2021-01-04 11:18:17 -08:00
Dustin Carlino
d529ae2e5c Upgrade usvg and rand 2021-01-04 09:19:54 -08:00
Dustin Carlino
965d999199 Upgrade misc other dependencies 2021-01-03 20:01:27 -08:00
Dustin Carlino
2945913fb3 Upgrade rand 2021-01-03 19:48:03 -08:00
Dustin Carlino
5c04923dff Split abstio crate out from abstutil. #253
widgetry, geom, and abstutil may wind up on crates.io in some form to
let other projects use widgetry. abstio has A/B Street-specific tricks
for reading data on native/web. Note widgetry still depends on abstio,
will figure out how to clean that up next.
2021-01-02 10:28:00 -08:00
Dustin Carlino
50ec6830c0 Batch API for all trip time lower bounds. #392 2020-12-28 13:40:44 -08:00
Dustin Carlino
42d833ec3f Return an error when a GET param in an API call is missing, instead of crashing 2020-12-17 10:33:49 -08:00
Dustin Carlino
d4fa67ac87 Make the one-mode path guesses more precise in their start/end locations. Noticeable effect is in the freeform agent spawner, the paths actually go between buildings now, instead of lane starts. 2020-12-16 15:49:03 -08:00
Dustin Carlino
7c973ecacf Expose continuous distance crossed for vehicles. #392 2020-12-16 15:29:55 -08:00
Dustin Carlino
b39aa2a45f Expose continuous distance crossed for pedestrians. #392 2020-12-16 15:09:06 -08:00
Dustin Carlino
6e275a0a60 Track Path's total_length and crossed_so_far a bit more precisely at the beginning/end of the path, towards #392 2020-12-16 14:45:20 -08:00
Dustin Carlino
a0555d1df5 Add an API call to estimate the best-case duration of a trip. #392 2020-12-16 09:42:50 -08:00
Michael Kirk
8b9b3ce2b1
census areas import (#425)
#424
2020-12-14 17:48:47 -08:00
Dustin Carlino
b5ea263fc1 Expose the blocked-by graph through the API, and add root-cause analysis
to the UI debugger. #392
2020-11-30 17:01:15 -08:00
Dustin Carlino
3eda17627b Handle binary or JSON scenarios 2020-11-30 14:00:19 -08:00
Dustin Carlino
47d09d61f0 Plumb the intended TripMode for cancelled trips; instead make the trip duration optional. Breaking change for anyone using the API. Makes way more sense. [rebuild] [release] 2020-11-22 11:21:44 -08:00
Dustin Carlino
3905131fe4 Track and expose total trip distance in the API. #392 2020-11-19 10:40:00 -08:00
Dustin Carlino
915e12ff7e Remove PersonID from Scenario; the simulation will assign IDs sequentially. They're redundant. #258
Slightly reduces scenario file size, and simpler code to construct
scenarios.
2020-11-18 14:13:25 -08:00
Dustin Carlino
b9bf23e420 Downgrade tokio. aa966d7533 broke headless and updater. Blocked on https://github.com/seanmonstar/reqwest/issues/1060 2020-11-12 10:31:52 -08:00
Dustin Carlino
7854823c28 Change the to/from permanent map edits APIs to be a little more ergonomic 2020-11-12 10:13:32 -08:00
Dustin Carlino
aa966d7533 Upgrade a bunch of dependencies 2020-11-11 12:02:53 -08:00
Dustin Carlino
f30e1e2fff Dump the entire map to geojson 2020-11-10 13:02:00 -08:00
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