# This YAML file holds some of the content of the website, for convenience.
# Learn YAML, it's worth it: http://sweetohm.net/article/introduction-yaml.html
# /!. IF YOU BREAK THIS FILE YOU BREAK THE WEBSITE. TREAD CAREFULLY.
# Metadata about this website
meta:
title: Travel Carbon Footprint Calculator
description: A travel carbon footprint calculator for researchers.
authors:
- name: Didier Barret
email: dbarret@irap.omp.eu
role: Principal Investigator
- name: Antoine Goutenoir
email: antoine@goutenoir.com
role: Software Ninja
- name: Jean-Michel Glorian
email: Jean-Michel.Glorian@irap.omp.eu
role: Benevolent Wizard
# Aka. Laws
models:
- name: Atmosfair (RFI=3 for altitude > 9 km)
# Slugged version of the display name above
# Only lowercase alphanumeric, starting with a letter, using - as liaison
# In other words, MUST match ^[a-z]([a-z0-9-]*[a-z0-9])?$ eg: icao-with-rfi
# MUST be unique, two models MUST NOT have the same slug.
slug: atmosfair-rfi
# There MUST exist a python file named like this in `flaskr/laws`
# And it MUST contain a class named EmissionModel
# Please keep this lowercased, letters-only (or I will breathe fire)
file: travel_emission_lerp_fit
# Color MUST be in the hex form, without alpha
color: "#9933ff"
# Whether this model is selected by default in the list.
selected: true
# The configuration that will be fed to the model.
# May be anything, really. Go bonkers!
config:
plane_emission_linear_fit:
# A coefficient applied to the distance
connecting_flights_scale: 1.05
# Radiative Forcing Index
# Multiplier after scaling
rfi: 1.0
# Flat scalar to add before scaling with laws
offset_before: 0
# Flat scalar to multiply before scaling with laws
scale_before: 1
# The travel_emission_lerp_fit uses points instead of intervals
# List of (distance in km, footprint in kg)
points:
- [ 0.0, 0.0 ]
- [ 299.9, 0.0 ]
- [ 300.0, 100.771075677223 ]
- [ 3999.9, 866.237395584634 ]
- [ 4000.0, 844.203401814933 ]
- [ 19999.9, 5606.129335551792 ]
- [ 25000.0, 7094.270252762378 ]
- name: MyClimate (RFI=2)
# Slugged version of the display name above
# Only lowercase alphanumeric, starting with a letter, using - as liaison
# In other words, MUST match ^[a-z]([a-z0-9-]*[a-z0-9])?$ eg: icao-with-rfi
# MUST be unique, two models MUST NOT have the same slug.
slug: my-climate-rfi
# There MUST exist a python file named like this in `flaskr/laws`
# And it MUST contain a class named EmissionModel
# Please keep this lowercased, letters-only (or I will breathe fire)
file: travel_emission_lerp_fit
# Color MUST be in the hex form, without alpha
color: "#99ff33"
# Whether this model is selected by default in the list.
selected: true
# The configuration that will be fed to the model.
# May be anything, really. Go bonkers!
config:
plane_emission_linear_fit:
# A coefficient applied to the distance
connecting_flights_scale: 1.05
# Radiative Forcing Index
# Multiplier after scaling
# DEPRECATED
rfi: 1.0
# Flat scalar to add before scaling with laws
offset_before: 95
# Flat scalar to multiply before scaling with laws
scale_before: 1
# The travel_emission_lerp_fit uses points instead of intervals
# List of (distance in km, footprint in kg)
points:
- [0.0, 0.0 ]
- [299.9, 0.0 ]
- [300.0, 120.42928309599999 ]
- [1499.9, 278.86980907246215 ]
- [1500.0, 278.8830135500002 ]
- [2499.9, 438.3026953954595 ]
- [2500, 438.3186389580005 ]
- [19999.9, 3335.611941663665 ]
- [25000.0, 4163.431314509144 ]
- name: ADEME (RFI=1.9)
# Slugged version of the display name above
# Only lowercase alphanumeric, starting with a letter, using - as liaison
# In other words, MUST match ^[a-z]([a-z0-9-]*[a-z0-9])?$ eg: icao-with-rfi
# MUST be unique, two models MUST NOT have the same slug.
slug: ademe-rfi
# There MUST exist a python file named like this in `flaskr/laws`
# And it MUST contain a class named EmissionModel
# Please keep this lowercased, letters-only (or I will breathe fire)
file: travel_emission_lerp_fit
# Color MUST be in the hex form, without alpha
color: "#33ff99"
# Whether this model is selected by default in the list.
selected: true
# The configuration that will be fed to the model.
# May be anything, really. Go bonkers!
config:
plane_emission_linear_fit:
# A coefficient applied to the distance
connecting_flights_scale: 1.05
# Radiative Forcing Index
# Multiplier after scaling
# DEPRECATED
rfi: 1.0
# Flat scalar to add before scaling with laws
offset_before: 0
# Flat scalar to multiply before scaling with laws
scale_before: 1
# The travel_emission_lerp_fit uses points instead of intervals
# List of (distance in km, footprint in kg)
points:
- [0.0, 0.0 ]
- [299.9, 0.0 ]
- [300.0, 195.74749999999995 ]
- [999.9, 301.13494249999997 ]
- [1000.0, 301.15000000000003 ]
- [1999.9, 475.61588499999993 ]
- [2000, 475.63333333333316 ]
- [2999.9, 573.7901833333333 ]
- [3000, 573.8000000000008 ]
- [3999.9, 851.1722600000007 ]
- [4000, 851.2000000000004 ]
- [4999.9, 1116.223495 ]
- [5000, 1116.2499999999998 ]
- [5999.9, 1157.0959149999994 ]
- [6000, 1157.1000000000004 ]
- [6999.9, 1196.99601 ]
- [7000, 1196.9999999999998 ]
- [7999.9, 1367.9828999999993 ]
- [8000, 1368.0000000000005 ]
- [8999.9, 1444.9423050000007 ]
- [9000, 1444.9499999999994 ]
- [9999.9, 1643.4801449999993 ]
- [10000, 1643.5000000000007 ]
- [10999.9, 1975.016844999998 ]
- [11000, 1968.2100000000028 ]
- [19999.9, 3570.462197000003 ]
- [25000.0, 4460.630000000003 ]
- name: DEFRA (RFI=1.9)
# Slugged version of the display name above
# Only lowercase alphanumeric, starting with a letter, using - as liaison
# In other words, MUST match ^[a-z]([a-z0-9-]*[a-z0-9])?$ eg: icao-with-rfi
# MUST be unique, two models MUST NOT have the same slug.
slug: defra-rfi
# There MUST exist a python file named like this in `flaskr/laws`
# And it MUST contain a class named EmissionModel
# Please keep this lowercased, letters-only (or I will breathe fire)
file: travel_emission_lerp_fit
# Color MUST be in the hex form, without alpha
color: "#3399ff"
# Whether this model is selected by default in the list.
selected: true
# The configuration that will be fed to the model.
# May be anything, really. Go bonkers!
config:
plane_emission_linear_fit:
# A coefficient applied to the distance
connecting_flights_scale: 1.05
# Radiative Forcing Index
# Multiplier after scaling
# DEPRECATED
rfi: 1.0
# Flat scalar to add before scaling with laws
offset_before: 0
# Flat scalar to multiply before scaling with laws
scale_before: 1
# The travel_emission_lerp_fit uses points instead of intervals
# List of (distance in km, footprint in kg)
points:
- [0.0, 0.0 ]
- [299.9, 0.0 ]
- [300.0, 47.496000000000016 ]
- [499.9, 79.14416800000002 ]
- [500.0, 78.03232675954409 ]
- [3699.9, 576.0667775328388 ]
- [3700.0, 541.2334271596557 ]
- [19999.9, 2878.9047733493503 ]
- [25000.0, 3596.0006143105275 ]
- name: KLM data (no RF, not recommended)
# Slugged version of the display name above
# Only lowercase alphanumeric, starting with a letter, using - as liaison
# In other words, MUST match ^[a-z]([a-z0-9-]*[a-z0-9])?$ eg: icao-with-rfi
# MUST be unique, two models MUST NOT have the same slug.
slug: klm-data-no-rfi
# There MUST exist a python file named like this in `flaskr/laws`
# And it MUST contain a class named EmissionModel
# Please keep this lowercased, letters-only (or I will breathe fire)
file: travel_emission_lerp_fit
# Color MUST be in the hex form, without alpha
color: "#ff3399"
# Whether this model is selected by default in the list.
selected: false
# The configuration that will be fed to the model.
# May be anything, really. Go bonkers!
config:
plane_emission_linear_fit:
# A coefficient applied to the distance
connecting_flights_scale: 1.05
# Radiative Forcing Index
# Multiplier after scaling
# DEPRECATED
rfi: 1.0
# Flat scalar to add before scaling with laws
offset_before: 0
# Flat scalar to multiply before scaling with laws
scale_before: 1
# The travel_emission_lerp_fit uses points instead of intervals
# List of (distance in km, footprint in kg)
points:
- [0.0, 0.0 ]
- [299.9, 0.0 ]
- [300.0, 41.883578628476144 ]
- [2499.9, 214.70184186944394 ]
- [2500.0, 261.6807087092951 ]
- [14999.9, 962.2587735768744 ]
- [25000.0, 1522.7313138757793 ]
- name: ICAO (no RF, not recommended)
# Slugged version of the display name above
# Only lowercase alphanumeric, starting with a letter, using - as liaison
# In other words, MUST match ^[a-z]([a-z0-9-]*[a-z0-9])?$ eg: icao-with-rfi
# MUST be unique, two models MUST NOT have the same slug.
slug: icao-no-rfi
# There MUST exist a python file named like this in `flaskr/laws`
# And it MUST contain a class named EmissionModel
# Please keep this lowercased, letters-only (or I will breathe fire)
file: travel_emission_lerp_fit
# Color MUST be in the hex form, without alpha
color: "#ff9933"
# Whether this model is selected by default in the list.
selected: false
# The configuration that will be fed to the model.
# May be anything, really. Go bonkers!
config:
plane_emission_linear_fit:
# A coefficient applied to the distance
connecting_flights_scale: 1.05
# Radiative Forcing Index
# Multiplier after scaling
# DEPRECATED
rfi: 1.0
# Flat scalar to add before scaling with laws
offset_before: 0
# Flat scalar to multiply before scaling with laws
scale_before: 1
# The travel_emission_lerp_fit uses points instead of intervals
# List of (distance in km, footprint in kg)
points:
- [0.0, 0.0 ]
- [299.9, 0.0 ]
- [300.0, 67.00585705041823 ]
- [2499.9, 211.09825928042045 ]
- [2500.0, 206.528816915788 ]
- [14999.9, 663.8204584246745 ]
- [25000.0, 1029.6603566841018 ]
# The grouped barchart displayed on the home page.
laws_plot:
distances:
- 350.0
- 500.0
- 1000.0
- 1500.0
- 2500.0
- 3000.0
- 4500.0
- 5000.0
- 8000.0
- 10000.0
- 12000.0
# The content is Markdown. HTML is also allowed.
# If you also want Markdown in the titles, just ask.
home:
# The hero block (aka. jumbotron) is the top-level, salient block
# It's like a welcoming mat :)
hero:
title: Estimate your travel carbon footprint
# Using a pipe (|) allows you to set multiline content
# Careful, indentation matters.
description: |
Travel footpint calculator provided by Didier Barret
CNRS,
[IRAP](http://www.irap.omp.eu),
[@DidierBarret](https://twitter.com/DidierBarret),
[didier.barret@gmail.com](mailto:didier.barret@gmail.com)
# Three blocks per section.
# sections:
# You can also use columns.
columns:
- blocks:
- title: What does the tool do?
content: |
The tool computes the carbon footprint associated with round
trip flights. It does so for a set of trips from a given city of origin
to a set of destinations. Similarly, the tool allows to compute
the carbon footprint of a larger set of trips, corresponding to a
conference, a meeting and so on. For this, the city of departure
for each participant to the conference has first to be provided.
If multiple destination cities are provided, the tool ranks those
cities according to the associated carbon footprint.
While online calculators enable to compute the footprint of a
limited number of trips, this tool enables to compute the
footprint of a larger number of trips in an automated way.
Furthermore, it provides an estimate based on data from six
different methods, whose estimates can differ significantly. If
more than one method is selected by the user, the tool returns
the mean of the estimates of all selected method.
- title: How does the tool work?
content: |
A round trip is defined by a city pair. The two cities are
geolocated and from their longitude and latitude, the great
circle distance is computed. This is the shortest path a plane
can follow. Some methods thus consider uplift correction
factors in computing the carbon dioxide emission of a flight. In
addition, two cities may not be connected by a direct flight.
This is accounted for by increasing by 5% the great circle
distance. Each method provides the carbon dioxide emission
in kg as a function of the flight distance in km. Thus from the
increased great circle distance, the carbon dioxide emission of
a flight associated with a trip between a city pair is computed
and multiplied by two to account for a round trip.
- title: Which methods are used?
content: |
The tool incorporates six different methods, among the most
widely used, and for which the methodology used is
documented. Providing more than one method enables to get
a mean value, while illustrating the significant differences in
their estimates. In alphabetic order, the data considered are
from ADEME: the French Environment & Energy Management
Agency, atmosfair: a German carbon offsetting company,
DEFRA: the UK Department for Environment, Food & Rural
Affairs, ICAO: International Civil Aviation Organization, from the
KLM carbon compensation service data and finally from
myclimate.
_This list is obviously not exhaustive but represents
a variety of estimates from lower to higher values._
- title: How are the different methods built?
content: |
What is needed for each method is a function giving the
carbon dioxide emission as a function of the flight distance.
ADEME and DEFRA provide mean emission factors, as a
function of flight distance. Myclimate provides an analytical
formula. For ICAO and atmosfair, the on-line calculators have
been run for a wide range of flights of varying distances (~100
flights spanning from 300 km to 12000 km) and the estimates
have been fitted with linear functions, covering adjacent
distance intervals. For its carbon compensation service, KLM
provides on its web site a table of emissions for a large range
of flights. The KLM data have been also been fitted with linear
functions.
- title: What about radiative forcing?
slug: rfi
content: |
Radiative forcing accounts for the fact that aviation contributes
to climate change more than just with the emission of carbon dioxide
from burning fuels, by releasing gases and particles directly
into the upper troposphere and lower stratosphere
where they have an impact on atmospheric composition.
These gases and particles include
carbon dioxide (CO2),
ozone (O3),
and methane (CH4);
trigger formation of condensation trails (contrails);
and may increase cirrus cloudiness;
all of which contribute to climate change.
A Radiative Forcing Index (RFI) of 1.9–2 is used by DEFRA,
myclimate and recommended by ADEME
(see discussion in [Jungbluth, N. & Meili,
C. Int J Life Cycle Assess (2019) 24: 404](https://doi.org/10.1007/s11367-018-1556-3).).
ATMOSFAIR considers a multiplier of 3, for all emissions above 9 km,
accounting for the profile of the flight.
ICAO, on the other hand does not include a multiplier,
arguing that the scientific community has not settle on a value!
KLM data does not seem to account for radiative forcing either,
as the estimates they provide are close, although a little higher,
than the ones of ICAO.
Therefore, the methods based on ICAO and KLM data are not recommended,
but given as methods providing the lowest emissions.
[![Models used](static/img/recap_scaling_laws.jpg)](static/img/recap_scaling_laws.jpg)
- title: Seating category
content: |
The tool assumes economy seats in computing the carbon
dioxide emission. For indication, DEFRA provides mean
emission factors for different seat classes considering
international flights. Related to the area occupied by the seat in
the plane, for Premium economy, the emission would be 1.6
times larger than flying an economy seat. It would be 2.9 and 4
times higher from flying Business class and First class
respectively.
- title: Accounting for train emission
content: |
The minimum distance for flying is an input to be provided by
the user (it is set to 300 km by default). Below the minimum
distance for flying, it is assumed that train is used. The tool
then computes the travel footprint associated with train. The
French emission factors provided by ADEME are 3.37 and 5.11
grams of carbon dioxide equivalent per km per passenger for
high speed trains and normal trains respectively. This low value is
due to the fact that electricity is provided by nuclear plants. It
is larger by some factors across Europe. The tool thus assumes the
mean of the emission factors of national and international rails,
as provided by DEFRA (i.e. 23 grams per passenger km). This
makes the carbon dioxide emission of trains, typically one
tenth (1/10) of the one of aircrafts.
- blocks:
- title: Input and output data
content: |
The inputs are provided in US English for the city and country
names, without diacritics. On each line, the city and country
names must be separated by a comma. Pasting a csv file in the
form is possible, provided that a comma separates
the city and country names.
A round trip is defined by a city pair. If the user enters cityA as
the origin city, and twice cityB as destinations, the tool returns
the cumulative emission and distance from two round trips
involving cityA and cityB, and indicates that 2 round trips were involved.
The same happens if the user enters twice cityA as the city of origin
and cityB as the sole destination.
Three types of inputs can be considered
depending on whether the user wants an “individual” estimate
or an estimate for a conference, meeting and so on. In the
former case, the “origin” city is unique and the “destination”
cities may be multiple. The tool returns the carbon dioxide
equivalent emission for each city of destination.
In the later case, the “origin” cities are multiple
(i.e. the cities from which the participants to the conference
depart from), and the “destination” city may be a single host city
or multiple host cities if the user wants to compare their
associated footprint. If there is one destination, the tool returns
the carbon dioxide equivalent for each city of origin. If multiple
destinations are provided the tool returns the carbon dioxide
equivalent emission summed over all cities of
origin and for each city of destination. The cumulative distance to
each city of destination is also provided.
The result pages provides a summary plot which can be
downloaded, as well as a csv and raw yaml file. The csv file
lists the name of the city as in the form, the address to which it
was geolocated, the carbon dioxide emission (in kg), the
distance travelled, the number of trips possible by train (i.e.
when the distance is less than the minimum flying distance,
e.g. 300 km) and the number of trips by plane. The plot and the
csv file rank the cities against the carbon dioxide emissions.
- title: Trouble shooting
content: |
The estimation can go wrong if a city is not properly
geolocated. This may happen because the name of the city is
wrongly spelled or the geolocator (OSM) is confused. An error
should be listed at the end of the result page. Don’t be
surprised, if the name recovered by the geolocator is not
exactly the one you had expected (e.g. a city is located at the
address of an embassy). If nothing happens during a request, it
is most likely caused by the geolocator being unavailable. In
this case, try again a few minutes later.
- title: Caveats
content: |
The numbers provided by the tool do not come with
uncertainties. Therefore they must be considered as indicative
of the true values. Selecting more than one method is
recommended, because they may make the numbers closer to
their true values. In all cases however, the numbers can be
used for relative comparisons, e.g. when comparing two cities
for hosting a conference.
- title: Confidentiality
content: |
The data provided in the form will remain confidential, as will be the results.
- title: Disclaimer
content: |
This tool is provided on a best effort basis as a service to
members of the science community. The numbers provided
are informative and have obviously no legal value.
- title: Reference
content: |
Results from the tool may reference to Barret (2019, in preparation).
- title: Original motivation
content: |
Global warming is a threat for life on our planet. Emissions of
carbon dioxide by aircrafts keeps increasing, as the world
economy keeps growing (it is about 3% of the anthropogenic
emissions nowadays). Carrying scientific research requires
traveling across the world, and thus air travel is likely to
dominate the carbon footprint of most scientists and is
likely to be large for developing international projects. This tool was
first developed to compute the travel footprint
associated with the development of the X-ray Integral
Field Unit to fly on board the Athena space observatory
in the early 2030s. The rather large number derived,
typically one hundred ton of carbon dioxide per bi-annual consortium meeting,
imposed concrete actions to reduce the footprint
of the project, by re-considering the number of
large meetings, implementing different ways of interacting and
working collectively in a world-wide consortium. The tool was
further improved to easily compute the travel footprint associated
with individual traveling or with the organization of events, involving
a large number of travels. Finally, by comparing different,
widely used methods, providing so different estimates, I would
expect to raise awareness within the scientific community
(and hopefully the authorities and medias)
about the lack of regulations or framework on the critical
matter of estimating aircraft emissions.
- title: Concluding note
content: |
As a personal note, I would like to stress that, as a scientist, I
find it worrying or even shocking that there are no standards
for computing the flight emissions, while we know that flight
travels, releasing carbon dioxide at high altitudes, contribute to
global warming. To take an example, the International Civil
Aviation Organization (ICAO) is a United Nations specialized
agency, established by States in 1944 to manage the
administration and governance of the Convention on
International Civil Aviation. ICAO has global responsibility for
the establishment of standards, recommended practices, and
guidance on various aspects of international civil aviation,
including environmental protection. How can ICAO ignore
radiative forcing in the results provided by its widely used on-
line calculator? (which by the way is the calculator used by the
travel agency of my institute, being a public institution). The
IPCC in its 1999 report have defined the radiative forcing index
to be between 2 and 4. Why ICAO is using 1? This is just an
example, which clearly show the urgent need to agree on a
common methodology accepted by all parties in computing
flight emission. May be this tool will help to raise
awareness on this issue.
- title: Additional resources
content: |
- Offset your flight with [atmosfair](https://www.atmosfair.de/en/offset/flight)
- [ADEME](https://www.ecologique-solidaire.gouv.fr/sites/default/files/Info%20GES_Guide%20m%C3%A9thodo.pdf)
(French Environment & Energy Management Agency)
- [DEFRA](https://www.gov.uk/government/publications/greenhouse-gas-reporting-conversion-factors-2019)
emission conversion factors 2019
- [ICAO](https://www.icao.int/environmental-protection/carbonoffset/pages/default.aspx)
Carbon Emissions Calculator
- [KLM data](https://www.klm.com/travel/nl_en/prepare_for_travel/fly_co2_neutral/all_about_sustainable_travel/index.htm)
KLM data
- [MyClimate](https://www.myclimate.org)
MyClimate
- L. Hackel [travel footprint calculator](https://lhackel.shinyapps.io/travel_footprint/)
based on DEFRA emission factors
estimate:
hero:
title: Request an estimation
description: |
The results will be available (almost) immediately.
It may take from a few seconds up to a few minutes,
depending on the amount of locations you provided.
help:
first_name: Fill these to say hello.
last_name: We will never share your data with anyone.
origin_addresses: |
Use en_US
city and country names, without diacritics.
The comma matters.
This is either a home city and a country
or the cities and countries of the participants to the conference, meeting…
destination_addresses: |
This is either the cities and countries to travel to
or the host city and country of the conference, meeting…
Please provide multiple cities and countries to compute the location
of the minimum emission.
# Labels accept HTML, but not markdown
# Descriptions accept neither, since we use the HTML title attribute
form:
email:
label: Email Address
description: Make sure you provide a valid address or you won't receive the results!
first_name:
label: First Name
description: Also known as given name, eg. `Didier`.
placeholder: Adèle
last_name:
label: Last Name
description: Also known as family name, eg. `Barret`.
placeholder: Bellego
institution:
label: Institution / Enterprise
description: If any?
comment:
label: Leave a comment
description: Any input is appreciated. Everyone's a critic.
use_train_below_km:
label: Use train below
description: We will use train emission models instead of plane fo trips below this distance.
origin_addresses:
label: Origin Cities
description: |
One address per line, in the form `City, Country`.
Make sure your addresses are correctly spelled.
# We MUST use the dumb CRLF pair for windows users
placeholder: "Paris, France\r\nBerlin, Germany"
# placeholder: |
# Paris, France
# Berlin, Germany
destination_addresses:
label: Destination Cities
description: |
One address per line, in the form `City, Country`.
Make sure your addresses are correctly spelled.
placeholder: |
Washington, United States of America
compute_optimal_destination:
label: |
Compute the destination city that will minimize emissions
(useful when setting up a meeting/conference)
description: |
We will only look through Cities specified in the Destination Cities.
use_atmosfair_rfi:
label: |
Use the RFI
multiplier recommended by atmosfair
(i.e. 3
for all emissions above 9km
)
For long flights, the multiplier may reach 2.8
or so.
Otherwise, by default, 1.9
will be used.
description: |
We will only look through Cities specified in the Destination Cities.
estimate_queue:
hero:
title: Please wait…
description: |
Your estimation is being computed.
This may take several minutes.
This webpage will automatically update when it is done.
estimation:
hero:
title: Your estimation is now available!
description: |
Thank you for using our service.
Bookmark this webpage, it is private and unlisted.
failure:
hero:
title: Your estimation has failed!
description: |
Sorry about that. Please find the error message below.
Thank you for using our service.
lolliplot:
one_to_one: |
The carbon dioxide equivalent emission is provided for each city of destination.
Identical trips (i.e. identical destinations) are summed
and the cumulative distance is provided.
one_to_many: |
The carbon dioxide equivalent emission is provided for each city of destination.
Identical trips (i.e. identical destinations) are summed
and the cumulative distance is provided.
many_to_one: |
The carbon dioxide equivalent emission is provided for each city of origin.
Identical trips (i.e. identical origins) are summed and the cumulative distance is provided.
many_to_many: |
The carbon dioxide equivalent emission is summed
over all cities of origin and provided for each city of destination.
The cumulative distance to each city of destination is provided.
Duplicates in the destinations are removed.
footer:
credits: |
Didier Barret (IRAP) © 2019