abstreet/docs/TODO_quality.md
2019-11-21 09:57:01 -08:00

4.5 KiB

TODO - Map quality

Boundary clipping

  • some border intersections have weird OOBish geometry, or the arrows look weird
  • simplify border node detection, only do it in convert_osm?

Geometry

  • bad polyline shifting remains

    • from the remaining cases, looks like we need to totally remove some tight points and retry
    • make polygons use the corrections too?
    • bad polyline shifting causes jagged lane endings in generalized_trim_back
  • handle small roads again somehow?

    • reduce degenerate min trim. the disabled fix doesn't look great.
    • I40, I25, I0 cut corners when merged. disabled fix works, but breaks other things.
    • try it bigger
    • deal with loop roads?
    • model U-turns
  • car turns often clip sidewalk corners now

  • draw SharedSidewalkCorners just around the ped path, not arbitrarily thick

    • dont forget to draw the notches
  • figure out what to do about yellow center lines

    • intersections on one-ways look weird
    • yellow and white lines intersect cars and turn icons and such
    • who should own drawing them?

More data

Low-priority geometry issues

More problems to fix

  • Disconnected map
    • now that LCing model is simple...
  • Impossible turns (from a far bus lane to a crazy left)
  • Buildings intersecting roads, probably because bad lane inference
    • when this happens, get rid of parking lanes first (one or both sides?)
    • iterative process... have to redo affected roads and intersections
    • we havent filtered buildings by proximity to sidewalk yet
      • if we dont filter at all, we pick up some houseboats! :) should draw water...

Map edits

  • lane type can affect border intersections
  • lane type can affect turn idx
    • assert turns are the same

Sim bugs/tests needed

  • do bikes use bike lanes?
  • test that peds will use buses organically
    • make sure that we can jump to a ped on a bus and see the bus
  • park/unpark needs to jump two lanes in the case of crossing a bike lane or something
    • should only be able to park from the closest lane, though!
  • explicit tests making cars park at 0 and max_dist, peds walk to 0 and max_dist
  • lanechange rebalancing
  • parking/unparking on offside of oneway

Discrete-event sim model

  • cleanup after the cutover

    • proper intersection policies, by seeing full view
    • time travel mode can be very smart
    • dupe code for initially spawning vs spawning when a trip leg starts.
      • validation (just do it in spawn and return an error?)
      • getting the path
      • converting goal into router and such
  • perf

    • dig into individual events, still too many?
      • for laggy heads, often round down and try slightly too early

Laundry list of intersection geometry ideas

  • make sure road widths are reasonable first
    • SDOT dataset
    • channelization
  • extend all the thick roads until they poke out of stuff (except for roads continuing straight)
  • play with https://github.com/w8r/polygon-offset
  • https://github.com/migurski/Skeletron
  • stitch together orig center line of adj roads. then do polyline shifting, which already handles angle eating?
  • manually draw intersections
    • montlake/520 4 traffic signal case. existing road geometry in OSM doesn't even cover everything.