Commit Graph

7390 Commits

Author SHA1 Message Date
Dustin Carlino
942c3ecdaf Make SimpleApps all manage their own CLI parsing, so they can add their own overrides. 2022-01-31 13:30:55 +00:00
Dustin Carlino
eda9ff20bd new release 2022-01-30 19:30:52 +00:00
Dustin Carlino
0058f99da2 Mechanical rename of TripEndpoint::Bldg to ::Building, mostly to kick off a [rebuild] [release] 2022-01-30 18:27:36 +00:00
Dustin Carlino
3d33d2743b Document the new synthpop crate.
I regenerated some scenarios; no diff. The prebaked summaries change a
bit, but not the prebaked results -- not sure, but going to proceed.
2022-01-28 13:13:43 +00:00
Dustin Carlino
638e93c36a Stop re-exporting stuff from synthpop in sim 2022-01-28 13:13:43 +00:00
Dustin Carlino
f171ddcb73 Get everything to build again... 2022-01-28 13:13:43 +00:00
Dustin Carlino
9845d9cae1 Implement the two public TripEndpoint methods in synthpop, but without needing to drag in SidewalkSpot and DrivingGoal 2022-01-28 13:13:43 +00:00
Dustin Carlino
3f8689b9ea Rearrange methods defined on Scenario that're only for the sim crate 2022-01-28 13:13:43 +00:00
Dustin Carlino
231acf47a2 Step 2: try to get the sim crate to build again
Scenario and TripEndpoint have some methods defined on them that're
specific to sim. Do we rearrange these methods entirely or make some
kind of wrapper types?
2022-01-28 13:13:43 +00:00
Dustin Carlino
e45a5181db Split the "input" layer of the sim crate into a synthetic population
crate, in preparation for future focus on travel demand models that
incorporate more per-person info.

Note: I'm also a bit tempted to try to further split sim into a
"high-level" layer that orchestrates spawning and different legs of a
trip, from the "low-level" layer that moves pedestrians and vehicles.
That could _possibly_ pave the way for someday using a different traffic
simulation backend with more realistic movement mechanics.

Step 1: just get the synthpop crate to build
2022-01-28 13:13:43 +00:00
Dustin Carlino
6c2a581be5 Simplify traffic count code -- directly deal in Counters 2022-01-28 10:40:56 +00:00
Dustin Carlino
921228b7bf Add a headless API command to load a map with an empty simulation. #838 2022-01-28 09:37:25 +00:00
Dustin Carlino
47962cfdbd Add a headless API command to snap a point to the nearest road, for https://github.com/dabreegster/urban_observatory_abst 2022-01-27 17:44:48 +00:00
Dustin Carlino
fefe8f5be2 Swap the traffic counts in the UI 2022-01-27 15:21:21 +00:00
Dustin Carlino
e542011614 More fluid UI for comparing traffic counts -- hotkeys
Had to change the API of on_click...
2022-01-27 15:13:24 +00:00
Dustin Carlino
e21c57b70a When calculating traffic volumes, deduplicate path requests first.
Around 2x less paths to calculate.

Even though the deduplication throws away some info, the net effect for
measuring traffic volumes is practically equivalent, so it's a
worthwhile optimization. Used the new comparison UI to verify that!
2022-01-27 14:26:36 +00:00
Dustin Carlino
edfd320908 A new generic UI to compare counts from two files.
Also moving some of the counts stuff to map_gui, accordingly
2022-01-27 14:26:36 +00:00
Dustin Carlino
c33ba85cfe Make LTN impact prediction use the new common code 2022-01-27 14:26:36 +00:00
Dustin Carlino
a6b4f8879a Refactor parts of the LTN impact prediction into a separate UI just for
comparing count data.

Don't use it yet
2022-01-27 14:26:36 +00:00
Dustin Carlino
ee8c8d8611 Simplify impact results plumbing 2022-01-27 09:44:13 +00:00
Dustin Carlino
be57975a91 Start to shape the LTN impact tool into something more general to plug a
demand model into routing and compare throughput before/after some
change.

Add in a bunch of filters for trips. (Most even work!)
2022-01-26 14:17:24 +00:00
Dustin Carlino
e318f2733b Import Wokingham 2022-01-26 12:09:37 +00:00
Dustin Carlino
cabffc7f47 Similar refactor for ColorDiscrete. Anywhere separately managed a zoomed
and unzoomed batch should just migrate to this.
2022-01-26 11:35:40 +00:00
Dustin Carlino
5dfb8f26f0 Refactor ColorNetwork to use ToggleZoomed 2022-01-26 11:31:33 +00:00
Dustin Carlino
ec0fd1b94d Stop running out of video memory in the LTN impact prediction tool.
- One batch for all neighborhoods
- One batch for all roads/intersections
- No pre-built tooltips

This all comes at more repetitive code. Need to make World generate some
stuff dynamically (#763)
2022-01-26 11:26:03 +00:00
Dustin Carlino
deffc35fd7 Optionally generate a scenario for one-shot imported UK maps. #842 2022-01-26 10:31:38 +00:00
Dustin Carlino
0203de046d Don't repeatedly try to merge blocks in the select boundary UI. An optimization to workaround new sanity checks introduced for #841 2022-01-26 10:15:31 +00:00
Dustin Carlino
dfbd9785f3 While merging adjacent perimeters for the LTN tool, don't proceed if
intermediate results can't be turned into a polygon. It'll break
something later. #841

There's a particular bug where a perimeter can be turned into a polygon,
but after collapsing internal dead-ends, it can't.

If we don't do this, the LTN select boundary UI crashes, and reasoning
about block -> neighborhood mappings gets very hairy. I'd like to
address all the root causes of failing to make a polygon, but until
then...

TRADE-OFF: it _really_ slows down the select boundary UI.
2022-01-25 18:12:15 +00:00
Dustin Carlino
eba579dbd1 Adjust the definition of cycleway roads to include sidewalks. Any road
with only bike lanes and any walkable lane counts as a cycleway, for
rendering purposes. So if you change a road with sidewalks to only allow
bikes on the road, it shows up green in the unzoomed layer.

There's lots of nuance with footways that doesn't matter yet, because
we're mostly not importing those yet.
2022-01-25 14:10:39 +00:00
Dustin Carlino
9192c6364b Avoid crash in the blockfinder when merging partitions manually 2022-01-25 14:01:24 +00:00
Dustin Carlino
847ca07bc6 Add the quick-select feature to the blockfinder debugging too 2022-01-25 13:54:30 +00:00
Dustin Carlino
deb775b409 Debug block partitioning by color, to sanity check why some blocks are vanishing when merged 2022-01-25 13:39:40 +00:00
Dustin Carlino
61d7a03cbd Import Levenshulme for traffic sensor study 2022-01-25 12:32:37 +00:00
Dustin Carlino
37404044e3 Avoid crashing in PolyLine::dist_along due to floating point issues.
This was happening when trying to draw pedestrians sometimes.

Regenerate everything. Some maps/scenarios affected, but in tiny
imperceptible ways. No screenshot diff.
2022-01-24 20:47:02 +00:00
Dustin Carlino
2683f32d28 Clarify an error message 2022-01-24 15:42:14 +00:00
Dustin Carlino
7bb8c13270 At last, support splitting neighborhoods while selecting boundaries!!! 2022-01-24 15:33:34 +00:00
Dustin Carlino
e7aeaf39de Remove confusing and redundant state in the select boundary UI. 2022-01-24 15:13:15 +00:00
Dustin Carlino
246d3347ca Don't use a special color for the current neighborhood in the select boundary UI. The red outline accomplishes the same thing, and it's less confusing to jump colors from the browse screen 2022-01-24 13:26:48 +00:00
Dustin Carlino
f777d0ba10 Shift logic from the select boundary UI to the partitioning structure.
That was the original intention, but it wound up being easier to
prototype otherwise.

Should be no behavioral changes.
2022-01-24 13:13:05 +00:00
Dustin Carlino
2c089cf1a3 Refactor select boundary logic, carefully 2022-01-24 10:15:27 +00:00
Dustin Carlino
3b6391f18d Create new neighborhoods when we remove a block from an edge.
It works! But with uncomfortably duplicated code
2022-01-24 09:41:31 +00:00
Dustin Carlino
f91f70f5d4 Improve boundary selection. When removing a block, search the whole
perimeter for another neighborhood to donate to, before concluding we're
near the map boundary.
2022-01-24 09:26:56 +00:00
Dustin Carlino
bc4f59e566 new release 2022-01-23 18:33:39 +00:00
Dustin Carlino
02e1368e0c Update github workflow to build the split-out LTN tool [rebuild] [release] 2022-01-23 10:27:32 +00:00
Dustin Carlino
33332bd12f Be careful with relative count math, avoiding one crash. [rebuild] [release]
But also, just disable the analysis for the release. It eats through all
my GPU memory on larger maps.
2022-01-23 09:37:45 +00:00
Dustin Carlino
b6b69aa886 Be smarter with LTN impact prediction memory usage.
... but this doesn't actually fix the mysterious crash in Camden and
other maps?!
2022-01-23 09:37:45 +00:00
Dustin Carlino
bc97ed2d3a Prototyping Andy's idea for a dataviz to compare traffic counts
before/after. Road width is based on the baseline count, color is based
on the relative difference.

Lots of work needed, but this is probably a good way forward
2022-01-23 09:37:45 +00:00
Dustin Carlino
7a9ad22fd7 Just split impact module, since it's growing so much 2022-01-23 09:37:45 +00:00
Dustin Carlino
e36337a91f Use an enum for a more clear API to handle caching temporary
pathfinders. Should be no behavior changes yet
2022-01-23 09:37:45 +00:00
Dustin Carlino
1a05da2824 Change how pathfinding works when avoiding modal filters.
Before, it was just a large 3 hour penalty for crossing a filter -- so
it shouldn't happen, but it was possible, and so some (but not all!) LTN
code had an extra paranoia step to filter out paths that crossed.

Now, actually make it impossible at the pathfinding layer.

Also, fix colors in the LTN pathfinding tool that were backwards
2022-01-23 09:37:45 +00:00