Skip to the content.

Temperature Restrictions

Overview

Temperature restrictions account for both extreme heat and extreme cold conditions that affect aircraft performance, engine reliability, and pilot safety. These restrictions apply independently of wind and visibility restrictions.


Heat Index Restrictions

Heat index combines temperature and humidity to measure the apparent temperature and heat stress on pilots and aircraft systems.

Heat Index Calculation

The heat index is calculated using the formula:

function calculateHeatIndex(tempF, relativeHumidity) {
    if (tempF < 80) return tempF; // No heat index calculation needed below 80°F
    
    const T = tempF;
    const RH = relativeHumidity;
    
    // Rothfusz regression
    const HI = -42.379 + 2.04901523*T + 10.14333127*RH 
               - 0.22475541*T*RH - 0.00683783*T*T 
               - 0.05481717*RH*RH + 0.00122874*T*T*RH 
               + 0.00085282*T*RH*RH - 0.00000199*T*T*RH*RH;
    
    return HI;
}

Source: National Weather Service Rothfusz regression equation

Heat Index Thresholds

Heat Index (°F) Restriction Level Effect
< 95 None All operations normal
≥ 95 Diamond Solo Restricted Diamond aircraft solo flights restricted
≥ 100 Diamond Dual/Piper Solo Restricted Diamond dual instruction and Piper solo flights restricted
≥ 105 All Flights Restricted All flight operations suspended

Detailed Heat Index Restrictions

Heat Index ≥ 105°F: All Flights Restricted

Threshold: Heat Index ≥ 105°F
Effect: Triggers “All Flights Restricted” status
Display: “🌡️ Heat Index XXX°F”

Rationale:

Implementation:

if (heatIndex >= 105) {
    tempRestrictions.push(`🌡️ Heat Index ${heatIndex.toFixed(0)}°F`);
    status = 'all-restricted';
}

Heat Index ≥ 100°F: Diamond Aircraft Restricted

Threshold: Heat Index ≥ 100°F
Effect: Restricts Diamond aircraft operations
Display: “🌡️ Heat Index XXX°F - Diamond Restricted”

Rationale:

Note: This is an operational note and does not change the overall flight status level unless combined with other factors.


Heat Index ≥ 95°F: Diamond Solo Restricted

Threshold: Heat Index ≥ 95°F
Effect: Restricts Diamond solo flights
Display: Not prominently displayed (documented for reference)

Rationale:

Note: This restriction is tracked in the detailed heat index table but not prominently displayed in the flight status card unless ≥100°F.


Cold Temperature Restrictions

Cold temperatures affect engine starting, oil viscosity, battery performance, and aircraft systems.

Cold Temperature Thresholds

Temperature (°F) Restriction Level Effect
> 32 None Normal operations
< 32 Caution Avoid extended power-off operations
≤ 23 Limited Operations Preheat or recent flight required
≤ 14 Restricted Operations No solos or cross-countries
≤ 5 All Flights Restricted All flight operations suspended

Detailed Cold Temperature Restrictions

Temperature ≤ 5°F: All Flights Restricted

Threshold: Temperature ≤ 5°F
Effect: Triggers “All Flights Restricted” status
Display: “❄️ Temperature XX°F”

Rationale:

Implementation:

if (tempF <= 5) {
    tempRestrictions.push(`❄️ Temperature ${tempF.toFixed(0)}°F`);
    status = 'all-restricted';
}

Temperature ≤ 14°F: No Solos or Cross-Countries

Threshold: Temperature ≤ 14°F
Effect: Restricts solo flights and cross-country operations
Display: “❄️ Temperature XX°F - No solos/XC”

Rationale:

Note: Dual instruction flights may continue with proper cold weather procedures.


Temperature ≤ 23°F: Preheat or Recent Flight Required

Threshold: Temperature ≤ 23°F
Effect: Requires engine preheating or recent operation
Display: “❄️ Temperature XX°F - Preheat required”

Rationale:

Procedures:


Temperature < 32°F: Avoid Extended Power-Off Operations

Threshold: Temperature < 32°F (freezing)
Effect: Operational caution
Display: “❄️ Temperature XX°F - Avoid extended power-off”

Rationale:

Procedures:


Relative Humidity Calculation

Relative humidity is required for heat index calculation and is derived from temperature and dewpoint:

function calculateHumidity(tempF, dewpointF) {
    const T = tempF;
    const Td = dewpointF;
    
    // August-Roche-Magnus approximation
    const RH = 100 * (Math.exp((17.625 * Td) / (243.04 + Td)) / 
                      Math.exp((17.625 * T) / (243.04 + T)));
    
    return Math.min(RH, 100); // Cap at 100%
}

Temperature Data Sources

METAR Temperature Reporting

Temperature and dewpoint are reported in degrees Celsius in METAR:

Conversion to Fahrenheit

function toFahrenheit(celsius) {
    return (celsius * 9/5) + 32;
}

Implementation Details

Code Locations

Temperature restriction checks are performed in:

Display Format

Temperature restrictions use emoji indicators:

Combined Restrictions

Temperature restrictions combine with wind/visibility restrictions:

Example:

Private+ Only
Restricting factors: 🌬️ 22 knots, ❄️ Temperature 18°F - Preheat required

Testing Scenarios

Temperature scenarios are demonstrated in the demo page:

  1. Extreme Heat (Scenario 9): Heat Index 108°F → All Restricted
  2. Cold Weather with Winds (Scenario 10): 18°F with 22kt winds → Private+ Only (combined)
  3. Extreme Cold (Scenario 11): 2°F → All Restricted
  4. Heat Index Examples: Summer day with 95°F and 65% RH → Heat Index 108°F

Heat Index Reference Table

Temp (°F) RH 40% RH 50% RH 60% RH 70% RH 80%
80 80 81 81 82 83
85 85 86 87 88 90
90 91 92 94 96 98
95 97 99 102 105 109
100 104 107 111 116 121

Source: National Weather Service


Related Documentation: