Het artikel behandelt de technische mogelijkheden om kerosineverbruik in de luchtvaart te verminderen door vliegroutes aan te passen aan windomstandigheden en vliegtuigprestaties. Hierbij wordt gebruikgemaakt van een open-source stack bestaande uit Scikit-decide (een framework voor reinforcement learning en planning) en OpenAP (een model voor vliegtuigprestaties ontwikkeld door Dr. Junzi Sun van de TU Delft).
De auteur beschrijft de gebruikte hardware (een high-end AMD Ryzen 9 9950X workstation) en de software-omgeving, waaronder Python 3.12 en DuckDB voor data-analyse. Het OpenAP-model biedt uitgebreide datasets van diverse vliegtuigtypen en motoren, evenals wereldwijde luchthaven- en navigatiedata.
Via verschillende casestudies wordt aangetoond dat route-optimalisatie significant effect heeft:
- Toulouse naar Berlijn/Warschau: Een vlucht naar Warschau verbruikte aanzienlijk minder brandstof dan een vlucht naar Berlijn, ondanks de grotere afstand, dankzij een efficiëntere klim naar een hogere kruishoogte.
- Airbus A320 vs Boeing 737: Een vergelijking op het traject Amsterdam-Frankfurt laat subtiele verschillen zien in brandstofverbruik en vliegtijd, waarbij ook rekening is gehouden met de impact van condenssporen (contrails).
Het besparen van kerosine
Bedrijven zoals Jeppesen bieden oplossingen in deze ruimte, maar Scikit-decide, samen met een brandstofverbruiksmodel voor narrow- en wide-body vliegtuigen (ontwikkeld door een professor aan de TU Delft) en windgegevens van NOAA, biedt een open-source alternatief.
Scikit-decide is al zes jaar in ontwikkeling. Het is een framework voor reinforcement learning, geautomatiseerde planning en scheduling. Het project kan vliegroutes optimaliseren, personeelsroosters van luchtvaartmaatschappijen reorganiseren en paden voor droneswarms berekenen.
OpenAP is een model en toolkit voor vliegtuigprestaties, ontwikkeld door Dr. Junzi Sun. Dr. Sun heeft een PhD in luchtverkeersbeheer en istenure-assistent-professor aan de TU Delft in Nederland.
De solver voor optimale vliegroutes van Scikit-decide kan worden geconfigureerd om verschillende brandstofverbruiksmodellen te gebruiken. In dit artikel worden twee vliegroutes vergeleken met gebruik van de Airbus A320 en het brandstofverbruiksmodel van OpenAP.
Werkstation
Voor de berekeningen wordt gebruikgemaakt van de volgende hardware en software:
- CPU: 5.7 GHz AMD Ryzen 9 9950X (16 cores, 32 threads; 1.2 MB L1, 16 MB L2, 64 MB L3 cache) met vloeistofkoeling in een Cooler Master HAF 700 behuizing.
- RAM: 96 GB DDR5 (4.800 MT/s).
- Opslag: Crucial T700 4 TB NVMe M.2 SSD (leessnelheid tot 12.400 MB/s) met heatsink.
- Moederbord & Voeding: ASRock X870E Nova 90 met een 1.200-watt volledig modulaire Corsair voeding.
- OS: Ubuntu 24 LTS via Microsoft's Ubuntu for Windows op Windows 11 Pro. (Keuze voor Windows vanwege betere driverondersteuning voor de Nvidia GTX 1080 GPU en native ondersteuning voor ArcGIS Pro).
Installatie van vereisten
Er wordt gebruikgemaakt van Python 3.12 en jq.
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt update
$ sudo apt install jq python3-pip python3.12-venv
Vervolgens wordt een Python Virtual Environment ingericht om scikit-decide, het OpenAP-model en opentop (een toolkit voor vluchttrajecten, eveneens ontwikkeld door Dr. Sun) te installeren:
$ python3 -m venv ~/.flight_planning
$ source ~/.flight_planning/bin/activate
$ pip install 'scikit-decide[all]' 'openap[all]' opentop
Voor de data-analyse wordt DuckDB gebruikt met extensies voor H3, JSON, Lindel, Parquet en Spatial:
$ cd ~
$ wget -c https://github.com/duckdb/duckdb/releases/download/v1.5.4/duckdb_cli-linux-amd64.zip
$ unzip -j duckdb_cli-linux-amd64.zip
$ chmod +x duckdb
$ ~/duckdb
INSTALL h3 FROM community;
INSTALL lindel FROM community;
INSTALL json;
INSTALL parquet;
INSTALL spatial;
De kaarten in dit artikel zijn gemaakt met QGIS versie 4.2.1. Grensgegevens en plaatsnamen zijn afkomstig van Natural Earth; maritieme grenzen van Marine Regions.
Vliegtuigtypen in OpenAP
De OpenAP-repository bevat een uitgebreide dataset van verschillende vliegtuigen. Een analyse van de fabrikanten in de dataset laat het volgende zien:
- Boeing: 17
- Airbus: 13
- Embraer: 5
- Gulfstream: 1
- Cessna: 1
Voorbeeld: Airbus A380-800
De eigenschappen van de Airbus A380-800 in de dataset omvatten onder andere:
- MTOW (Maximum Take-Off Weight): 560.000 kg
- MLW (Maximum Landing Weight): 386.000 kg
- OEW (Operating Empty Weight): 277.000 kg
- Ceiling (Maximum vlieghoogte): 13.100 m
- Passagierscapaciteit: Maximaal 853, gemiddeld 620, minimaal 410.
Ook zijn er specifieke sleepcoëfficiënten (drag coefficients) beschikbaar voor zowel de 'clean' configuratie als bij gebruik van flaps.
Vliegtuigmotoren
De dataset bevat 427 motoren. De meest vertegenwoordigde fabrikanten zijn:
- GE Aircraft Engines (108)
- CFM International (94)
- Pratt & Whitney (85)
- Rolls-Royce plc (62)
De motoren zijn onderverdeeld in types:
- TF (Turbofan): 322
- MTF (Mixed-flow Turbofan): 98
- TP (Turboprop): 5
- PS (Piston): 1
De GE90-115B staat bovenaan de lijst qua maximale stuwkracht (max\_thrust: 513.900).
Luchthavens en Navigatie
De toolkit bevat gegevens van bijna 14.000 luchthavens, verdeeld over 236 landen. De landen met de meeste luchthavens in de dataset zijn Brazilië (BR), de Verenigde Staten (US) en Australië (AU). Daarnaast bevat de dataset navigatie-waypoints (fix.dat) en navigatiehulpmiddelen (nav.dat), zoals VOR-DME en NDB stations.
Casestudy: Toulouse naar Berlijn
Er is een optimale vliegroute gezocht van Toulouse-Blagnac Airport (LFBO / TLS) naar Berlin Brandenburg Airport (EDDB / BER) met een Airbus A320.
Bij het uitvoeren van de solver worden GRB2-bestanden met weergegevens van NOAA gedownload als deze nog niet aanwezig zijn. De solver gebruikt een A*-algoritme waarbij de kostenfunctie is ingesteld op brandstofverbruik (costfunction = "fuel") en de heuristiek op lazyfuel.
Resultaten van de solver:
- Berekeningstijd: 0,28 seconden.
- Aantal stappen: 19.
- Totale vliegtijd: 7666,28 seconden.
- Totaal brandstofverbruik: 5855,09 kg.
De vluchttrajecten tonen een klimfase tot ongeveer 30.000 voet, een kruisvluchtfase (cruise) op 30.000 tot 32.000 voet, gevolgd door een daling (descent).
Casestudy: Toulouse naar Warschau
Vervolgens is een route gezocht van Toulouse naar Warsaw Chopin Airport (EPWA / WAW). In dit scenario is het initiële doel voor de vlieghoogte veel hoger ingesteld.
Resultaten:
- Berekeningstijd: 29,45 seconden.
- Aantal stappen: 14.
- Totale vliegtijd: 6153,66 seconden.
- Totaal brandstofverbruik: 5600,17 kg.
Analyse: Hoewel Warschau 500 km verder weg ligt dan Berlijn, zorgde de snellere klim naar een hogere kruishoogte onder de gegeven windomstandigheden voor een directere route. De vlucht naar Warschau was bijna 45 minuten sneller en verbruikte slechts 76% van de brandstof die nodig was voor de vlucht naar Berlijn.
Vergelijking: Airbus A320 vs Boeing 737
Met behulp van OpenTop en OpenAP is het traject tussen Amsterdam Schiphol (EHAM) en Frankfurt (EDDF) vergeleken. Hierbij is een kostenbestand gebruikt om rekening te houden met contrails (condenssporen). De optimalisatiefunctie was: 0.3 brandstof + 0.7 grid_kosten.
| Parameter | Airbus A320 | Boeing 737 |
| Status | Slaagde | Slaagde |
| Brandstofverbruik | 1625,6 kg | 1622,1 kg |
| Maximale hoogte | 19.891 ft | 21.968 ft |
| Vliegtijd | 35,8 min | 39,2 min |
| Iteraties | 179 | 141 |
| Reken-tijd (wall time) | 12,2 s | 9,9 s |
Het besparen van kerosine
Bedrijven zoals Jeppesen bieden oplossingen in deze ruimte, maar Scikit-decide, samen met een brandstofverbruiksmodel voor narrow- en wide-body vliegtuigen (ontwikkeld door een professor aan de TU Delft) en windgegevens van NOAA, biedt een open-source alternatief.
Scikit-decide is al zes jaar in ontwikkeling. Het is een framework voor reinforcement learning, geautomatiseerde planning en scheduling. Het project kan vliegroutes optimaliseren, personeelsroosters van luchtvaartmaatschappijen reorganiseren en paden voor droneswarms berekenen.
OpenAP is een model en toolkit voor vliegtuigprestaties, ontwikkeld door Dr. Junzi Sun. Dr. Sun heeft een PhD in luchtverkeersbeheer en istenure-assistent-professor aan de TU Delft in Nederland.
De solver voor optimale vliegroutes van Scikit-decide kan worden geconfigureerd om verschillende brandstofverbruiksmodellen te gebruiken. In dit artikel worden twee vliegroutes vergeleken met gebruik van de Airbus A320 en het brandstofverbruiksmodel van OpenAP.
Werkstation
Voor de berekeningen wordt gebruikgemaakt van de volgende hardware en software:
- CPU: 5.7 GHz AMD Ryzen 9 9950X (16 cores, 32 threads; 1.2 MB L1, 16 MB L2, 64 MB L3 cache) met vloeistofkoeling in een Cooler Master HAF 700 behuizing.
- RAM: 96 GB DDR5 (4.800 MT/s).
- Opslag: Crucial T700 4 TB NVMe M.2 SSD (leessnelheid tot 12.400 MB/s) met heatsink.
- Moederbord & Voeding: ASRock X870E Nova 90 met een 1.200-watt volledig modulaire Corsair voeding.
- OS: Ubuntu 24 LTS via Microsoft's Ubuntu for Windows op Windows 11 Pro. (Keuze voor Windows vanwege betere driverondersteuning voor de Nvidia GTX 1080 GPU en native ondersteuning voor ArcGIS Pro).
Installatie van vereisten
Er wordt gebruikgemaakt van Python 3.12 en jq.
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt update
$ sudo apt install jq python3-pip python3.12-venv
Vervolgens wordt een Python Virtual Environment ingericht om scikit-decide, het OpenAP-model en opentop (een toolkit voor vluchttrajecten, eveneens ontwikkeld door Dr. Sun) te installeren:
$ python3 -m venv ~/.flight_planning
$ source ~/.flight_planning/bin/activate
$ pip install 'scikit-decide[all]' 'openap[all]' opentop
Voor de data-analyse wordt DuckDB gebruikt met extensies voor H3, JSON, Lindel, Parquet en Spatial:
$ cd ~
$ wget -c https://github.com/duckdb/duckdb/releases/download/v1.5.4/duckdb_cli-linux-amd64.zip
$ unzip -j duckdb_cli-linux-amd64.zip
$ chmod +x duckdb
$ ~/duckdb
INSTALL h3 FROM community;
INSTALL lindel FROM community;
INSTALL json;
INSTALL parquet;
INSTALL spatial;
De kaarten in dit artikel zijn gemaakt met QGIS versie 4.2.1. Grensgegevens en plaatsnamen zijn afkomstig van Natural Earth; maritieme grenzen van Marine Regions.
Vliegtuigtypen in OpenAP
De OpenAP-repository bevat een uitgebreide dataset van verschillende vliegtuigen. Een analyse van de fabrikanten in de dataset laat het volgende zien:
- Boeing: 17
- Airbus: 13
- Embraer: 5
- Gulfstream: 1
- Cessna: 1
Voorbeeld: Airbus A380-800
De eigenschappen van de Airbus A380-800 in de dataset omvatten onder andere:
- MTOW (Maximum Take-Off Weight): 560.000 kg
- MLW (Maximum Landing Weight): 386.000 kg
- OEW (Operating Empty Weight): 277.000 kg
- Ceiling (Maximum vlieghoogte): 13.100 m
- Passagierscapaciteit: Maximaal 853, gemiddeld 620, minimaal 410.
Ook zijn er specifieke sleepcoëfficiënten (drag coefficients) beschikbaar voor zowel de 'clean' configuratie als bij gebruik van flaps.
Vliegtuigmotoren
De dataset bevat 427 motoren. De meest vertegenwoordigde fabrikanten zijn:
- GE Aircraft Engines (108)
- CFM International (94)
- Pratt & Whitney (85)
- Rolls-Royce plc (62)
De motoren zijn onderverdeeld in types:
- TF (Turbofan): 322
- MTF (Mixed-flow Turbofan): 98
- TP (Turboprop): 5
- PS (Piston): 1
De GE90-115B staat bovenaan de lijst qua maximale stuwkracht (max\_thrust: 513.900).
Luchthavens en Navigatie
De toolkit bevat gegevens van bijna 14.000 luchthavens, verdeeld over 236 landen. De landen met de meeste luchthavens in de dataset zijn Brazilië (BR), de Verenigde Staten (US) en Australië (AU). Daarnaast bevat de dataset navigatie-waypoints (fix.dat) en navigatiehulpmiddelen (nav.dat), zoals VOR-DME en NDB stations.
Casestudy: Toulouse naar Berlijn
Er is een optimale vliegroute gezocht van Toulouse-Blagnac Airport (LFBO / TLS) naar Berlin Brandenburg Airport (EDDB / BER) met een Airbus A320.
Bij het uitvoeren van de solver worden GRB2-bestanden met weergegevens van NOAA gedownload als deze nog niet aanwezig zijn. De solver gebruikt een A*-algoritme waarbij de kostenfunctie is ingesteld op brandstofverbruik (costfunction = "fuel") en de heuristiek op lazyfuel.
Resultaten van de solver:
- Berekeningstijd: 0,28 seconden.
- Aantal stappen: 19.
- Totale vliegtijd: 7666,28 seconden.
- Totaal brandstofverbruik: 5855,09 kg.
De vluchttrajecten tonen een klimfase tot ongeveer 30.000 voet, een kruisvluchtfase (cruise) op 30.000 tot 32.000 voet, gevolgd door een daling (descent).
Casestudy: Toulouse naar Warschau
Vervolgens is een route gezocht van Toulouse naar Warsaw Chopin Airport (EPWA / WAW). In dit scenario is het initiële doel voor de vlieghoogte veel hoger ingesteld.
Resultaten:
- Berekeningstijd: 29,45 seconden.
- Aantal stappen: 14.
- Totale vliegtijd: 6153,66 seconden.
- Totaal brandstofverbruik: 5600,17 kg.
Analyse: Hoewel Warschau 500 km verder weg ligt dan Berlijn, zorgde de snellere klim naar een hogere kruishoogte onder de gegeven windomstandigheden voor een directere route. De vlucht naar Warschau was bijna 45 minuten sneller en verbruikte slechts 76% van de brandstof die nodig was voor de vlucht naar Berlijn.
Vergelijking: Airbus A320 vs Boeing 737
Met behulp van OpenTop en OpenAP is het traject tussen Amsterdam Schiphol (EHAM) en Frankfurt (EDDF) vergeleken. Hierbij is een kostenbestand gebruikt om rekening te houden met contrails (condenssporen). De optimalisatiefunctie was: 0.3 brandstof + 0.7 grid_kosten.
| Parameter | Airbus A320 | Boeing 737 |
| Status | Slaagde | Slaagde |
| Brandstofverbruik | 1625,6 kg | 1622,1 kg |
| Maximale hoogte | 19.891 ft | 21.968 ft |
| Vliegtijd | 35,8 min | 39,2 min |
| Iteraties | 179 | 141 |
| Reken-tijd (wall time) | 12,2 s | 9,9 s |