Commit Graph

105 Commits

Author SHA1 Message Date
Dustin Carlino
a2b4dcb64f Store RoutingParams in the Map. Add a method for the debug UI to override the defaults, rebuilding the CHs. This is in preparation for #237, and part of #494 2021-02-03 10:59:02 -08:00
Dustin Carlino
a14133368e Upload Montreal data 2021-02-02 18:37:19 -08:00
Dustin Carlino
02b90741d6
Draw 'STOP' on stop signs. Fixes #450 (#492) 2021-02-01 16:47:53 -08:00
Dustin Carlino
d2ce997284 Just regenerate all maps after 37a25c0fcb 2021-01-27 17:51:35 -08:00
Dustin Carlino
802a647a81 Import Providence for a student project. 2021-01-27 15:34:54 -08:00
Dustin Carlino
9d751afc24 Increase the amount of offstreet parking in Rainier Valley. #446
At long last, we have the 3rd Seattle map that finishes without
gridlock! Hoping to use it for this case study on signal timing
maximums...
2021-01-26 18:15:34 -08:00
Dustin Carlino
c10dc4a696 Collapse tiny little traffic circles into a single intersection, for
saner geometry and simulation. #446, #75

This partly reverts b3bfd6a3f2.

Also bring in fresh OSM data for Seattle.
2021-01-26 17:43:15 -08:00
Dustin Carlino
8e22f2aa9e Make the Rainier Valley map smaller, cutting out MLK. #446
The roads that cross the light rail tracks wind up gridlocking horribly.
For this case study, we actually just care about Rainier Ave.

The scenario still gridlocks, but due to tiny traffic circles breaking.
Going to try automatically converting those to a single node.
2021-01-26 15:28:36 -08:00
Dustin Carlino
cad336d493 Tighten up the definition of u-turns, requiring the from/to road names
to match.

Originally these were introduced to deal with merging intersections
between dual carriageways. But inadvertently, lots of left turns got
reclassified as u-turns. That's caused various headaches, most recently
the lakeslice gridlock. That's fixed again!
2021-01-25 17:19:48 -08:00
Dustin Carlino
fa70816bfa Attempt some transformation of sidewalk:{left,right} tags for #449.
Fix a bug with the previous commit (lanes=1 on a two-way). Now regenerate.

... Unfortunately lakeslice now gridlocks due to a turn generation bug.
Temporarily removing the prebaked results there so I can push these last
few changes through. Will resolve this before the next release.
2021-01-25 15:31:01 -08:00
Dustin Carlino
f69335edf0 Let individual maps override the street parking length. #457
Now regenerate all map data, because the schema changed. Also had to
revert part of the last commit to unbreak transit route snapping in
Berlin.
2021-01-25 12:36:49 -08:00
Dustin Carlino
56101addcf Remove the zcool font and Xi'an import. #377
The Xi'an map isn't being regularly used, and it has some issues
(boundary is too large, OSM is missing buildings in most of the area).

The zcool font enables Chinese characters to render, but costs 6MB in
the binary files, slowing down wasm loading time. Eventually, we can
support async loading fonts and passing them to widgetry when loading a
map requiring them. For now, cutting down wasm size is a bigger
priority.

game wasm from 18MB to 12MB. Not bad!
2021-01-24 20:30:20 -08:00
Dustin Carlino
ea103803d1 New map focusing on Rainier Valley for #446, studying the effects of amping up maximum signal cycle lengths. [rebuild] [release] 2021-01-24 15:49:15 -08:00
Dustin Carlino
6cb951f545 Grab fresh Cambridge data again; geofabrik hadn't picked up all of the
changes when I downloaded it. #449

And a small parking fix to better investigate a live edit crash.
2021-01-23 19:24:31 -08:00
Dustin Carlino
c8ba2d878f Grab fresh OSM data for Cambridge, with some cycling fixes from Martin. #449 2021-01-23 17:27:35 -08:00
Dustin Carlino
f34e00e52d Upload Warsaw data to follow up on #461 2021-01-18 18:00:30 -08:00
Dustin Carlino
a6c61e4fae Use Great Kneighton study area for Cambridge, not Trumpington. And bring
in Chapelford too. #449
2021-01-17 17:35:11 -08:00
Dustin Carlino
4c6d7af76d Bring in linear pedestrian highways as cycleways+shoulders. #458
Also give living_streets in Krakow shoulders, so foot routing works
better there.

