@mytec: iter4 ready for test

This commit is contained in:
2026-01-30 11:55:21 +02:00
parent 201aeeabd6
commit 641832bc7b
6 changed files with 100 additions and 6 deletions

View File

@@ -56,16 +56,24 @@ function calculatePointRSRP(site, point) {
// Link budget: RSRP = P_tx + G_tx - FSPL
var rsrp = site.power + site.gain - fspl;
// Apply sector antenna pattern loss
// Apply sector antenna directivity: hard cutoff + gradual pattern loss
if (site.antennaType === 'sector' && site.azimuth !== undefined) {
var bearing = calculateBearing(site.lat, site.lon, point.lat, point.lon);
var relativeAngle = Math.abs(bearing - site.azimuth);
var normalizedAngle =
relativeAngle > 180 ? 360 - relativeAngle : relativeAngle;
var beamwidth = site.beamwidth || 65;
// Hard cutoff: no signal outside beamwidth
if (normalizedAngle > beamwidth / 2) {
return -Infinity;
}
// Gradual 3GPP pattern loss within beamwidth
var patternLoss = calculateSectorPatternLoss(
normalizedAngle,
site.beamwidth || 65
beamwidth
);
rsrp -= patternLoss;
}