Dustin Carlino
02420f920e
When calculating LTN cells, don't cross bike-only roads.
2021-12-16 14:02:21 +00:00
Dustin Carlino
e77ce12537
Draw custom LTN boundaries, by painting blocks. #794
...
Still need to think through the UX of how to manage custom boundaries
and incorporate them in the "browse neighborhoods" screen.
2021-12-14 10:33:42 -08:00
Dustin Carlino
3d4900f984
Seemingly fix all "bowtie" intersections, where the polygon looped back
...
on itself impossibly. Achieve this by sorting polylines around a center
more carefully.
Regenerating all maps...
2021-12-11 07:58:49 -08:00
Dustin Carlino
b45bf869b7
Populating the map_model transit representation from the raw GTFS data. #372
2021-12-07 03:10:38 -08:00
Dustin Carlino
fc674df9ac
Cleaning up the map_model transit representation a bit. #372
2021-12-07 03:10:38 -08:00
Dustin Carlino
6e11c386ac
Mechanical refactor: bus {stop, route} -> transit. #372
...
(Mostly renaming map_model code everywhere, not yet sim layer and above)
2021-12-07 03:10:38 -08:00
Dustin Carlino
98e0a56120
Extract some GTFS data and put it in RawMap. #372
2021-12-07 03:10:38 -08:00
Dustin Carlino
815ae47e02
Model diagonal LTN filters. #794 [rebuild] [release]
...
Only supported at 4-way intersections currently.
2021-11-21 12:55:50 -08:00
Dustin Carlino
8e7d54f135
Add some explanation to the LTN route tool
2021-11-21 11:54:29 -08:00
Andrew Wei
65f187f250
Adding main road penalty to ltn ( #810 )
2021-11-20 15:28:59 -08:00
Dustin Carlino
244e965427
When we can't detect which roads a crosswalk covers, assume there's no
...
marked crossing most of the time. #795
2021-11-18 13:31:30 -08:00
Dustin Carlino
c13ca2d20b
Rip out all old broken code for importing OSM bus stops and routes. #372 ( #808 )
...
This code stopped working around July 2020 when I attempted to tackle #190 . It's sat dormant since then, with most bus and light rail routes not imported correctly at all. I'm going to (eventually) start another attempt at public transit in A/B Street by treating GTFS as the main source of truth, not trying to understand route relations mapped in OSM. It's simplest to just rip out all this old code first. Some of it may be useful later, but version control preserves it.
Regenerating everything; this is a binary format change.
2021-11-17 18:51:59 -08:00
Dustin Carlino
68d9616875
Use simple Rust code to specify map importing config, instead of conf… ( #807 )
2021-11-17 15:52:09 -08:00
Marcel Dejean
641c908051
No right on red ( #806 )
...
* add turn_on_red config option which is false for nyc
* when making stages, don't add movements that don't share a stage with a protected movement
* Fix a renamed DirectedRoadID field from
cb3693bd7a
and the new turn_on_red field
in the test crate
* Update all map config files with the new option
for x in importer/config/*/*/cfg.json; do
cat $x | jq '.map_config += {turn_on_red: true}' > tmp
mv -f tmp $x
done
(And then undoing NYC)
* turn on red banned on all non-us maps
* regenerate all maps
Co-authored-by: Marcel Dejean <marcel@dejean.nyc>
Co-authored-by: Dustin Carlino <dabreegster@gmail.com>
2021-11-16 23:06:11 -08:00
Dustin Carlino
3a1e5a66cb
Start modeling unmarked pedestrian crossings. #795
...
- Use the new filter_crosswalks option to downgrade zebra crossings into
unmarked
- Add a routing penalty
- Render differently than zebras
- They otherwise act the same as marked crosswalks
Simulation behavior (like pedestrians not having priority over vehicles)
not yet implemented. No change to any existing maps, since
filter_crosswalks isn't enabled anywhere.
2021-11-12 13:38:33 -08:00
Dustin Carlino
4b17e4a676
Refactor some code in the lagging green traffic signal module
2021-11-12 11:46:01 -08:00
Dustin Carlino
08223efed5
Whoops, forgot to not leak all the RAMs
2021-11-11 14:10:42 -08:00
Dustin Carlino
006839aec2
Make the LTN router actually avoid modal filters.
...
Accomplishing this through RoutingParams, rather than actually editing
the map. I don't want to commit to a map model representation of modal
filters and actually edit the map until we think through diagonal
filters. This effectively revives pathfind_avoiding_roads from the old
congestion capping experiment, but organized better.
2021-11-11 14:03:11 -08:00
Dustin Carlino
cb3693bd7a
Refactor: DirectedRoadID.road, not .id
2021-11-09 10:48:39 -08:00
Dustin Carlino
3903f3b564
Refactor vehicle_cost to include zone_cost, like the docs say it does
2021-11-09 10:34:50 -08:00
Dustin Carlino
fd10ea74dc
Add configuration to filter the auto-generaed crosswalks to only exist
...
near OSM highway=crossing nodes. #795
Not enabled anywhere, because it doesn't seem to produce good results.
Possibly footway=crossing ways need to be used for this as well.
Had to regenerate all maps, since the binary format changes.
2021-11-08 20:08:49 -08:00
Dustin Carlino
98d1f2cd9f
Prototype rat-run detection again. Not working yet, so leaving disabled. #794
2021-11-07 12:02:16 -08:00
Dustin Carlino
2c08d62318
Track interior roads as we merge perimeters. It's much easier to retain this as we build it up, instead of later figuring out which side of a perimeter is the inside or outside.
2021-11-03 13:38:38 -07:00
Dustin Carlino
eeedf098d3
Handle the case of block merging when the entirety of one block overlaps
...
with the other
2021-11-02 16:54:46 -07:00
Dustin Carlino
f4e0b4b1e3
Log warnings to explain why merging blocks fails
2021-11-02 13:42:25 -07:00
Dustin Carlino
2917361417
More aggressive block merging
2021-11-01 17:09:50 -07:00
Dustin Carlino
cfec9a2049
Avoid block merge crashes! But some neighborhoods don't get fully
...
merged.
Also make all the blockfinding algorithms deterministic, for easier
debugging.
2021-11-01 16:56:42 -07:00
Dustin Carlino
108f6a6fc2
Refactor blockfinding APIs to prep for actually merging everything in a
...
single neighborhood.
2021-11-01 15:49:56 -07:00
Dustin Carlino
a996b891ab
Improve the algorithm for merging adjacent blocks. It now handles
...
internal dead-ends and blocks that share a sequence of common roads.
Still not robust enough, but huge step forwards.
2021-11-01 14:37:49 -07:00
Dustin Carlino
1eb7ec7ddf
Detect perimeters hitting map boundaries upfront. This lets us more
...
easily work with perimeters and only transform to blocks when we need to
last minute. As a happy side effect, it vastly speeds up blockfinding --
the slowdown was attempting to mangle geometry for the huge broken
perimeters near boundaries!
Also improve the incremental merge debug UI
2021-10-29 16:43:35 -07:00
Dustin Carlino
32fc46831b
Draw arrows to show entrances/exits to a LTN.
...
(and rename Line::reverse for consistency with PolyLine)
2021-10-29 12:25:30 -07:00
Dustin Carlino
e62a41d45b
Color adjacent blocks differently
2021-10-28 15:10:50 -07:00
Dustin Carlino
a2d7beb508
Make block outlines trace around dead-ends
2021-10-28 14:22:07 -07:00
Dustin Carlino
ef6942f83e
Improvements to block geometry:
...
- always use proper road edge
- trace along the boundary of intersection polygons
2021-10-28 12:45:27 -07:00
Dustin Carlino
5e5e411de8
Detect neighborhoods with the new block abstraction ( #793 )
2021-10-28 10:11:57 -07:00
Dustin Carlino
f6e4c9b08e
Concave hull, you're drunk, go home ( #792 )
...
Add map_model Blocks and RoadLoops
2021-10-27 13:19:13 -07:00
Dustin Carlino
007cf0b28d
Split the importer into individual commands with structopt. #745
2021-10-25 13:02:00 -07:00
Dustin Carlino
98b350418d
Log warnings when stripping out broken commands from edits
2021-10-24 12:56:02 -07:00
Dustin Carlino
a75f874dbf
Always load map edits permissively -- if there are broken commands, just
...
skip them.
This partly works around a bug loading remote edits from r/seattlebike.
The workaround isn't great, because the edits there are uncompressed --
there are multiple commands modifying the same road. The workaround will
ignore all but the first version.
2021-10-22 10:29:00 -07:00
Dustin Carlino
9f86365cf6
Upgrade to rust 1.56 and cutover to rust edition 2021
2021-10-21 09:38:06 -07:00
Dustin Carlino
a643c35014
Long overdue round of clippy
2021-10-18 13:52:10 -07:00
Dustin Carlino
a85915f647
Refine high_stress_for_bikes to take direction into account. Northbound bike lanes on Roosevelt don't really matter when going southbound.
...
Regenerate all maps, since this maybe affects edge weights.
And try some ideas for understanding why files change.
2021-10-18 13:41:31 -07:00
Dustin Carlino
66c908913e
Run the area polygons in city.bin through the georust simplification.
...
Seattle drops from 3MB to 800KB with no discernable loss of quality.
2021-10-14 10:37:32 -07:00
Dustin Carlino
77bc0423ac
Critical bug in the final hour: Aurora wasn't marked as high-stress, because the road rank was just looking for arterials, not also highways!
2021-10-12 11:46:23 -07:00
Dustin Carlino
5f83f5b46b
Include my own Seattle bike network vision as a built-in proposal. #743
...
To avoid needing 3 copies of the proposal for different splits of the
map, make loading edits "permissive" (filtering out unknown roads) when
loading from proposals.
2021-10-11 17:34:14 -07:00
Dustin Carlino
755e723251
Get some different boundaries set up in Seattle, to support the bike
...
network tool reasonably on the web. #743 , #746
I'm declaring the budget to be 20MB gzipped map files.
- north and south seattle boundaries extended a bit
- central seattle added
- stripping out unused pathfinding data for walking and transit to
squeeze down the size. avoiding crashes for empty pathfinding -- if
you try to simulate a minified map, most trips will just fail
2021-10-11 14:06:49 -07:00
Dustin Carlino
031cc0fe9d
Make the quick sketch handle divided one-ways more reasonably. #743
...
Previously, the undirected graph search would switch sides sporadically.
Now it sticks to one side.
Now we probably just need an option to also include the other direction,
to avoid having to sketch over Aurora twice.
2021-10-06 14:14:59 -07:00
Dustin Carlino
9803558885
Dramatically speed up editing roads by re-snapping buildings and parking
...
lots in one big batch, instead of after every single command.
A batch of 300 edited road segments in huge_seattle went from over 70
seconds to apply down to... 0.6 seconds. Embarrassing.
2021-10-05 12:17:39 -07:00
Dustin Carlino
309db511c2
Record timing while applying map edits. Even in release mode, this is a long inexplicable pause for large-scale bike network changes. A loading screen is better.
2021-10-05 11:35:37 -07:00
Dustin Carlino
2905ca605d
Cache the Dijkstra pathfinder for custom RoutingParams. This dramatically speeds up the bike network routing tool, since it's now restricted to just a few params. #743
2021-09-29 11:38:18 -07:00
Dustin Carlino
c4d38ca591
A humble start to showing an alternate, low-stress route. #743
2021-09-27 13:13:11 -07:00
Dustin Carlino
d365213948
Small refactor: {road, lane}.length()
2021-09-26 11:08:44 -07:00
Dustin Carlino
0e869b35c0
Detect some rat runs
2021-09-24 15:28:43 -07:00
easbar
0a7670d874
Update fast_paths to current master, faster preparation
2021-09-13 10:53:14 -07:00
Dustin Carlino
b7d010058c
Store Movements per Intersection, instead of constantly calculating them! #746
...
Regenerating everything...
2021-09-06 14:53:37 -07:00
Dustin Carlino
6dcf417cd0
Fix some clippy warnings, and now regenerate everything...
...
Green Lake sim crashes, not investigating.
[rebuild] [release]
2021-09-05 19:53:10 -07:00
Dustin Carlino
9300470c6b
Lane offset comes for free now
2021-09-05 19:53:10 -07:00
Dustin Carlino
442523ae6c
Simplify some lane lookups that just needed to find the parent
2021-09-05 19:53:10 -07:00
Dustin Carlino
112bc38e0c
Get rid of the now redundant lanes_ltr
2021-09-05 19:53:10 -07:00
Dustin Carlino
4c46510342
Cleaning up a few APIs, now that lanes belong to roads...
2021-09-05 19:53:10 -07:00
Dustin Carlino
0f4a31e915
Moving lanes from a BTreeMap to be stored inlined in their parent Roads. #746
...
Somewhat invasive API change internal to map_model, but not much impact
elsewhere.
Not regenerating anything yet.
2021-09-05 19:53:10 -07:00
Dustin Carlino
cea0ad2541
Change LaneID to encode (RoadID, offset), still in one u32. #746
...
Not regenerating yet.
2021-09-05 19:53:10 -07:00
Dustin Carlino
add42b6f19
When pathfinding with custom routing params (from the debug UI), only rebuild the one graph we need. #746
2021-09-05 17:04:54 -07:00
Dustin Carlino
8c2c0e2e65
Start some new RoutingParams for bikes to avoid steep hills and
...
stressful roads. Initially experiment in the route debugger UI. #743
This is a binary map format change, but temporarily working around
that...
2021-09-05 17:04:54 -07:00
Dustin Carlino
0ad76921fd
Don't crash in map_editor when we encounter overlapping OSM ways; skip that intersection and print loudly.
2021-09-04 10:43:14 -07:00
Dustin Carlino
01877cb576
Remove the experimental sumo import crate from early this year. It causes very slight technical debt (some public Map stuff) and there are no plans to do anything with this. The Sumo XML parser is always here in version control if it becomes interesting again later.
2021-09-01 19:23:13 -07:00
Dustin Carlino
b8d0fd6499
We just need the bike graph. #746
2021-09-01 19:15:07 -07:00
Dustin Carlino
f83168184d
Start a tool to compress Map files by removing information unnecessary to the bike network tool. #746
...
Just a modest start, switching from CHs to Dijkstra's for pathfinding. Not uploading the minified result yet.
2021-09-01 19:02:42 -07:00
Dustin Carlino
1c756befa8
Hover on route, to show elevation on line plot. #743
...
Some messiness, but step forward.
2021-09-01 18:20:48 -07:00
Dustin Carlino
ba6f9f4a14
When hovering on the elevation line plot, show the equivalent position
...
on the route. #743
2021-09-01 13:18:30 -07:00
Dustin Carlino
1c9aaac17f
Show drop position on the map while dragging lane cards
2021-08-29 16:40:54 -07:00
Dustin Carlino
b14d2d2bbf
Rebrand the tool, create new launch scripts for the binary release,
...
clippy.
[rebuild] [release]
(I'm not done just yet, but want to check the launch scripts)
2021-08-25 16:52:43 -07:00
Dustin Carlino
b2f30fa192
Add some more metrics for a route, related to safety
2021-08-23 19:02:44 -07:00
Dustin Carlino
7e3802a519
Add elevation details to routing results
2021-08-23 18:02:29 -07:00
Dustin Carlino
1d71e39480
Amp up the short service road trimmer -- Aurora's got lots of dangly things to trim.
...
While we're at it, opt into new fast_paths branch that should have about
a 2x import speedup.
Regenerating the world...
2021-08-21 21:23:35 -07:00
Dustin Carlino
816e125cbe
Refactor some stuff related to unit tests for a road's lanes. #635
2021-08-21 15:17:57 -07:00
Dustin Carlino
70c6d47c13
Track locally which proposals have been uploaded, to avoid uploading copies of stuff uselessly. Not quite working, but big step forwards.
2021-08-18 10:23:20 -07:00
Dustin Carlino
90a1d2ff83
Initially launch with edits loaded remotely
2021-08-16 16:00:01 -07:00
Dustin Carlino
5287308f6f
Fix broken web build.
...
- I accidentally enabled something to debug map serialization, which
broke in wasm -- fast_paths not meant to be serialized there, only
deserialized.
- makefile for interactive development copied directories slightly wrong
Also picking up a slight UI panel change to the bike network tool from
days ago.
Also probably time to [rebuild] [release]
2021-08-15 09:05:41 -07:00
Dustin Carlino
d392c67c00
Start unit tests for the quick bike sketch tool, to understand how lane transformations work
...
(And fix bucketize tests, which just haven't been run in a bit)
2021-08-12 09:47:40 -07:00
Dustin Carlino
9b4107f061
Track when a map is edited and update things better, in both the game's edit mode and the new tool.
2021-08-08 09:22:32 -07:00
Dustin Carlino
100b068086
Print map size breakdown more usefully.
2021-08-07 21:57:06 -07:00
Dustin Carlino
51367088df
Adding a 'nearby houses and shops' feature to the bike network tool
...
Results have major issues, probably going to leave this out of v1.
2021-08-06 20:05:04 -07:00
Dustin Carlino
b080c70d83
Sinew is meant to stretch.
2021-08-05 14:06:11 -07:00
Dustin Carlino
c019304ee3
A skeleton emerges, from whatever sort of place skeletons lurk
2021-08-03 19:23:28 -07:00
Dustin Carlino
dcf84d3b10
Rewrite turn restrictions to handle collapsed roads. Lake Wash Blvd / Madison revealed this problem.
...
Regenerating everything now...
2021-08-03 00:07:49 -07:00
Dustin Carlino
e687dd0391
Automatically collapse more degenerate intersections. Manually tested
...
around the university bridge. Still far to go, but progress.
Not regenerating yet.
2021-08-02 12:06:47 -07:00
Dustin Carlino
c71c1b91dc
Trying to fix corner curbs and failing, but made some maybe useful geom
...
API additions.
And not drawing curbs for footways. #715
2021-07-31 19:46:37 -07:00
Dustin Carlino
b02b00fe56
Handle more OSM separation tags, and copy over the values for snapping. #330
...
Not regenerating yet, but NE Campus Pkwy in the udistrict is my test
case.
2021-07-30 13:46:14 -07:00
Dustin Carlino
7592f9ca9e
Fix crosswalks & sidewalk corners for consolidated intersections on left-handed maps. #654
...
Not regenerating yet. (There shouldn't be many junctions tagged on
non-US maps, at least not by me.)
2021-07-30 11:28:56 -07:00
Dustin Carlino
2ae6dea692
Upgrade to rust 1.54, fix new clippy warnings
2021-07-30 09:48:31 -07:00
Dustin Carlino
7fbd8ae022
Next steps on snapping cycleways / modelling separators. #330
...
- Only snap cycleways with explicitly tagged separators
- When collapsing intersections, preserve the OSM ID of the longer way
2021-07-29 11:24:38 -07:00
Dustin Carlino
1bda9333e2
For the snapping cycleways experiment, always perform the actual
...
snapping. Emit the KML debug file only when additionally flagged on. Add
more debug info there, to figure out why some paths are totally
disappearing... #330
2021-07-29 09:01:36 -07:00
Dustin Carlino
a4906a2953
More flag-guarded color scheme progress towards #715 :
...
- choosing some building colors
- proper unzoomed road/intersection outlines
- adjusting curb color based on road rank (for arterials, it was the
same grey!)
2021-07-28 12:12:01 -07:00
Dustin Carlino
d6936c5535
Refine the trimming rules -- insist on short roads, and leave borders alone.
...
Not regenerating everything yet, but spot-checked downtown where some
things broke previously.
2021-07-28 10:55:47 -07:00
Dustin Carlino
ffcf0a8d66
Fix a bug in transit snapping introduced by 163244ace9
. Regenerating all maps, also bringing in a Tempe OSM fix...
...
The deadend trimming is too enthusiastic, getting rid of some unsnapped
cycleways and things connecting to the map border. Will iterate on it
this week; net benefit for now.
2021-07-27 16:56:11 -07:00
Dustin Carlino
9e68c22d67
Try to collapse degenerate intersections that happen near snapped cyclepaths. #330
...
The udistrict is shaping up...!
2021-07-27 12:39:44 -07:00
Dustin Carlino
1bde8c5345
Start turning cycle separation OSM tags ( https://wiki.openstreetmap.org/wiki/Proposed_features/cycleway:separation ) into buffer lanes. Only attempting for cycleways tagged on the road right now, since we're going to be snapping separated ways anyway... #330
...
And start experimenting with this in the snapper. Quick tests with the
Roosevelt PBL in the udistrict.
2021-07-27 12:12:10 -07:00
Dustin Carlino
4547395067
Move the cycleway snapping step to happen just before RawMap->Map, so we can play with it in the map_editor. #330
2021-07-27 11:20:57 -07:00
Dustin Carlino
163244ace9
Trim dead-end cycleway and service road stubs. Not regenerating yet, but
...
spot checked in Tempe and the UDistrict.
2021-07-27 11:13:47 -07:00