Assume 10 ft AGL antennas on contact detail path analysis
TerrainAnalysis.analyse was being called with default 0 m antenna heights on both ends of a QSO's path, which makes the knife-edge diffraction math pretend the radios are sitting directly on the terrain surface. Pass 3.048 m (10 ft) for both ant_ht_a and ant_ht_b, and shift the forward/reverse elevation angles to match. This is only a display assumption on /contacts/:id — terrain worker paths computed elsewhere are unaffected.
This commit is contained in:
parent
be9c215515
commit
bcfda54897
1 changed files with 6 additions and 3 deletions
|
|
@ -1403,13 +1403,16 @@ defmodule MicrowavepropWeb.ContactLive.Show do
|
|||
{:ok, profile} <- safe_fetch_elevation(lat1, lon1, lat2, lon2) do
|
||||
freq_ghz = band_to_ghz(contact.band)
|
||||
dist_km = haversine_km(lat1, lon1, lat2, lon2)
|
||||
analysis = TerrainAnalysis.analyse(profile, dist_km, freq_ghz)
|
||||
# Assume both stations are at 10 ft (3.048 m) AGL so the path
|
||||
# analysis doesn't pretend the antennas are sitting on the dirt.
|
||||
ant_ht_m = 3.048
|
||||
analysis = TerrainAnalysis.analyse(profile, dist_km, freq_ghz, ant_ht_a: ant_ht_m, ant_ht_b: ant_ht_m)
|
||||
|
||||
fwd_az = initial_bearing(lat1, lon1, lat2, lon2)
|
||||
rev_az = initial_bearing(lat2, lon2, lat1, lon1)
|
||||
|
||||
tx_elev = hd(profile).elev
|
||||
rx_elev = List.last(profile).elev
|
||||
tx_elev = hd(profile).elev + ant_ht_m
|
||||
rx_elev = List.last(profile).elev + ant_ht_m
|
||||
fwd_el = elevation_angle(tx_elev, rx_elev, dist_km * 1000)
|
||||
rev_el = elevation_angle(rx_elev, tx_elev, dist_km * 1000)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue