content.yml
26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
# 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 ]
- [ 300.0, 0.0 ]
- [ 300.1, 100.77107567722328 ]
- [ 4000.0, 866.2580844227083 ]
- [ 4000.0, 844.2034018149334 ]
- [ 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
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:
- [ 300.0, 120.42928309 ]
- [ 1500.0, 278.88301355 ]
- [ 2500.0, 438.31863895 ]
- [ 20000.0, 3335.62849772 ]
- 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
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 ]
- [ 300.0, 0.0 ]
- [ 300.1, 371.92025 ]
- [ 1000.0, 572.185 ]
- [ 2000.0, 903.70333 ]
- [ 3000.0, 1090.22 ]
- [ 4000.0, 1617.28 ]
- [ 5000.0, 2120.875 ]
- [ 6000.0, 2198.49 ]
- [ 7000.0, 2274.3 ]
- [ 8000.0, 2599.2 ]
- [ 9000.0, 2745.405 ]
- [ 10000.0, 3122.65 ]
# Not sure which is the right one
# - [ 11000.0, 3752.595 ]
- [ 11000.0, 3739.599 ]
- [ 20000.0, 6783.912 ]
- [ 25000.0, 8475.197 ]
- 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
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 ]
- [ 300.0, 0.0 ]
- [ 300.1, 47.496 ]
- [ 500.0, 79.16 ]
# - [ 500.0, 78.032326759544 ]
- [ 3700.0, 576.082341595802 ]
# - [ 3700.0, 541.233427159656 ]
- [ 20000.0, 2878.919114979337 ]
- [ 25000.0, 3596.000614310528 ]
- 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
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 ]
- [ 300.0, 0.0 ]
- [ 300.1, 36.5684840763858 ]
# - [ 2000.0, 186.8081593437083 ]
- [ 2000.0, 202.8769421141676 ]
- [ 20000.0, 1291.6001262464672 ]
- [ 25000.0, 1594.0232329498838 ]
- 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
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, 4.5735209613707 ]
- [ 500.0, 84.2229231297094 ]
- [ 3000.0, 223.7823676144418 ]
- [ 25000.0, 1033.0117495994948 ]
# 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
<br>
<span class="glyphicon glyphicon-globe" aria-hidden="true"></span>
CNRS,
<span class="glyphicon glyphicon-home" aria-hidden="true"></span>
[IRAP](http://www.irap.omp.eu),
<span class="glyphicon glyphicon-user" aria-hidden="true"></span>
[@DidierBarret](https://twitter.com/DidierBarret),
<span class="glyphicon glyphicon-envelope" aria-hidden="true"></span>
[didier.barret@gmail.com](mailto:didier.barret@gmail.com)
sections:
# Add as many sections as you want.
# Three blocks per section ; if you want another amount, it can be done, please ask.
- blocks:
- title: What does this do?
content: |
<p class="text-center">
The tool helps computing your travel carbon footprint
for a <strong>round trip</strong> from a given location,
for a set of visited cities.
</p>
Similarly, the tool allows to compute the travel footprint
of a conference, meeting... (the originating city of each
participant has then to be provided).
It can also return the city that would minimize the travel footprint
assuming the same audience of the conference/meeting for a set of city hosts
(which can be derived from the list of cities of the participants
to the conference/meeting).
While online CO<sub>2</sub> calculators enable to compute the footprint
of a limited number of trips with detailed trip information
(e.g. connecting flights),
this tool enables to compute the footprint of a larger number of travels,
making some assumptions, e.g. to model connecting flights. In addition,
it provides an estimate for up to **six** different methods.</p>
<!--
For short distance travels, the CO<sub>2</sub> footprint associated with trains
is calculated and added to the air travel footprint.
-->
### Original Motivation
Global warming is a threat for life on our planet. Evry day we hear about
scientific results demonstrating the devastating impacts this will have on
Earth in the very near future.
Emissions of carbon dioxide by aircraft were 0.14 Gt C/year in 1992.
This was between 2% of total anthropogenic carbon dioxide emissions in 1992
or about 13% of carbon dioxide emissions from all transportation sources
(Intergovernmental panel on climate change, report 1999). Due to an
increasing demand and the growth of the world economy,
the number has grown since then, reaching closer to 3% nowadays,
a number which will keep growing.
Carrying scientific research requires traveling all across the world,
but time has come to critically look at the way we carry research,
with the aim of raising awareness and reducing our environmental impact,
whenever possible. As air travel is likely to dominate the CO<sub>2</sub> budget
of most scientists, this tool offers a way to easily compute the footprint
associated with travels.
- title: Which data are used?
content: |
There is a growing interest in getting the travel footprint of scientific events,
such as conferences or large meetings.
Those are based on freely available CO<sub>2</sub> calculators,
some being relatively easy to use, requiring very limited user inputs.
However, just by running some of them (including those from Carbon offset companies),
it is amazing to see how their estimates can differ quite significantly
(up to a factor of a few for the same trip).
This is because they use different input data and consider different perimeters and assumptions,
e.g. excluding freight or not, assuming different radiative forcing indices,
seat accommodation in the plane…
The straight numbers provided should therefore not be taken at face value,
but should be looked at, for what they include and mean.
It is also striking to me that there is hardly any scientific literature
on the comparison between CO<sub>2</sub> calculators,
although often discrepancies are noticed in some communications,
more particularly for long distance flights.
Relying on one calculator is therefore not possible. This tool thus
enables to compute your travel carbon footprint (for round trips),
based on data provided by 6 independent calculators:
1. the International Civil Aviation Organization (ICAO),
2. the UK Department for Environment, Food & Rural Affairs (DEFRA),
3. the ATMOSFAIR German Carbon offsetting company,
4. the French Environment & Energy Management Agency (ADEME)
5. the data provided on the KLM website to introduce their CO2 compensation service (KLM)
6. the MyClimate Carbon offseting company (used by Lufthansa)
ICAO, DEFRA, MyClimate, ATMOSFAIR and to some extent KLM have
their methodology very well described
(see resources section below).
ADEME and DEFRA provide mean emission factors.
ATMOSFAIR and ICAO provide on line emission calculators requiring limited user inputs.
Those on-line calculators have been run for a variety of flight distances,
so that the estimates (without error bars) could be approximated with linear functions.
- title: How does this tool work?
content: |
The tool starts by decoding the origin cities listed in the form, and geolocate them.
It then decodes the destination cities and geolocate them as well.
Cities that cannot be located are ignored from the computation. To resolve ambiguity
between cities of similar names (e.g. Cambridge), the name of the country is required.
From the longitude and lattitude of the origin and destination cities, the great
circle distance is computed. This is the shortest path a plane can follow. However,
traveling between cities often involves connexion. A 5% increase of the great circle
distance is considered as a mean value.
DEFRA, ICAO, Atmosfair and MyClimate include uplift factors to account for the fact
than planes, even during direct flight, do not strictly follow the shortest path,
e.g. to avoid bad weather conditions. For instance, MyClimate considers what is
called a detour constant of 95 km.
CO<sub>2</sub> emissions per passenger take into consideration the load factor
and are based only on passenger operations
(i.e. fuel burn associated with belly freight is not charged to the passenger).
From the travel distance, and the emission coefficients, the tool computes the amount
of CO<sub>2eq</sub> generated by each flight. The user can select one
or more methods, and a mean value will be reported if more than one method is considered.
# Second row of "blocks"
- blocks:
- title: What about Radiative Forcing?
content: |
CO<sub>2</sub> emissions is computed from the total fuel burnt during the flight.
For ICAO one of kg of fuel leads to **3.16** kg of CO<sub>2</sub> emissions
MyClimate instead considers the same emission factor but adds a
factor for pre-production of 0.538 kg CO2e/kg jet fuel (ecoinvent 2018).
Radiative forcing account for the fact that aviation contributes to climate change
more than just from the emission of CO<sub>2</sub> 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 (CO<sub>2</sub>),
ozone (O<sub>3</sub>), and methane (CH<sub>4</sub>);
trigger formation of condensation trails (contrails);
and may increase cirrus cloudiness;
all of which contribute to climate change.
A radiative forcing index of 1.9/2 is recommended by DEFRA, MyClimate and ADEME.
ATMOSFAIR considers a multiplier of 3, for all emissions above 9 km.
ICAO, on the other hand does not include a multiplier,
waiting for the scientific community to settle on a value. KLM data do
not account for radiative forcing either.
- title: Which seat category are you considering?
content: |
The tool considers only economy seats for the time being.
Note that DEFRA emission factors are a factor of 3 larger for a business class seat
(proportional to the larger area used in the plane).
Similarly, a factor of 1.5 should be considered when flying on Premium economy seats
(ICAO would consider a factor of 2).
- title: What about uncertainties?
content: |
Each estimate may have an uncertainty between 10 and 25%
(really this is a best guess, and not substantiated by any statistical
analysis and it could be more probably).
We would therefore refrain from using the numbers derived as absolute values.
Larger differences are found when long distance flights are considered.
In all cases, the estimates can be used for relative comparisons.
# Third row, etc.
- blocks:
- title: Considering train travel for short travel distance
content: |
There is a minimum distance (by default 300 km)
under which the calculator excludes flight travel.
The calculator proposes instead to compute the travel footprint associated with train.
The French emission factors are between 4 and 5 grams of CO2eq per km per passenger.
This low value is likely due to the fact that electricity is provided by nuclear plants.
It is larger by some factor accross Europe.
Here I am assuming that the French factor are multiplied by a factor of 5.
This makes train typically 10% less emitting than plane (including radiative forcing).
- 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
- [DGAC](https://eco-calculateur.dta.aviation-civile.gouv.fr)
Direction Générale de l'Aviation Civile
- [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
- content: |
### Disclaimer
This tool is provided on a best effort basis as a service to members of the science community
to get some ideas of travel footprints associated with scientific projects and activities.
### Confidentiality
The data provided will remain confidential, as will be the results.
### Troubleshooting
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 (<acronym title="Open Street Map">OSM</acronym>)
is confused or unavailable.
An error should be listed at the end of the result page.
estimate:
hero:
title: Request an estimation
description: |
The results will be available <small>(almost)</small> immediately.
<br>
It may take from a few seconds up to a few minutes,
depending on the amount of locations you provided.
# 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.
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 <br>
(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 <acronym title="Radiative Forcing Index">RFI</acronym>
multiplier recommended by <a href="https://www.atmosfair.de">atmosfair</a>
(i.e. <code>3</code> for all emissions above <code>9km</code>)
<br>
For long flights, the multiplier may reach <code>2.8</code> or so.
Otherwise, by default, <code>1.9</code> 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.
<br>
This webpage will automatically update when it is done.
estimation:
hero:
title: Your estimation is now available!
description: |
Thank you for using our service.
<br>
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.
<br>
Thank you for using our service.
footer:
credits: |
Didier Barret © 2019