Now regenerate everything. Actually messes up routing for Trumpington;
71 cancelled trips up to 101. And have to intervene to keep lakeslice
not gridlocking, as usual.
2021-01-16 17:03:13 -08:00
Dustin Carlino
df16c30b77 Add shoulders for foot traffic on separate cycleways. #330
For the moment, this is the simplest way to allow foot traffic. This
breaks down in places like
https://www.openstreetmap.org/way/49207928, where the road gets an
inferred sidewalk and the separate cycleway on each side is
bidirectional with shoulders on each side.

Down to 71 cancelled trips in the baseline for cyipt/actdev#32.
2021-01-16 09:30:22 -08:00
Dustin Carlino
0a353f67f8 When importing external scenario data for cyipt/actdev#32, snap border endpoints based on the allowed modes of each border. Without this, some driving trips snap to the cycleway next to a road.
212 cancelled trips (that immediately failed) down to 140.
2021-01-15 21:45:42 -08:00
Dustin Carlino
87f13a0d0c Improve crosswalk rendering, by orienting each dash perpendicular to the line of the crosswalk. This wasn't true for some degenerate intersections where the turn first crosses part of the sidewalk. #457 2021-01-15 21:15:10 -08:00
Dustin Carlino
48a60c965b For extremely short roads (under 2 meters after calculating intersection
geometry), don't generate crosswalks or stop signs. In reality, these
usually represent the middle of a complicatd intersection. Ideally these
cases would be merged into a single intersection, but before that's
feasible, at least improve some of the inferred things nearby. #457
2021-01-15 15:32:01 -08:00
Dustin Carlino
6ba1cfe8a1 Import Detroit for #452 2021-01-14 18:06:52 -08:00
Dustin Carlino
909ebe35a2 Refactor the cyipt/actdev#32 scenario importer. Expressing in terms of OD is cleaner. 2021-01-14 17:48:17 -08:00
Dustin Carlino
3143b57b19 When importing external scenario data, snap points outside the map boundary to the nearest border.
Now the desire lines for cyipt/actdev#32 import without errors.
2021-01-14 17:32:44 -08:00
Dustin Carlino
a7f3e998b7 Start to generate two simple scenario from actdev desire lines. https://github.com/cyipt/actdev/issues/32 2021-01-14 10:31:21 -08:00
Dustin Carlino
0be06d04f9 Switch to maintained version of earcutr.
Since we have to regenerate everything anyway, also start importing
landuse=meadow areas for #449.
2021-01-14 08:29:49 -08:00
Dustin Carlino
7ffb2d108f Treat cyclepaths as lower priority at intersections with regular roads,
to more realistically guess stop signs. #330, #450
2021-01-13 16:56:55 -08:00
Dustin Carlino
f680de73aa Remove London from screenshot testing, and use Cambridge instead. #449
This will make it easier to visually track the progress improving the
import. Originally London was added to have one left-hand driving map
under the test, but Cambridge works for that too, and it also includes
separate cycleways.

Also fix a crash when trying to draw very very tiny arrows.
2021-01-12 12:30:21 -08:00
Dustin Carlino
a1988f269c Based on importer config, try using separate cyclepaths directly. #330
Small adjustments to unzoomed rendering and stop sign placement.

Regenerate all maps because of the format change, but only Cambridge
changes. Since we're doing this anyway, also pull in leisure=garden.
2021-01-12 11:13:45 -08:00
Dustin Carlino
243a4b3410 Fix cycleway:left with left-hand driving. #449 2021-01-12 09:41:51 -08:00
Dustin Carlino
4e3af638e7 Import landuse=recreation_ground as a park. Noticed Rainier Playfield missing. 2021-01-11 21:23:02 -08:00
Dustin Carlino
ba2bbab2ae When inferring sidewalks on one-ways, don't forget to consider the driving side. 2021-01-11 15:07:22 -08:00
Dustin Carlino
b4cee2d6f9 Start importing parts of Cambridge for https://github.com/cyipt/actdev/issues/26.
I did
https://dabreegster.github.io/abstreet/howto/new_city.html#including-the-city-to-ab-street-more-permanently,
using
https://github.com/cyipt/actdev/blob/main/data-small/study_area_trumpington-test.geojson
2021-01-11 14:23:52 -08:00
Dustin Carlino
0eda6307cd Defer creating TripSpec until the trip actually starts. #258
This speeds up scenario instantiation (because picking a bus to use can
be spread out over time) and is a step towards simplifying the spawning
code. Starting downtown goes from 12.8s to 2.2s.

All vehicles spawning at a border now regress to using the 1st valid
lane, instead of random. Now that the choice is made when the trip
starts, this could later be improved to pick the least loaded lane.

