Skip to main content

Package used to create balanced LCA water exchange samples to override unbalanced sample in Brightway2.

Project description

bw2waterbalancer

bw2waterbalancer is a Python library used to create balanced water samples to override unbalanced sample.

Unbalanced samples arise when water exchanges are independently sampled. bw2waterbalancer rescales certain exchanges to ensure that the ratio of water inputs to water outputs is conserved. It is based on the Brightway2 LCA framework, and is meant to be used with presamples.

The rescaling is done according to three different strategy, depending on the nature of the exchanges: * default: rescale sampled inputs so that mass ratio of sampled input to sampled output is same as in static activity
* inverse: rescale sampled outputs so that mass ratio of sampled input to sampled output is same as in static activity
* set_static: replace sampled exchanges with value in static activity

It was developped with ecoinvent in mind, though the modifications required to make it useful for other databases would be minimal.

pipeline status coverage report

Installation

Use the package manager pip to install bw2waterbalancer:

pip install bw2waterbalancer

or use conda:

conda install --channel pascallesage bw2waterbalancer

Usage

from bw2waterbalancer import DatabaseWaterBalancer
from brightway2 import projects

projects.set_current("my project")

dwb = DatabaseWaterBalancer(
    ecoinvent_version="3.6", # used to identify activities with water production exchanges
    database_name="ei36_cutoff", #name the LCI db in the brightway2 project
)

Validating data Getting information on technosphere water exchanges 0% [##############################] 100% | ETA: 00:00:00 Total time elapsed: 00:00:00 Getting information on biosphere water exchanges 0% [##############################] 100% | ETA: 00:00:00 Total time elapsed: 00:01:09

# Generate samples, and format as matrix_data for use in presamples
dwb.add_samples_for_all_acts(iterations=1000)

0% [##############################] 100% | ETA: 00:00:00 Total time elapsed: 00:18:11

# Create presamples package
dwb.create_presamples(
    name='some name', 
    dirpath=some/path, 
    id_='some id',
    seed='sequential', #or None, or int
    )

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Acknowledgment

Special thanks to Quantis US for having funded the early iterations of this work.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for bw2waterbalancer, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size bw2waterbalancer-0.1.1-py3-none-any.whl (18.7 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size bw2waterbalancer-0.1.1.tar.gz (16.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page