GitHub - bartvm/flight-emissions: Implementation of different flight emission calculation methodologies in Python · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
bartvm
flight-emissions
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>16 Commits<br>16 Commits
data
data
ghgc
ghgc
scripts
scripts
tests
tests
.gitignore
.gitignore
LICENSE
LICENSE
README.md
README.md
pyproject.toml
pyproject.toml
View all files
Repository files navigation
Flight emissions calculator
This repository contains re-implementations of methods used to calculate the greenhouse gas (GHG) emissions of a single flight and/or a single seat on a flight. There are a lot of different ways of doing this.
Warning<br>This code was written several years ago and is provided as-is, without any guarantees of correctness or fitness for any purpose. Some of the bundled datasets (e.g., EUROCONTROL's small emitters tool data, ICAO fuel burn tables) are a few years old and may no longer reflect the latest fleet or emission factors. The data loaders in ghgc/methods/ and ghgc/airports.py document where each dataset comes from, so they should be relatively easy to refresh with newer releases if needed.
Usage
To estimate the footprint of a single passenger on a flight, the Travel CO2 method only needs the origin, destination, seating class, and whether the flight is scheduled or chartered:
from ghgc.aircraft import Class<br>from ghgc.airports import load_airports<br>from ghgc.flights import Flight, Service<br>from ghgc.methods.travelco2 import air
airports = {airport.iata_code: airport for airport in load_airports()}
flight = Flight(<br>origin=airports["AMS"],<br>destination=airports["SFO"],<br>class_=Class.ECONOMY,<br>service=Service.SCHEDULED,
co2e = air(flight)<br>print(co2e.to("kg")) # 1173.98 kilogram
Flight, Aircraft, and Airport are plain dataclasses, so they can be constructed directly without loading any of the bundled datasets. Quantities are returned as pint Quantity objects, which can be converted to other units (e.g., .to("kgCO2e")).
Methods that take the specific aircraft and its seating layout into account, such as ICAO's, can give a more accurate estimate at the cost of needing more information:
from ghgc.aircraft import Aircraft, Class<br>from ghgc.methods.icao import icao_pax
flight.aircraft = Aircraft(<br>name="Boeing 787-9",<br>iata_code="789",<br>type_=Aircraft.Type.WIDE_BODY,<br>seating={Class.ECONOMY: 250, Class.PREMIUM_ECONOMY: 30, Class.BUSINESS: 30},
co2e = icao_pax(flight)<br>print(co2e.to("kg")) # 438.56 kilogram
Note how much these numbers can differ: the Travel CO2 estimate above is roughly 2.7x higher than the ICAO one, mostly because it adds well-to-tank emissions and a non-CO₂ multiplier for effects like contrails, while the ICAO method here only accounts for the CO₂ from fuel burnt. Always check what a calculator does and doesn't include before comparing numbers between methods.
Supported methods
Methods for apportioning a flight's emissions to a single passenger:
UK's GHG reporting (ghgc.methods.uk_ghg)
Google's Travel Impact Model (ghgc.methods.google)
IATA's RP 1726 methodology (ghgc.methods.iata)
ICAO's methodology (ghgc.methods.icao)
Travel CO2's methodology (ghgc.methods.travelco2)
Methods for estimating the fuel burn and CO₂ emissions of a flight itself, used as a building block by some of the methods above:
EUROCONTROL's small emitters tool (ghgc.methods.eurocontrol)
The Tier 3A method from the EEA/EMEP air pollutant emission inventory guidebook (ghgc.methods.emep_eea)
Background
Flight emissions
Calculating the emissions of a single flight usually starts with a bottom-up approach. Tools such as EUROCONTROL's Advanced Emission Model (AEM) or Piano-X take in details such as the engines, airframe, flight trajectory, taxi times, atmosphere, etc. and are able to output an accurate estimate of the amount of fuel burnt and compounds emitted.
In turn, these tools are based on datasets such as EUROCONTROL's Base of...