What is a PAPI (Precision Approach Path Indicator)?
A Precision Approach Path Indicator (PAPI) is a visual aid located beside the runway that provides pilots with guidance information to help them acquire and maintain the correct approach (glideslope) to a runway. It typically consists of four light units in a single row.
How to Read PAPI Lights
4 White Lights: Too high (more than 3.5 degrees for a 3-degree slope).
3 White, 1 Red: Slightly high (3.2 degrees).
2 White, 2 Red: On the correct glide path (Exactly 3.0 degrees).
1 White, 3 Red: Slightly low (2.8 degrees).
4 Red Lights: Too low (less than 2.5 degrees).
PAPI Calculation Formula
To calculate the ideal height above the runway elevation at a specific distance, the following trigonometric formula is used:
Height = Distance × tan(Glide Path Angle)
In aviation, a common rule of thumb for a 3-degree glideslope is the 3-to-1 rule: for every 1 nautical mile from the touchdown zone, you should be approximately 318 feet Above Ground Level (AGL).
Realistic Calculation Example
If you are 2 Nautical Miles (12,152 feet) from the PAPI units and the glide path is set to the standard 3 degrees:
Distance: 12,152 ft
Angle: 3.0°
Calculation: 12,152 × tan(3°) = 12,152 × 0.0524
Target Height: 637 feet AGL
Why Accurate PAPI Calculations Matter
Understanding the geometry of the PAPI system is critical for night landings and instrument approach transitions. While the lights provide visual feedback, pilots use these calculations to cross-check their altimeters against their distance (DME or GPS) to ensure they are not descending prematurely into obstacles or terrain.
function calculatePapiHeight() {
var angle = parseFloat(document.getElementById("glideAngle").value);
var distance = parseFloat(document.getElementById("distanceFromPapi").value);
var unit = document.getElementById("unitType").value;
var resultDiv = document.getElementById("papiOutput");
var resultText = document.getElementById("heightResult");
if (isNaN(angle) || isNaN(distance) || angle <= 0 || distance <= 0) {
alert("Please enter valid positive numbers for angle and distance.");
return;
}
var distanceInCalculationUnits = distance;
var unitLabel = "Feet";
if (unit === "nm") {
// Convert NM to Feet for calculation
distanceInCalculationUnits = distance * 6076.12;
unitLabel = "Feet";
} else if (unit === "meters") {
unitLabel = "Meters";
}
// Convert angle to radians
var radians = angle * (Math.PI / 180);
// Calculate Height using Tangent
var height = Math.tan(radians) * distanceInCalculationUnits;
var finalResult = "";
if (unit === "nm") {
finalResult = "At " + distance + " Nautical Miles from the PAPI, your ideal target height is " + height.toFixed(0) + " Feet AGL.";
} else {
finalResult = "At " + distance + " " + unitLabel + " from the PAPI, your ideal target height is " + height.toFixed(1) + " " + unitLabel + " AGL.";
}
resultText.innerHTML = finalResult;
resultDiv.style.display = "block";
}