Now regenerate everything.
2021-01-10 18:55:38 -08:00
Dustin Carlino
6e3ce1d9ee Stop generating footways and service road KML files out of Seattle. They're only used for debugging, and not actively. For cities with multiple maps, the order of importing maps causes the files to get overwritten anyway. 2021-01-08 09:44:38 -08:00
Dustin Carlino
afceb5e268 Adjust Leeds import: #444
- stretch central polygon a bit to avoid crash when clipping
  https://www.openstreetmap.org/way/511767781
- rename polygons ("center" to "huge", and removing the "leeds_" prefix
  from the others)
- generate a region overview from the huge map
- only import/match collision data on the huge map
2021-01-08 09:29:45 -08:00
Dustin Carlino
b487678ee0 Delete all out-of-date manual overrides for traffic signals, and make it
a hard error when they become out-of-date going forward.

Better heuristics make some of these unnecessary. And now the the JSON
files are in this repo, updating files manually when pulling down new
OSM data becomes less tedious.
2021-01-07 12:24:07 -08:00
Dustin Carlino
f28bdc9b9e Grab new Seattle OSM data with some junction=intersection tags in Montlake and along Aurora. #114 2021-01-07 11:11:59 -08:00
Dustin Carlino
4cf133cc32 Make the new screencaps preserve alpha properly by switching to
premultiplied alpha. See option 1 of
https://stackoverflow.com/a/24380226

Upload the "new" screenshots (and lakeslice map)!
2021-01-05 18:28:30 -08:00
Dustin Carlino
4c348779db Adjust a signal in lakeslice and regenerate prebaked data after changes yesterday. The signal timing is necessary to workaround an unrelated roundabout gridlock bug at a nearby intersection, unfortunately. 2020-12-31 11:25:18 -08:00
Dustin Carlino
60e7c91d03 Handle one-way roads more uniformly in the traffic signal heuristics. #8
Previously, dual carriageways (pairs of one-way roads in opposite
directions) mostly didn't get any signal templates successfully applied.
This change ignores outbound-only roads when applying the templates. In
one fell swoop, lots of previously broken signals along places like
Aurora Ave suddenly work reasonably.
2020-12-30 15:28:17 -08:00
Dustin Carlino
df59b477a5 Start importing Bellevue. Treat it as a separate city from Seattle, and
don't even check if Soundcast data covers it yet.

Now regenerate all map data.
2020-12-30 13:21:59 -08:00
Dustin Carlino
bc5c4d3b2e Fix importer bug from 14f692fc39 that meant Seattle maps aren't touched when running with --raw and --map 2020-12-29 08:44:54 -08:00
Dustin Carlino
b7061ed425 Handle the junction=intersection tag in OSM, representing a short "road"
in the interior of a big intersection. #255, #114

- No sidewalks or parking on it
- Automatically try to merge it

Bring in fresh Seattle OSM with a few places on Aurora tagged, for
further experimentation.

Also, there's some bug in the importer; Seattle maps didn't get
regenerated last change. Picking up the diffs now.
2020-12-28 19:43:40 -08:00
Dustin Carlino
c6749c4cd3 Calculate angle to intersection using the first point, farthest away. #114
For the (still disabled) cases of merging short roads, this helps
immensely. It doesn't affect most other maps visibly. Makes a few
already broken things in Krakow and London slightly worse, but don't
care, because they didn't look sane before either.
2020-12-28 18:19:03 -08:00
Dustin Carlino
14f692fc39 Turn more code in the importer into config. Ideally we just have code
for all the custom extra import data. #326

Verified there are no changes when importing the affected cities (except
for renaming the original OSM input file for Leeds to match the
geofabrik source)

Woops, and fix updater uploading with the compressed_size_bytes change.
2020-12-22 13:38:29 -08:00
Dustin Carlino
0fc0b8db65 Distinguish uncompressed/gzipped size in the updater tool. #377 2020-12-21 15:32:09 -08:00
Dustin Carlino
2823c04338 Finalization flurry...
- Tune colors in the experiment
- Regenerate maps again -- I forgot that the parcel data gets joined in
  a later importer step.
- Add some of the new maps as levels
2020-12-18 14:24:45 -08:00
Dustin Carlino
0b8c86e2c8 Adjust the threshold for what counts as a straight vs right turn from 10
degrees to 30 degrees. It works around the issue in #428, but it doesn't
solve the root cause there, so the unit test is also adjusted to provide
a way to solve the harder problem.

Regenerated all maps accordingly. Many traffic signals tended to
improve, with a straight turn marked protected, instead of permitted as
a "right turn."
2020-12-18 12:06:16 -08:00