lowtrip
A web app to compute travel CO2eq for different means of transport worldwide.
https://github.com/xavb64/lowtrip
Category: Consumption
Sub Category: Mobility and Transportation
Keywords
carbon-footprint energy map slow-travelers travel
Last synced: about 20 hours ago
JSON representation
Repository metadata
A web app to compute travel CO2eq for different means of transport worldwide
- Host: GitHub
- URL: https://github.com/xavb64/lowtrip
- Owner: XavB64
- License: agpl-3.0
- Created: 2023-11-18T11:21:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-22T17:21:37.000Z (about 1 month ago)
- Last Synced: 2025-04-17T22:44:36.810Z (9 days ago)
- Topics: carbon-footprint, energy, map, slow-travelers, travel
- Language: TypeScript
- Homepage: https://lowtrip.fr
- Size: 12.8 MB
- Stars: 67
- Watchers: 3
- Forks: 7
- Open Issues: 4
- Releases: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
a web app to compute travel CO2eq for different means of transport worldwide
The work presented here is independent and not-for-profit. This work has been carried out on a
voluntary basis.
The aim of this web app is to present precise carbon inventories per passenger for each mode of
transport and each journey. These results enable users to make informed choices in the context of
reducing their greenhouse gas emissions to mitigate climate change. To put these results into context, total net yearly
per-capita emissions should not exceed 2 tons CO2eq in 2050 to limit global warming below +2°C.
You can have a look at https://lowtrip.fr/.
How the emissions are calculated?
To calculate CO2 equivalent emissions per person, we multiply the distance of a journey (km) by the corresponding emission factor (mass of CO2 equivalent per person per km) of a mean of transport. For a mutlistep journey, these emissions are summed over the different steps:
$$CO_2eq = \sum_{step} Distance(km) \times Emission \: Factor(kgCO_2eq / km) $$
Estimation of distances
Mean of Transport | Distance |
---|---|
Train |
OpenStreetMap network |
Car & Bus & eCar |
OpenStreetMap network |
Bike route |
OpenStreetMap network |
Plane |
Geodesic distance and average detour |
Ferry & Sailboat |
Approximation of shortest path |
What do emission factors depend on?
Mean of Transport | Variable |
---|---|
Train |
Visited countries |
Bus |
- |
Car |
Number of passengers |
Electric car |
Visited countries & Number of passengers |
Bike route |
- |
Plane |
Distance of journey |
Ferry |
User-specified parameters |
Sailboat |
- ; improvements on the way |
Emissions factors consider usage (linked to the manufacture and use of energy to move the vehicle) as well as infrastructure and vehicle construction where these are significant. The table below summarizes the types of emissions taken into account by lowtrip. Empty cells mean that the related emissions did not contribute significantly to the result and are therefore excluded to facilitate understanding and readability for the user.
Mean of Transport | Usage | Vehicle construction | Infrastruture construction |
---|---|---|---|
Train |
✅ | ✅ | |
Car & Bus & eCar |
✅ | ✅ | |
Bike route |
✅ | Not found | |
Plane |
✅ | ||
Ferry |
✅ | Not found | |
Sailboat |
✅ | Not found |
All assumptions, data and sources used are available in the methodology document.
How to launch the app?
Prerequisites
Have docker installed
Launch the app
At the root of the directory, run:
docker-compose up --build
You can now connect to http://localhost:3000 to test the application.
Note: If you want to launch them in the backgroup and leave them running, you can add the flag -d
or --detach
.
Rebuild and restart a service
At the root of the directory, run:
docker-compose up --build <service name: backend or frontend>
Stop the app
At the root of the directory, run:
docker-compose down
How to launch the app components separately?
Prerequisites
Have python & node installed
Launch the backend
cd backend
# create a python environment and activate it
python -m venv lowtrip-venv
source lowtrip-venv/bin/activate
# install the dependencies
pip install -r requirements.txt
# launch the app
gunicorn app:app
You can format the code with ruff:
pip install ruff
ruff format
Launch the frontend
cd frontend
# install the dependencies
npm install
# launch the app
npm start
How to cite this work ?
Bonnemaizon, Xavier, Ni, Clara, Gres, Paola & Pellas, Chiara. lowtrip (2024). https://lowtrip.fr
Owner metadata
- Name: XavB64
- Login: XavB64
- Email:
- Kind: user
- Description: PhD student at Laboratory for Sciences of Climate and Environment
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/94190815?u=775ddab427c707a1fa4925e34bdb73434fd48bd5&v=4
- Repositories: 1
- Last ynced at: 2024-04-17T21:54:51.598Z
- Profile URL: https://github.com/XavB64
GitHub Events
Total
- Issues event: 1
- Watch event: 10
- Delete event: 29
- Issue comment event: 2
- Push event: 138
- Pull request event: 53
- Fork event: 1
- Create event: 27
Last Year
- Issues event: 1
- Watch event: 10
- Delete event: 29
- Issue comment event: 2
- Push event: 138
- Pull request event: 53
- Fork event: 1
- Create event: 27
Committers metadata
Last synced: 4 days ago
Total Commits: 349
Total Committers: 10
Avg Commits per committer: 34.9
Development Distribution Score (DDS): 0.625
Commits in past year: 147
Committers in past year: 9
Avg Commits per committer in past year: 16.333
Development Distribution Score (DDS) in past year: 0.381
Name | Commits | |
---|---|---|
Clara Ni | c****i@o****r | 131 |
Xav_Bueno | 9****4 | 97 |
unknown | x****a@L****R | 61 |
paolagres | g****a@g****m | 43 |
François Lorne | f****l@t****r | 9 |
Mikael Arguedas | m****s@g****m | 3 |
Loïc LESCOAT | l****c@e****m | 2 |
Quentin Mazars-Simon | q****n@g****m | 1 |
Camille Barneaud | 1****m | 1 |
BaudouinH | 4****H | 1 |
Committer domains:
- theodo.fr: 1
- lsce.ipsl.fr: 1
- outlook.fr: 1
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 26
Total pull requests: 116
Average time to close issues: 29 days
Average time to close pull requests: 3 days
Total issue authors: 6
Total pull request authors: 9
Average comments per issue: 0.88
Average comments per pull request: 0.11
Merged pull request: 108
Bot issues: 0
Bot pull requests: 0
Past year issues: 25
Past year pull requests: 71
Past year average time to close issues: 30 days
Past year average time to close pull requests: 3 days
Past year issue authors: 5
Past year pull request authors: 9
Past year average comments per issue: 0.88
Past year average comments per pull request: 0.13
Past year merged pull request: 66
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- clarani (11)
- tomasbastien (6)
- Lerri-Cofannos (4)
- GaboFlo (2)
- quentinms (2)
- babastienne (1)
Top Pull Request Authors
- clarani (77)
- paolagres (20)
- XavB64 (8)
- mikaelarguedas (6)
- loic-lescoat (1)
- BaudouinH (1)
- quentinms (1)
- gadcam (1)
- Lerri-Cofannos (1)
Top Issue Labels
- enhancement :rocket: (16)
- priority:medium :orange_circle: (7)
- priority:high :red_circle: (6)
- priority:low :yellow_circle: (4)
- bug :lady_beetle: (2)
- enhancement (1)
Top Pull Request Labels
Dependencies
- 1460 dependencies
- @types/google.maps ^3.54.10 development
- @types/katex ^0.16.7 development
- @types/leaflet ^1.9.8 development
- @types/lodash ^4.14.202 development
- @types/react ^18.2.46 development
- @chakra-ui/react ^2.8.2
- @emotion/react ^11.11.3
- @emotion/styled ^11.11.0
- @testing-library/jest-dom ^5.17.0
- @testing-library/react ^13.4.0
- @testing-library/user-event ^13.5.0
- @types/jest ^29.5.11
- @types/node ^20.10.6
- @types/react-dom ^18.2.18
- axios ^1.6.2
- framer-motion ^11.0.3
- i18next ^23.10.1
- i18next-browser-languagedetector ^7.2.0
- katex ^0.16.10
- leaflet ^1.9.4
- localforage ^1.10.0
- lodash ^4.17.21
- match-sorter ^6.3.4
- react ^18.2.0
- react-dom ^18.2.0
- react-i18next ^14.1.0
- react-icons ^4.12.0
- react-id-generator ^3.0.2
- react-leaflet ^4.2.1
- react-router-dom ^6.22.3
- react-scripts 5.0.1
- recharts ^2.11.0
- sort-by ^1.2.0
- typescript ^4.9.5
- web-vitals ^2.1.4
- Werkzeug ==2.2.2
- flask ==2.2.2
- flask_cors *
- geopandas ==0.14.0
- gunicorn *
- momepy ==0.6.0
- networkx ==2.8.4
- numpy ==1.23.2
- openrouteservice *
- pandas ==2.0.0
- plotly ==5.9.0
- pyproj ==3.6.1
- requests ==2.28.1
- shapely ==2.0.1
Score: 6.565264970035361