@mytec: iter4 ready for test
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user