# Nigeria Domestic Aviation Route Distances — Phase 3

This file documents the derivation of great-circle and ICAO uplifted distances for four domestic aviation routes used in NEFDB Phase 3.

## Methodology

1. Source authoritative airport coordinates (latitude/longitude, WGS-84) from [OurAirports](https://ourairports.com/).
2. Compute great-circle distance with the haversine formula on a spherical Earth of radius 6371.0 km.
3. Apply the ICAO standard 9% uplift factor to obtain the "flown stage length" used for fuel burn estimates.
4. Round uplifted kilometres to one decimal place.
5. Convert uplifted kilometres to nautical miles using 1 nm = 1.852 km, rounded to one decimal place.

## Coordinate Table

| IATA | ICAO | Airport Name | Latitude | Longitude | Source |
|---|---|---|---|---|---|
| LOS | DNMM | Murtala Muhammed International | 6.577370 | 3.321160 | https://ourairports.com/airports/DNMM/ |
| ABV | DNAA | Nnamdi Azikiwe International | 9.006790 | 7.263170 | https://ourairports.com/airports/DNAA/ |
| PHC | DNPO | Port Harcourt International | 5.015490 | 6.949590 | https://ourairports.com/airports/DNPO/ |
| KAN | DNKN | Mallam Aminu Kano International | 12.045613 | 8.523566 | https://ourairports.com/airports/DNKN/ |

## Distance Table

| Origin | Destination | Great-circle (km) | Uplift (%) | Uplifted (km) | Uplifted (nm) |
|---|---:|---:|---:|---:|---:|
| LOS | ABV | 511.42 | 9 | 557.4 | 301.0 |
| LOS | PHC | 437.35 | 9 | 476.7 | 257.4 |
| LOS | KAN | 833.86 | 9 | 908.9 | 490.8 |
| ABV | PHC | 445.16 | 9 | 485.2 | 262.0 |

Distances are symmetric; only one direction per route is listed.

## References

- ICAO Circular 303-AN/176, *Operational Opportunities to Minimize Fuel Use and Reduce Emissions* — 9% uplift of great-circle distance for fuel burn modelling.
- OurAirports airport data pages (accessed 2026-06-19).

## Reproducibility Note

```python
import math

def haversine_km(lat1, lon1, lat2, lon2):
    R = 6371.0
    phi1, phi2 = math.radians(lat1), math.radians(lat2)
    dphi = math.radians(lat2 - lat1)
    dlambda = math.radians(lon2 - lon1)
    a = math.sin(dphi/2)**2 + math.cos(phi1)*math.cos(phi2)*math.sin(dlambda/2)**2
    c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
    return R * c

gc = haversine_km(6.577370, 3.321160, 9.006790, 7.263170)
uplifted_km = round(gc * 1.09, 1)
uplifted_nm = round(uplifted_km / 1.852, 1)
print(gc, uplifted_km, uplifted_nm)
```
