prop/lib/microwaveprop/rover
Graham McIntire 0f15e99fb9
feat(buildings): integrate MS footprints into path clearance + map render
Phase 2/3/5 of the building-blockage support:

* Parser streams csv.gz tiles into compact records (centroid, radius,
  height) — keeps RAM ~32 B per polygon, drops -1.0-height entries.
* Index buckets records into 0.01° (~1 km) grid cells in a public ETS
  table for concurrent reads; max_height_near/3 and records_near/3
  scan only the 9 nearest buckets.
* Loader lazily parses any cached quadkey before a Calculate so the
  scorer is terrain-only when tiles aren't on disk yet.
* Rover.PathTerrain now treats each path-sample obstacle as
  terrain_elev + max_local_building_height, so blocked LOS through
  recent construction actually reduces clearance.
* Selecting a candidate pushes a candidate_buildings event with the
  buildings near each rover→station path; the hook renders them as
  height-coloured circles (yellow <10 m, orange 10-30 m, red >=30 m)
  with a tooltip showing height in meters.
2026-04-26 10:44:46 -05:00
..
aggregator.ex feat(rover): pure scoring math (link margin, aggregator, drive time) 2026-04-25 16:26:33 -05:00
candidate_detail.ex feat(rover): show aim heading + path lines for each fixed station 2026-04-25 18:10:15 -05:00
compute.ex feat(buildings): integrate MS footprints into path clearance + map render 2026-04-26 10:44:46 -05:00
drive_time.ex feat(rover): show aim heading + path lines for each fixed station 2026-04-25 18:10:15 -05:00
elevation.ex feat(rover): score per-station terrain clearance from SRTM path samples 2026-04-25 17:29:29 -05:00
fixed_station.ex feat(rover): FixedStation schema with grid-derived lat/lon 2026-04-25 16:26:33 -05:00
hilltop.ex feat(rover): snap top candidates to SRTM hilltops + add hillshade overlay 2026-04-26 09:12:24 -05:00
link_margin.ex feat(rover): pure scoring math (link margin, aggregator, drive time) 2026-04-25 16:26:33 -05:00
path_terrain.ex feat(buildings): integrate MS footprints into path clearance + map render 2026-04-26 10:44:46 -05:00
prominence.ex feat(rover): prefer broad hilltops near roads as ideal candidates 2026-04-25 17:45:48 -05:00
road_proximity.ex fix(rover): bound Overpass with hard 8s deadline + 6h ETS cache by bbox 2026-04-26 09:25:08 -05:00