prop/lib/microwaveprop/rover
Graham McIntire 2defa3db7a
refactor: deduplicate helpers and simplify Scorer
- Unify haversine_km / deg_to_rad: Geo is the canonical home (atan2
  form for antipodal stability); Radio, common_volume, rain_scatter,
  ionosphere, terrain/srtm, terrain/elevation_client now delegate.
- Drop safe_min/safe_max wrappers in favor of Enum.min/max defaults.
- Move parse_float / parse_int to MicrowavepropWeb.LiveHelpers; eme,
  path, and rover LiveViews import from there.
- Extract MicrowavepropWeb.LocationResolver from the eme/path
  resolve_source / resolve_location duplicate. Standardize the kind
  key and "Invalid grid square" error message.
- Convert Scorer cond chains (humidity, td_depression, sky, wind,
  rain, pwat, pressure) to multi-clause guarded defs, matching the
  existing classify_time_period style.
- extract_profile_fields uses a named map accumulator instead of a
  6-tuple; build_path_conditions guards on %{temps: []} / %{dewpoints: []}.
- Collapse scores_file clamp/3 to max |> min.
- humidity_effect_label lives in BandConfig; map_live and path_live
  both use it.
2026-04-28 14:14:34 -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 refactor: deduplicate helpers and simplify Scorer 2026-04-28 14:14:34 -05:00
compute.ex feat(rover): "only use known ideal locations" toggle 2026-04-26 13:25:29 -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
location.ex feat(rover-locations): add /rover-locations page with CRUD 2026-04-26 13:08:27 -05:00
path_terrain.ex refactor: deduplicate helpers and simplify Scorer 2026-04-28 14:14:34 -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