Coverage Predictions: Difference between revisions

From Maria GDK Wiki
Jump to navigation Jump to search
(Created page with "Calculate coverage Coverage calculations are controlled via the interce 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()); Proper...")
 
(Abort Calc, Automatic Update)
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Calculate coverage
=== Calculate Coverage ===
Coverage calculations are controlled by the interface IRadioCoverage in [http://codedocs.maria.teleplanglobe.com/develop_gdk5/managed/class_t_p_g_1_1_g_d_k_1_1_maria_1_1_radio_plan_layer_1_1_radio_coverage.html IMariaRadioPlanLayer.RadioCoverage]


Coverage calculations are controlled via the interce IRadioCoverage in IMariaRadioPlanLayer.RadioCoverage
To create a coverage file, we need to define some parameters. The most important is the selection of propagation model.
 
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:
The list of propagation models can be found like this:
 
<syntaxhighlight lang="c#">
_propagationModels = new ReadOnlyCollection<string>(_radioPlanLayer.RadioCoverage.RadioPropagationModelRepository.PropagationModels.Select(m => m.Name).ToList());
_propagationModels = new ReadOnlyCollection<string>(_radioPlanLayer.RadioCoverage.RadioPropagationModelRepository.PropagationModels.Select(m => m.Name).ToList());
</syntaxhighlight>


Settings for Coverage calculation used is defined by
<syntaxhighlight lang="c#">
record CoverageCalculationSettings(int resolution, int size, AreaShape calculationAreaShape, string propagationModel, RxHeight rxHeight, PartsOfCalculation partsToCalculate)
</syntaxhighlight>


Properties for the Coverage calculation is stored in
which is set RadioNet setting:


record CoverageProperties(int Resolution, int Size, AreaShape CalculationAreaShape, string PropagationModel, RxHeight RxHeight);
*RadioNet.CoverageCalculationSettings


or as a general setting:


Coverage calculation is started with
*RadioPlanSettings.CoverageCalculationSettings


var jobId = await _radioPlanLayer.RadioCoverage.StartCoverageCalculationForRadio(radio, coverageProperties);
Which one to use is controlled by enum RadioPlanSettings.CoverageCalculationSettingsSource <syntaxhighlight lang="c#">
public enum CoverageCalculationSettingsSource
{
    RadioPlanSettings,  // As defined in radio plan layer Settings
    RadioNet,           // Use Coverage calculation settings from the radio's radio net if defined
}
</syntaxhighlight>


Coverage calculation for a Radio is started with
<syntaxhighlight lang="c#">
Result<Guid> jobId = await _radioPlanLayer.RadioCoverage.StartCoverageCalculationForRadioAsync(radio);
</syntaxhighlight>


If successfull, jobId returns a Guid identifying the job. Else the text string return error message. Progress can be checked with subscribing on the event RadioCoverage.CovDataUpdateProgress.
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.  


<syntaxhighlight lang="c#">
_radioPlanLayer.RadioCoverage.CovDataUpdateProgress += CoverageDataUpdateProgress;
_radioPlanLayer.RadioCoverage.CovDataUpdateProgress += CoverageDataUpdateProgress;


Line 37: Line 53:
     }
     }
}
}
</syntaxhighlight>
==== Abort Coverage Calculations ====
Coverage calculations can be aborted for a specific job by [http://codedocs.maria.teleplanglobe.com/develop_gdk5/managed/class_t_p_g_1_1_g_d_k_1_1_maria_1_1_radio_plan_layer_1_1_radio_coverage.html#a9ea720cd6b769104d4a253261395541f RequestAbortCoverageDataJob(jobId)],
or as a general abort request by [http://codedocs.maria.teleplanglobe.com/develop_gdk5/managed/class_t_p_g_1_1_g_d_k_1_1_maria_1_1_radio_plan_layer_1_1_radio_coverage.html#af19d26f567e81ac2930059be18eb5e1a 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


Coverage plotting
[[Category:RadioPlan]]

Latest revision as of 14:55, 21 May 2026

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