Skip to content

Commit cc887eb

Browse files
committed
Fix NEC takeoff analysis for 0.43.0
1 parent 6a7d945 commit cc887eb

32 files changed

Lines changed: 611 additions & 54 deletions

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,9 @@ confirmation.
4949
replay, versioned provenance, blocked validation, and separate NEC,
5050
observed-coverage, and propagation-normalized layers;
5151
- built-in NEC2 wire-modeling workbench with five templates, validation,
52-
3D geometry, impedance/current/pattern results, reproducible baselines, and
53-
an optional separately installed OpenNEC calculation process;
52+
3D geometry, impedance/current/pattern results, explicit take-off elevation,
53+
practical ionospheric-hop geometry, reproducible baselines, and an optional
54+
separately installed OpenNEC calculation process;
5455
- ADIF/ADI and CSV import, plus CSV export;
5556
- local SQLite storage and diagnostic export;
5657
- English and Czech application UI;

docs/RELEASE_NOTES_0.43.0.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Antenna Pattern Lab 0.43.0
2+
3+
## NEC candidate-grid reliability
4+
5+
- Fixes assisted height/ground grids failing before OpenNEC with an ASCII
6+
encoding error when the generated candidate name contained `·`, `Δ`, Czech
7+
text, or another Unicode character.
8+
- Stores the model name in the ASCII NEC deck as an escaped `CM NAME-JSON`
9+
comment. Import restores the exact Unicode value, so the supported deck
10+
round trip and model SHA-256 remain lossless.
11+
- Verifies the complete Yagi candidate path against standalone OpenNEC 2.2.0.
12+
13+
## Clear take-off angle and practical interpretation
14+
15+
- Converts NEC `theta` (measured from zenith) to elevation above the horizon
16+
(`90° − theta`) and presents the vertical cut on an explicit `0–90°` axis.
17+
- Adds a horizon/ground plane, azimuth references, and a marked peak ray to the
18+
rotatable 3D far-field surface.
19+
- Adds a CZE/ENG practical panel with peak take-off elevation and azimuth,
20+
sampled upper-hemisphere power shares, radio horizon, and spherical-Earth
21+
one-hop geometry for representative E (110 km) and F2 (300 km) virtual
22+
heights.
23+
- Clearly separates antenna-pattern geometry from propagation prediction:
24+
current MUF/foF2, absorption, refraction, terrain, polarization, link budget,
25+
and ground-wave coverage are not inferred.
26+
27+
## Interface and verification
28+
29+
- Prevents the workbench toolbar and tabs from clipping at the minimum width,
30+
including native Classic.
31+
- Validates Monitor Light, Monitor Dark, and Classic in Czech and English at
32+
1180×720, 1366×850, and 1920×1080, plus 125%, 150%, and 200% scaling.
33+
- Includes focused regression tests for Unicode NEC decks, spherical
34+
ionospheric-hop geometry, radio horizon, pattern-power integration, the
35+
corrected elevation axis, and the candidate grid.
36+
37+
OpenNEC remains an optional, separately installed MIT-licensed executable.
38+
Antenna Pattern Lab does not bundle or link the solver.

