* 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>
- 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.
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.
to further organize them by purpose, but for the moment, two problems:
1) the city picker UI is getting way too crowded
2) on native, the initial download is up to 145MB
Removing:
- the 3 Aurora maps and Green Lake, added for the ARC workshop, but no
longer the most active of collaborations
- Ballard is now subsumed by central Seattle -- the only advantage would
be keeping its full scenario of walking and transit trips, but the
simulation is horribly gridlocked there anyway
- the Rainier Valley map, originally meant for an SNG traffic light
timing study
- the larger udistrict map
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
- Procedurally generate houses there, so the automatic travel demand
model doesn't produce totally silly patterns.
- Disable parking
- Allow vehicles to enter the intersection even when it looks like they
might get stuck; this lets the default scenario complete without
gridlock.
- Prebake the scenario, so a researcher can make edits and use all of
the A/B testing data viz.
The home-to-work scenario produces laughably bogus patterns... everyone
working at Bank Sepah.
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.
now that my faster machine works again.
Running importer jobs in parallel is actually super hard, because
there's async stuff thrown in there now to download files.
- offstreet_parking_length in importer config
- backwards compatibility for map edits
- fixing up the baked-in proposals
- working around a few PolyLine bugs that happen with the new rounding
- Don't regenerate actdev scenarios yet -- the upstream JSON format is
out of date, will have to fix separately.
I have some fuzzy vision of declaring all importer pieces as a dependency graph, with optional caching of some input, that would express this kind of thing better. But... in the meantime.
Now regenerating everything...
- Allow blocking the box around two complex intersections in Green Lake.
This makes the vehicle behavior much more realistic there, by visual
inspection.
- Amp up offstreet parking to 10 per building. I noticed the simulation
completes easily with --infinite_parking. This is an approximation of
that. We make really bad guesses about carpooling and the amount of
parking available around here, so effectively just remove it from
consideration for now.
- arrays are now iterable directly
- switch to using BTree{Set,Map}::retain!
- a round of clippy
- regenerate scenarios and prebaked data; not sure why, but there's a
diff
... But leave it disabled, until we can handle such larger file sizes
and levels of traffic.
And although this should be a behavioral no-op, there's a diff in the
scenario files, so recalculate them.
- Stop importing rail in Tempe. Not simulating anything on it yet, and it complicates gridlock. #672
- Update the GMNS timing.csv import based on slight format change. #626
toggle how many CPUs to thrash. We always use all of them, except for
one case, where a separately named method is more clear. Also make that
variation use all but 1 CPU, instead of just half.
for people that leave one border, then re-enter a different one. #664
Alternative considered: insert a dummy remote trip between the two
borders. We used to do something like this at non-trivial code
complexity expense and having to explain the trip in the UI.
Regenerated all scenarios and prebaked data.
- Modest file size increase, as expected. Montlake scenario goes from
1.3MB to 1.5, downtown from 37MB to 43MB, all Seattle scenarios from
280MB to 327MB
- Eyeballed a few of the previously broken trips; they work now!
- Montlake goes from 3127 cancelled trips to just 302!
- No new gridlock, except in Rainier Valley -- disabling that for now
- I discovered missing validation in Poundbury for no-op trips between
the same building. I'll filter those out and restore prebaked results
there in a followup.
* Update dependencies
* Use github for polylabel, to make all dependencies use geo 0.18, not a mix of 0.18 and 0.17
* Downgrade lyon to avoid a crash
Co-authored-by: Dustin Carlino <dabreegster@gmail.com>
* More conventional spelling of acronym identifiers
* `new` -> `new_state`
* Remove redundant field name
* Remove needless `collect`
* `to_controls` -> `make_controls`
* Simplify long if statement
* Fix module inception
* Simplify chained if let
* Return directly instead of creating a binding
* Disable clippy warning about `borrow` method
Implementing the `Borrow` trait instead would result in excessive type
annotations.
* Fix most remaining clippy warnings
* Allow clippy::type_complexity
* Fix bad merge from web editor
* Run cargo fmt
* Suppress large_enum_variant warnings
* Rename FYI state to ShowMessage
* Fix upper_case_acronyms warnings
Co-authored-by: Dustin Carlino <dabreegster@gmail.com>
Originally this check was useful for people to discover missing
dependencies before spending time trying to import. But the importing
process has changed considerably since then -- much of the time, it gets
called by one_step_import through the UI. It has no need for those 3
commands in that case. If somebody winds up needing any of these
external commands, they'll still get a good error eventually.
* PERF: lower memory requirements for clip_osm
- don't accumulate things unless they are at least partially within the boundary
- accumulate id's, not entire objects.
This entails doing a second pass of the file, but keeps memory usage
much lower.
e.g. a largeish area of Los Angeles, covering east hollywood to downtown, clipped thus:
- north: San Fernando Blvd
- east: LA River east of Downtown
- south: the 10
- west: Western ave,
Before: importing the above stalled out for me during clipping, which
had ballooned into swap at more than 16GB.
After: in the above scenario, clipping peaks around 55MB, and the import
process as a whole peaks during pathfinding - at around 4.0GB.
* fixup! PERF: lower memory requirements for clip_osm
Remove unnecessary casting
This forces the main importer to include tokio and propagate async a
bit. That seems worth it.
Also removed the quiet param from the download helpers; we always want
progress.