A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

carculator

Prospective environmental and economic life cycle assessment of vehicles made blazing fast.
https://github.com/laboratory-for-energy-systems-analysis/carculator

Category: Industrial Ecology
Sub Category: Life Cycle Assessment

Keywords from Contributors

ecoinvent inventory lifecycle lca

Last synced: about 22 hours ago
JSON representation

Repository metadata

Prospective environmental and economic life cycle assessment of vehicles made blazing fast.

README.md

carculator

Prospective environmental and economic life cycle assessment of vehicles made blazing fast.

A fully parameterized Python model developed by the Technology Assessment group of the
Paul Scherrer Institut to perform life cycle assessments (LCA) of passenger cars and light-duty vehicles.

See the documentation for more detail, validation, etc.

See our examples notebook as well.

Table of Contents

Background

What is Life Cycle Assessment?

Life Cycle Assessment (LCA) is a systematic way of accounting for environmental impacts along the relevant phases of the life of a product or service.
Typically, the LCA of a passenger vehicle includes the raw material extraction, the manufacture of the vehicle, its distribution, use and maintenance, as well as its disposal.
The compiled inventories of material and energy required along the life cycle of the vehicle is characterized against some impact categories (e.g., climate change).

In the research field of mobility, LCA is widely used to investigate the superiority of a technology over another one.

Why carculator?

carculator allows to:

  • produce life cycle assessment (LCA) results that include conventional midpoint impact assessment indicators as well cost indicators
  • carculator uses time- and energy scenario-differentiated background inventories for the future, based on outputs of Integrated Asessment Model REMIND.
  • calculate hot pollutant and noise emissions based on a specified driving cycle
  • produce error propagation analyzes (i.e., Monte Carlo) while preserving relations between inputs and outputs
  • control all the parameters sensitive to the foreground model (i.e., the vehicles) but also to the background model
    (i.e., supply of fuel, battery chemistry, etc.)
  • and easily export the vehicle models as inventories to be further imported in the Brightway2 LCA framework
    or the SimaPro LCA software.

carculator integrates well with the Brightway LCA framework.

carculator was built based on work described in Uncertain environmental footprint of current and future battery electric vehicles by Cox, et al (2018).

Install

carculator is at an early stage of development and is subject to continuous change and improvement.
Three ways of installing carculator are suggested.

We recommend the installation on Python 3.7 or above.

Installation of the latest version, using conda

conda install -c romainsacchi carculator

Installation of a stable release from Pypi

pip install carculator

Usage

As a Python library

Calculate the fuel efficiency (or Tank to wheel energy requirement) in km/L of petrol-equivalent of current SUVs for the driving cycle WLTC 3.4
over 800 Monte Carlo iterations:


    from carculator import *
    import matplotlib.pyplot as plt
    
    cip = CarInputParameters()
    cip.stochastic(800)
    dcts, array = fill_xarray_from_input_parameters(cip)
    cm = CarModel(array, cycle='WLTC 3.4')
    cm.set_all()
    TtW_energy = 1 / (cm.array.sel(size='SUV', year=2020, parameter='TtW energy') / 42000)  # assuming 42 MJ/L petrol
    
    l_powertrains = TtW_energy.powertrain
    [plt.hist(e, bins=50, alpha=.8, label=e.powertrain.values) for e in TtW_energy]
    plt.xlabel('km/L petrol-equivalent')
    plt.ylabel('number of iterations')
    plt.legend()

MC results

Compare the carbon footprint of electric vehicles with that of rechargeable hybrid vehicles for different size categories today and in the future
over 500 Monte Carlo iterations:


    from carculator import *
    cip = CarInputParameters()
    cip.stochastic(500)
    dcts, array = fill_xarray_from_input_parameters(cip)
    cm = CarModel(array, cycle='WLTC')
    cm.set_all()
    scope = {
      'powertrain': ['BEV', 'PHEV'],
    }
    ic = InventoryCalculation(cm)
    
    results = ic.calculate_impacts()
    data_MC = results.sel(impact_category='climate change').sum(axis=3).to_dataframe('climate change')
    plt.style.use('seaborn')
    data_MC.unstack(level=[0, 1, 2]).boxplot(showfliers=False, figsize=(20, 5))
    plt.xticks(rotation=70)
    plt.ylabel('kg CO2-eq./vkm')

MC results

For more examples, see examples.

As a Web app

carculator has a graphical user interface for fast comparisons of vehicles.

Support

Do not hesitate to contact the development team at [email protected].

Maintainers

Contributing

See contributing.

License

BSD-3-Clause. Copyright 2023 Paul Scherrer Institut.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 7 days ago

Total Commits: 1,024
Total Committers: 5
Avg Commits per committer: 204.8
Development Distribution Score (DDS): 0.066

Commits in past year: 40
Committers in past year: 3
Avg Commits per committer in past year: 13.333
Development Distribution Score (DDS) in past year: 0.3

Name Email Commits
romainsacchi r****s@m****m 956
Chris Mutel c****l@g****m 36
romainsacchi r****n@R****h 17
Randy Duodu (He/Him) d****9@g****m 9
A-Sterni 1****i 6

Committer domains:


Issue and Pull Request metadata

Last synced: 2 days ago

Total issues: 43
Total pull requests: 30
Average time to close issues: 7 months
Average time to close pull requests: 4 days
Total issue authors: 11
Total pull request authors: 4
Average comments per issue: 2.14
Average comments per pull request: 0.07
Merged pull request: 27
Bot issues: 0
Bot pull requests: 0

Past year issues: 2
Past year pull requests: 5
Past year average time to close issues: N/A
Past year average time to close pull requests: 18 days
Past year issue authors: 1
Past year pull request authors: 1
Past year average comments per issue: 1.0
Past year average comments per pull request: 0.0
Past year merged pull request: 4
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/laboratory-for-energy-systems-analysis/carculator

Top Issue Authors

  • romainsacchi (11)
  • A-Sterni (8)
  • floriandierickx (4)
  • tngTUDOR (4)
  • cmutel (4)
  • djuch (2)
  • dominiquedemunck (2)
  • Loisel (2)
  • renanong (2)
  • Shima-Fa (2)
  • iSayeed (2)

Top Pull Request Authors

  • romainsacchi (13)
  • cmutel (8)
  • A-Sterni (5)
  • iSOLveIT (4)

Top Issue Labels

Top Pull Request Labels


Dependencies

requirements.txt pypi
  • bw2io *
  • klausen *
  • numexpr *
  • numpy *
  • pandas *
  • pycountry *
  • pyprind *
  • pyyaml *
  • scipy *
  • wurst *
  • xarray *
  • xlrd *
setup.py pypi
  • bw2io *
  • klausen *
  • numexpr *
  • numpy *
  • pandas *
  • pycountry *
  • pyyaml *
  • wurst *
  • xarray *
  • xlrd *
.github/workflows/main.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
  • gabrielfalcao/pyenv-action v9 composite
  • github/super-linter v4 composite
  • jamescurtin/isort-action master composite
  • lgeiger/black-action v1.0.1 composite
  • pypa/gh-action-pypi-publish master composite
docs/docs_requirements.txt pypi
  • sphinx *
  • sphinx-copybutton *
  • sphinx-immaterial *
  • sphinxcontrib-bibtex *

Score: 5.598421958998375