docs/USER_GUIDE.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,27 @@ the temporary directory. The stored result contains the exact model revision,
207207
engine path/version, UTC time, command parameters, input/output SHA-256, and
208208
normal NEC output. The result tabs show R/X and 50 Ω SWR over frequency, wire
209209
currents, peak and front/back values, selectable absolute/relative azimuth and
210-
elevation cuts, and a mouse-rotatable 3D far-field surface.
210+
elevation cuts, and a mouse-rotatable 3D far-field surface. NEC reports
211+
`theta` from the zenith; the workbench converts it to the operational take-off
212+
elevation `90° − theta`, where `` is the horizon and `90°` is straight up.
213+
The 3D view draws the horizon plane, azimuth references, and the peak ray so a
214+
low or high lobe is not inferred from the viewing perspective.
215+
216+
**Practical interpretation** reports the peak elevation/azimuth, approximate
217+
relative power shares in the `0–10°`, `10–30°`, and `30–90°` upper-hemisphere
218+
bands, and the radio horizon from the highest modeled point. It also gives
219+
spherical-Earth one-hop geometry for assumed virtual heights of 110 km
220+
(representative E region) and 300 km (representative F2 peak). The layer ranges
221+
are consistent with the [NOAA ionospheric-region
222+
definitions](https://www.ngdc.noaa.gov/stp/IONO/ionostru.html); this simple
223+
geometry is deliberately not an [ITU-R P.533 HF propagation
224+
prediction](https://www.itu.int/rec/R-REC-P.533/en).
225+
226+
The displayed hop distance does **not** establish that the selected frequency
227+
will be supported. It excludes current foF2/MUF, D-region absorption, refraction
228+
details, terrain, receiver height, polarization mismatch, and link budget.
229+
The NEC far-field surface also does not calculate ground-wave coverage, which
230+
depends on polarization, frequency, ground conductivity, terrain, and loss.
211231

212232
Saved independent baselines automatically appear in **Propagation
213233
Intelligence → Three layers**, next to raw observed coverage and the separate
@@ -216,7 +236,7 @@ height/ground combinations separately. Orientation selection uses only the
216236
training time blocks and always reports error on later, previously unused
217237
campaign blocks; it never replaces the original independent baseline.
218238

219-
Version 0.42.0 intentionally supports a documented NEC2 subset: `GW`, `GE`,
239+
Version 0.43.0 intentionally supports a documented NEC2 subset: `GW`, `GE`,
220240
`GN`, voltage `EX 0`, series-RLC `LD 0`, linear `FR`, and the generated `RP`.
221241
Unsupported cards are refused instead of silently discarded. Patches,
222242
buildings, volumetric solids, a real coax/feed-line model, full terrain,

docs/ui-audit.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,43 @@ that contain radiation data, applies equal physical axis ranges, formats table
1616
coordinates to six significant digits, reserves two visible wire rows at the
1717
minimum supported height, and localizes/resizes the candidate table.
1818

19+
## 0.43 NEC take-off interpretation and candidate-grid correction
20+
21+
Two operator captures from 0.42.0 established the regression baseline: a Yagi
22+
candidate grid stopped with an ASCII encoding exception, and the 3D far-field
23+
surface did not expose the horizon or explain that NEC theta is measured from
24+
zenith. The source failure was reproduced with the exact `·`/`Δ` candidate
25+
name, then exercised end to end with standalone OpenNEC 2.2.0 after the fix.
26+
The supplied before states are retained as
27+
`dialog-antenna-modeling-0.42-candidate-ascii-error-cze-dark.png` and
28+
`dialog-antenna-modeling-0.42-radiation-ambiguous-elevation-cze-dark.png`
29+
under [`docs/ui/before`](ui/before/).
30+
31+
The first visual pass of the real revised dialog found and corrected:
32+
33+
1. the practical interpretation form forced long Czech and English use/ground
34+
wave explanations into an unreadably narrow value column;
35+
2. the horizon caption collided with the 270° reference while the 3D axes used
36+
too little of the available plotting area;
37+
3. the single-row English toolbar clipped Create/Calculate controls in native
38+
Classic at 1180×720;
39+
4. the peak direction value clipped its `dBi` suffix at the same breakpoint.
40+
41+
The final dialog uses a two-row toolbar, non-scrolling four-tab bar, full-width
42+
interpretation paragraphs, a larger equal-scale upper-hemisphere surface,
43+
horizon plane, four azimuth references, and a marked peak ray. The 2D vertical
44+
cut is Cartesian with an explicit `0–90° elevation above horizon` axis and a
45+
peak guide. The information panel states that its E/F2 distances are spherical
46+
geometry for assumed virtual heights—not MUF/foF2, absorption, terrain,
47+
ground-wave, or link-budget predictions.
48+
49+
Final evidence under [`docs/ui/after`](ui/after/) covers Czech Monitor Light at
50+
1180×720, English Monitor Dark at 1366×850 and 1920×1080, English Classic at
51+
1180×720, the corrected 2D results, and the populated candidate table. The same
52+
seven states were rendered and inspected in isolated processes at 125%, 150%,
53+
and 200% Qt scaling. No obvious P0/P1 clipping, overlap, theme-parity, or chart
54+
meaning issue remains.
55+
1956
## Evidence and method
2057

2158
The current source was rendered with an isolated temporary SQLite database and
959 Bytes
Loading
5.57 KB
Loading
182 KB
Loading
177 KB
Loading
216 KB
Loading
86.3 KB
Loading

0 commit comments

Comments
 (0)