Coverage Predictions

From Maria GDK Wiki
Revision as of 14:42, 17 June 2026 by Trm (talk | contribs) (propagation models)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Calculate Coverage

Coverage calculations are controlled by the interface IRadioCoverage in IMariaRadioPlanLayer.RadioCoverage

To create a coverage file, we need to define some parameters. The most important is the selection of propagation model.

The list of propagation models can be found like this:

_propagationModels = new ReadOnlyCollection<string>(_radioPlanLayer.RadioCoverage.RadioPropagationModelRepository.PropagationModels.Select(m => m.Name).ToList());

Settings for Coverage calculation used is defined by

record CoverageCalculationSettings(int resolution, int size, AreaShape calculationAreaShape, string propagationModel, RxHeight rxHeight, PartsOfCalculation partsToCalculate)

which is set RadioNet setting:

  • RadioNet.CoverageCalculationSettings

or as a general setting:

  • RadioPlanSettings.CoverageCalculationSettings

Which one to use is controlled by enum RadioPlanSettings.CoverageCalculationSettingsSource

 public enum CoverageCalculationSettingsSource
 {
     RadioPlanSettings,   // As defined in radio plan layer Settings
     RadioNet,            // Use Coverage calculation settings from the radio's radio net if defined
 }

Coverage calculation for a Radio is started with

Result<Guid> jobId = await _radioPlanLayer.RadioCoverage.StartCoverageCalculationForRadioAsync(radio);

If successful, jobId returns a Guid to identify the job. Otherwise, the result returns an error message. Progress can be checked by subscribing to the event RadioCoverage.CovDataUpdateProgress.

_radioPlanLayer.RadioCoverage.CovDataUpdateProgress += CoverageDataUpdateProgress;

...

private void CoverageDataUpdateProgress(object sender, CalculationJobStatus calculationJobStatus)
{
    if (calculationJobStatus.IsCompleted)
    {
        ProgressValue = 0;  // the clients progress indicator
    } 
    else
    {
        ProgressValue = calculationJobStatus.TotalPercentCompleted;
    }
}

Abort Coverage Calculations

Coverage calculations can be aborted for a specific job by RequestAbortCoverageDataJob(jobId),

or as a general abort request by RequestAbortCalculationJobsAsync()

Automatic Update

Changes to the Site or the Radio may invalidate the coverage data. This will apply to changes like:

  • Site position
  • PositionOffset of the Antenna
  • Frequency
  • Height of the Antenna

When such changes are detected, the current coverage data is invalidated. If a coverage plot for a Radio is visible, it will disappear if any of these properties are changes.

If RadioPlanSettings.AutomaticCoverageCalculation is true, a new coverage calculation will start automatically to create that valid coverage data. Progress can be detected by the RadioCoverage.CovDataUpdateProgress event.

When calculation is finsihed, the plot will reappear if it was visible before the invalidating change.

Other changes to a Radio that affects the coverage area will not cause invalidation of the coverage data, but will cause a rescale of the coverage area on-the-fly. Examples are:

  • TxPower
  • Loss
  • Antenna
  • Antenna Direction
  • Antenna Tilt

Propagation Models

5G_UHF+

A high-band empirical propagation model, derived from measurement data and tuned to a specific dataset or regulatory use.

Core characteristics

  • Type: Based on the empirical Okumura-Hata radiopropagation model
  • Uses DTM, Clutter and building height raster maps
  • Tuned for UHF, lower SHF ranges and land based predictions

When to use it

✅ Use when: Planning for cellular radio networks, e.g. 5G, and radio systems in the UHF range. Clutter and building height map data are available.

❌ Avoid when: Coverage area is mainly over water and if only Elevation map data is available

ITM (Longley–Rice / Irregular Terrain Model)

A general-purpose terrain-aware propagation model combining electromagnetic theory with empirical/statistical corrections.

Core characteristics

  • Frequency: ~20 MHz – 20 GHz
  • Type: Hybrid (physics + empirical)
  • Models LOS, diffraction, and scatter regimes

When to use it

✅ Use when: You need one model across wide frequency ranges. Clutter and building height map data are not available.

❌ Avoid when: Clutter and building height map data are available.

ITU‑R P.1546

An empirical, large-scale propagation model for point‑to‑area coverage prediction, based on measured field‑strength curves.

Core characteristics

  • Frequency: 30 MHz – 4 GHz
  • Type: Empirical (curve-based)
  • Prediction: Area coverage (not path-specific)

When to use it

✅ Use when: Coverage area of interest is mainly over water. You want ITU/regulatory-aligned results.

❌ Avoid when: Land based coverage.

MKE

A deterministic diffraction model using multiple knife-edge (Deygout) calculations to evaluate terrain obstruction loss.

Core characteristics

  • Type: Deterministic (geometry-based)
  • Explicitly models:
    • Terrain obstacles as knife-edges
    • Multi-obstacle diffraction chains
When to use it

✅ Use when: Working in VHF / lower UHF frequency range, or if clutter and building height map data are not available.

❌ Avoid when: Coverage is mainly over water. Frequencies above approx. 1 GHz.

Quick selection comparison

Model Type Best for Avoid when
P.1546 Empirical (area) Coverage over water Land based coverage
ITM Hybrid Wide frequency range, no clutter or building maps
5G_UHF+ Empirical (tuned) UHF/Lower SHF, clutter and building maps available Mainly over water, VHF range
Radix‑MKE Deterministic VHF/Lower UHF