towerops/lib/towerops_web/live/coverage_live
Graham McIntire 1b6a548f3a refactor: imperial coverage form + Deygout/curvature propagation
Form simplification per user feedback. Form now shows only the
essentials (Name, Site, Antenna, Frequency, TX power, Range, Height,
Azimuth, Tilt, Foliage tuning) with imperial units throughout (ft, mi,
GHz). Defaults: TX power 18 dBm, height 100 ft, azimuth 0°, frequency
5.8 GHz, range 4 mi.

EIRP is calculated, not entered: shown as a live-updating badge in
the form header as `TX power + antenna.gain`.

Removed from the form (still on the schema with sensible defaults so
existing callers and the worker keep working): cell_size_m (auto-
computed from radius / 200, clamped 5–50 m), cable_loss_db, sm_gain_dbi,
tx_clearance_m, height_above_rooftop_m, receiver_height_m,
rx_threshold_dbm, latitude/longitude_override.

Schema:
- Six virtual imperial fields (height_agl_ft, height_above_rooftop_ft,
  receiver_height_ft, tx_clearance_ft, radius_mi, frequency_ghz). The
  changeset converts to SI before validation. Tests/workers/API keep
  sending SI directly.
- ensure_cell_size_m/1: defaults the cell size when callers omit it.

Show + index pages now display GHz / ft / mi.

Propagation accuracy upgrade:
- Earth-curvature correction (4/3-Earth model, ITU-R P.453) applied
  per profile sample. Important for paths over ~5 km.
- Replaced Bullington single-knife-edge with Deygout three-edge
  multi-obstacle method (ITU-R P.526 §4.5): catches multi-ridge
  terrain shadowing that a single dominant obstacle would miss.

Tests: 67 coverage tests pass (added Earth-curvature and Deygout
multi-obstacle reference checks). Full suite: 10817 tests.
2026-05-06 14:44:23 -05:00
..
form.ex refactor: imperial coverage form + Deygout/curvature propagation 2026-05-06 14:44:23 -05:00
form.html.heex refactor: imperial coverage form + Deygout/curvature propagation 2026-05-06 14:44:23 -05:00
index.ex feat: add /coverage RF prediction feature scaffold 2026-05-06 13:44:14 -05:00
index.html.heex refactor: imperial coverage form + Deygout/curvature propagation 2026-05-06 14:44:23 -05:00
show.ex refactor: imperial coverage form + Deygout/curvature propagation 2026-05-06 14:44:23 -05:00
show.html.heex refactor: imperial coverage form + Deygout/curvature propagation 2026-05-06 14:44:23 -05:00