Skip to content

Rovis91/iono

Repository files navigation

IONO RF Coverage Explorer (HF & V/UHF)

Interactive RF coverage sandbox built with React, TypeScript and Vite. It visualizes link margin (dB) over a map for HF (3–30 MHz) and V/UHF (30–3000 MHz) using simplified, well‑documented propagation models.

Application screenshot


Goals

  • Educational RF tool: give operators and engineers an intuitive feel for how band, power, antennas, terrain class and environment affect coverage.
  • Single‑page demo: fast to run locally, easy to inspect on GitHub (no backend, all compute in the browser / a Web Worker).
  • LLM‑friendly models: the core HF and V/UHF equations and decision trees are spelled out in plain Markdown (doc.md, HF_EQUATIONS_GUIDE.md, visual.md) so they can be audited or re‑implemented.

What the app does

  • Map‑based RF coverage: click to place a transmitter and render a link‑margin heatmap (Viridis, [-10, +30] dB) around it.
  • Band‑aware UI:
    • HF: manual foF2 slider, NVIS toggle, ground class (sea / wet / dry).
    • V/UHF: environment presets (open, rural, urban, forest, water, mountain), k‑factor, optional foliage depth.
  • Propagation logic (high‑level):
    • HF (<30 MHz): simple hop model with MUF gate (f ≤ foF2·sec(α)), one‑hop sky‑wave / NVIS, or short‑range ground‑wave; otherwise the path is treated as blocked.
    • V/UHF (≥30 MHz): LOS vs NLOS path loss with a smooth handover at the radio horizon:
      • LOS: FSPL + two‑slope 2‑ray.
      • NLOS: Hata/COST‑231 in its valid domain (with frequency clamping) or a log‑distance fallback tuned by environment.
      • Optional foliage loss in forest.
  • Link budget: EIRP, thermal noise, sensitivity, received power, and margin are computed explicitly; only cells with power above a cutoff are painted to avoid a faint “wash” at extreme ranges.

For more detailed equations and validation notes, see doc.md (overall spec), hf_doc.md, HF_EQUATIONS_GUIDE.md, and visual.md.


Limits, assumptions, and non‑goals (V1)

  • No real terrain data:
    • No DEM / clutter model; the engine uses radio‑horizon geometry and median models only.
    • Diffraction and knife‑edge effects are not modeled; the DIFFRACTION mode is reserved for a future version.
  • Simplified ionosphere:
    • foF2 is a manual slider, not a geospatial / time‑varying model.
    • Fixed virtual F2 height, capped hop count, and a very simple absorption surrogate.
    • Multi‑hop sky‑wave and detailed day/night / seasonal behavior are intentionally out of scope.
  • Median‑case statistics:
    • V/UHF NLOS is median Hata / log‑distance; small‑scale fading, interference fringes and over‑water ripples are not shown.
    • Outputs are for intuition and relative comparisons, not for site‑survey‑grade engineering.
  • Single‑TX, low‑res grid:
    • One transmitter at a time; no interference / network simulation.
    • The grid is down‑sampled for speed; zoom changes spatial extent, not the color scale.

These constraints keep the codebase small and readable while still capturing the main behaviors of HF and V/UHF coverage.


Tech stack

  • Frontend: React 18 + TypeScript, Vite.
  • Map / UI: Leaflet + React‑Leaflet, Tailwind CSS, Lucide icons.
  • Compute: pure TypeScript in src/core and src/propagation, offloaded to a Web Worker (coverageWorker.ts) for the heavy per‑pixel calculations.

The project intentionally avoids extra dependencies beyond the React / mapping / styling toolchain.


Running locally

Prerequisites:

  • Node.js 18+ and npm.

Install dependencies:

npm install

Start the dev server:

npm run dev

Then open the printed local URL (Vite default is http://localhost:5173/).

Build for production:

npm run build

You can then serve the contents of the generated dist/ folder with any static file server (the built dist artifacts are intentionally not committed to keep this repo source‑only).


Repo layout (high level)

  • src/
    • core/: link budget, shared geometry and RF helpers.
    • propagation/: HF and V/UHF models and the propagation engine.
    • ui/: React components (MapView, ControlPanel, Legend).
    • workers/: coverage worker entry point.
  • Root Markdown docs:
    • doc.md: end‑to‑end spec for HF and V/UHF models and UI rules.
    • HF_EQUATIONS_GUIDE.md: more detailed HF theory and equations.
    • visual.md: visual QA expectations and known simplifications.

If you want to dive straight into the RF logic, start with src/propagation/hfModel.ts, src/propagation/vuhfModel.ts, and src/propagation/engine.ts.


License

This project is released under the MIT License. See LICENSE for details.

About

Radio wave propagation map simulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published