Below is an example, fully regionalized native scale CF, at watershed ID 10492, monthly CF
source: https://wulca-waterlca.org/aware/download-aware-factors/
NOTE: This set of AWARE CFs is downloaded directly from WULCA, as indicated on its website for SP version 8.4, not for most updated SP v9
Raw CF data
# deleted Intro headers (row1-45), read-in & cleanup
SP_df = pd.read_csv('Aware102_SimaPro8_4_NOheader.csv', header=None)
print("Total number of CFs:", len(SP_df))
#SP_df.head()
#first 28 rows for world-average (not-country level) CFs: SP_df[0:40]
Total number of CFs: 5449
#all data entries with "non-agri" CFs: N=1584, to print out:
#SP_df[SP_df[1].str.contains("non-agri", na=False) | SP_df[2].str.contains("non-agri", na=False) | SP_df[3].str.contains("non-agri", na=False)]
# "non-agri" & "agri" CFs: N = 1584*2 = 3168
SP_df[SP_df[1].str.contains("agri", na=False) | SP_df[2].str.contains("agri", na=False) | SP_df[3].str.contains("agri", na=False)]
0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
10 | Water;(unspecified);Water | agri;007732-18-5;-0.045736878;kg | NaN | NaN | NaN |
11 | Water;ocean;Water | agri;007732-18-5;0;kg | NaN | NaN | NaN |
12 | Raw;(unspecified);Water | lake | agri;007732-18-5;45.73687803;m3 | NaN | NaN |
13 | Raw;(unspecified);Water | river | agri;007732-18-5;45.73687803;m3 | NaN | NaN |
14 | Raw;(unspecified);Water | unspecified natural origin/m3 | agri;007732-18-5;45.73687803;m3 | NaN | NaN |
... | ... | ... | ... | ... | ... |
5442 | Water;(unspecified);Water/m3 | non-agri | OECD+BRIC;007732-18-5;-17.45632;m3 | NaN | NaN |
5443 | Water;(unspecified);Water/m3 | non-agri | OECD+BRICS;007732-18-5;-17.48948;m3 | NaN | NaN |
5444 | Water;(unspecified);Water/m3 | non-agri | CS;007732-18-5;-3.29108;m3 | NaN | NaN |
5445 | Water;(unspecified);Water/m3 | non-agri | PS;007732-18-5;-54.0157;m3 | NaN | NaN |
5446 | Water;(unspecified);Water/m3 | non-agri | OCE;007732-18-5;-19.47827;m3 | NaN | NaN |
3168 rows × 5 columns
# the raw CSV file with messed up data structure, define a function to extract whatever you want, rawdf has total 0-4 cols
def select_df(rawdf, containstring):
sliced_df = rawdf[rawdf[0].str.contains(containstring, na=False)].append(
rawdf[rawdf[1].str.contains(containstring, na=False)]).append(
rawdf[rawdf[2].str.contains(containstring, na=False)]).append(
rawdf[rawdf[3].str.contains(containstring, na=False)]).append(
rawdf[rawdf[4].str.contains(containstring, na=False)])
return sliced_df
CN_aware = select_df(SP_df, 'CN')
print("Total number of CFs (agri. + non-agri + generic) for CN:", len(CN_aware))
#incl. both agri and non-agri
CN_allagri = select_df(CN_aware, 'agri')
print("Total number of agri and non-agri CFs for CN:",len(CN_allagri))
Total number of CFs (agri. + non-agri + generic) for CN: 24 Total number of agri and non-agri CFs for CN: 14
# 7 CFs for non-agri, to print:
select_df(CN_aware, 'non-agri')
0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
3910 | Water;(unspecified);Water | non-agri | CN;007732-18-5;-27.08065257;m3 | NaN | NaN |
5260 | Water;(unspecified);Water/m3 | non-agri | CN;007732-18-5;-27.08065257;m3 | NaN | NaN |
4135 | Raw;(unspecified);Water | lake | non-agri | CN;007732-18-5;27.08065257;m3 | NaN |
4360 | Raw;(unspecified);Water | river | non-agri | CN;007732-18-5;27.08065257;m3 | NaN |
4585 | Raw;(unspecified);Water | unspecified natural origin | non-agri | CN;007732-18-5;27.08065257;m3 | NaN |
4810 | Raw;(unspecified);Water | unspecified natural origin/m3 | non-agri | CN;007732-18-5;27.08065257;m3 | NaN |
5035 | Raw;(unspecified);Water | well | in ground | non-agri | CN;007732-18-5;27.08065257;m3 |
CN_allagri.drop(select_df(CN_aware, 'non-agri').index)
0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
2335 | Water;(unspecified);Water | agri | CN;007732-18-5;-45.8472784;m3 | NaN | NaN |
3685 | Water;(unspecified);Water/m3 | agri | CN;007732-18-5;-45.8472784;m3 | NaN | NaN |
2560 | Raw;(unspecified);Water | lake | agri | CN;007732-18-5;45.8472784;m3 | NaN |
2785 | Raw;(unspecified);Water | river | agri | CN;007732-18-5;45.8472784;m3 | NaN |
3010 | Raw;(unspecified);Water | unspecified natural origin | agri | CN;007732-18-5;45.8472784;m3 | NaN |
3235 | Raw;(unspecified);Water | unspecified natural origin/m3 | agri | CN;007732-18-5;45.8472784;m3 | NaN |
3460 | Raw;(unspecified);Water | well | in ground | agri | CN;007732-18-5;45.8472784;m3 |
CN_aware.drop(CN_allagri.index)
0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
67 | Water;(unspecified);Water | CN;007732-18-5;-42.47130357;m3 | NaN | NaN | NaN |
2110 | Water;(unspecified);Water/m3 | CN;007732-18-5;-42.47130357;m3 | NaN | NaN | NaN |
751 | Raw;(unspecified);Water | lake | CN;007732-18-5;42.47130357;m3 | NaN | NaN |
976 | Raw;(unspecified);Water | river | CN;007732-18-5;42.47130357;m3 | NaN | NaN |
1426 | Raw;(unspecified);Water | unspecified natural origin | CN;007732-18-5;42.47130357;m3 | NaN | NaN |
1660 | Raw;(unspecified);Water | unspecified natural origin/m3 | CN;007732-18-5;42.47130357;m3 | NaN | NaN |
301 | Raw;(unspecified);Water | cooling | unspecified natural origin | CN;007732-18-5;27.08065257;m3 | NaN |
526 | Raw;(unspecified);Water | cooling | unspecified natural origin/m3 | CN;007732-18-5;27.08065257;m3 | NaN |
1201 | Raw;(unspecified);Water | turbine use | unspecified natural origin | CN;007732-18-5;27.08065257;m3 | NaN |
1885 | Raw;(unspecified);Water | well | in ground | CN;007732-18-5;42.47130357;m3 | NaN |
US_aware = select_df(SP_df, 'US')
US_aware_allagri = select_df(US_aware, 'agri')
take the US for example:
# US agri CFs = 35.71
US_aware_allagri.drop(select_df(US_aware, 'non-agri').index)
# US non-agri CFs = 9.08, to print:
#select_df(US_aware, 'non-agri')
# US generic = 33.12, except for cooling | turbine use: CF = 9.08 -> same as CF(US-non-agri), to print:
#US_aware.drop(US_aware_allagri.index)
0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
2494 | Water;(unspecified);Water | agri | US;007732-18-5;-35.71546543;m3 | NaN | NaN |
3844 | Water;(unspecified);Water/m3 | agri | US;007732-18-5;-35.71546543;m3 | NaN | NaN |
2719 | Raw;(unspecified);Water | lake | agri | US;007732-18-5;35.71546543;m3 | NaN |
2944 | Raw;(unspecified);Water | river | agri | US;007732-18-5;35.71546543;m3 | NaN |
3169 | Raw;(unspecified);Water | unspecified natural origin | agri | US;007732-18-5;35.71546543;m3 | NaN |
3394 | Raw;(unspecified);Water | unspecified natural origin/m3 | agri | US;007732-18-5;35.71546543;m3 | NaN |
3619 | Raw;(unspecified);Water | well | in ground | agri | US;007732-18-5;35.71546543;m3 |
SPv9_df = pd.read_excel('SP_9_AWARE.xlsx')
print("Total number of CFs_in SP v9", len(SPv9_df))
SPv9_df.head()
Total number of CFs_in SP v9 1807
Compartment | Subcompartment | Substance | CAS | Factor | Unit | |
---|---|---|---|---|---|---|
0 | Raw | (unspecified) | Water, cooling, drinking | 007732-18-5 | 0.04295 | m3 / kg |
1 | Raw | (unspecified) | Water, cooling, surface | 007732-18-5 | 0.04295 | m3 / kg |
2 | Raw | (unspecified) | Water, cooling, unspecified natural origin, AD | 007732-18-5 | 74.67000 | m3 / m3 |
3 | Raw | (unspecified) | Water, cooling, unspecified natural origin, AE | 007732-18-5 | 18.56000 | m3 / m3 |
4 | Raw | (unspecified) | Water, cooling, unspecified natural origin, AF | 007732-18-5 | 57.20000 | m3 / m3 |
SPv9_df[SPv9_df["Substance"].str.contains("CN", na=False)]
Compartment | Subcompartment | Substance | CAS | Factor | Unit | |
---|---|---|---|---|---|---|
41 | Raw | (unspecified) | Water, cooling, unspecified natural origin, CN | 007732-18-5 | 42.43 | m3 / m3 |
271 | Raw | (unspecified) | Water, lake, CN | 007732-18-5 | 42.43 | m3 / m3 |
495 | Raw | (unspecified) | Water, river, CN | 007732-18-5 | 42.43 | m3 / m3 |
715 | Raw | (unspecified) | Water, turbine use, unspecified natural origin... | 007732-18-5 | 42.43 | m3 / m3 |
932 | Raw | (unspecified) | Water, unspecified natural origin, CN | 007732-18-5 | 42.43 | m3 / m3 |
1161 | Raw | (unspecified) | Water, well, CN | 007732-18-5 | 42.43 | m3 / m3 |
1384 | Water | (unspecified) | Water, CN | 007732-18-5 | -42.43 | m3 / m3 |
1617 | Water | ocean | Water, CN | 007732-18-5 | 0.00 | m3 / m3 |
AWARE (Available WAter REmaining) is the recommended method from WULCA to assess water consumption impact assessment in LCA. In May 2016, the method was also endorsed by the EU Joint Research Center. AWARE is to be used as a water use midpoint indicator representing the relative Available WAter REmaining per area in a watershed after the demand of humans and aquatic ecosystems has been met. It assesses the potential of water deprivation, to either humans or ecosystems, building on the assumption that the less water remaining available per area, the more likely another user will be deprived. It is first calculated as the water Availability Minus the Demand (AMD) of humans and aquatic ecosystems and is relative to the area (m3 m-2 month-1). In a second step, the value is normalized with the world average result (AMD = 0.0136 m3 m-2 month-1) and inverted. The result represents the relative value in comparison with the average m3 consumed in the world (the world average is calculated as a consumption-weighted average). The indicator is limited to a range from 0.1 to 100, with a value of 1 corresponding to the world average, and a value of 10, for example, representing a region where there is 10 times less available water remaining per area than the world average. Documentation is available from: http://www.wulca-waterlca.org.
PLEASE NOTE! Implementation of AWARE includes only the generic factors for unknown water usage and not the factors specific for agricultural and non-agricultural use of water (irrigation/non-irrigation, these are currently not supported the inventory data). The second set can be used to reduce uncertainty when specific watershed or month is not known, based on the activity's water use pattern. The full version of the method, including those additional flows, both in the flow-based and in the parametrized version can be downloaded from http://www.openlca.org/download/ and imported as a JSON-LD in openLCA. Note that this is only useful if you have data available in your model that support the additional flows.
Adaptations by PRé Consultants: 7 aluminium producing regions were included in order to fit the inventories. They were given the factors of the following regions: IAI Area, Africa -> Africa IAI Area; Asia, without China and GCC -> Asia; IAI Area, EU27 & EFTA -> Europe; IAI Area, Gulf Cooperation Council -> Middle East; IAI Area, North America, without Quebec -> North America; IAI Area, Russia & RER w/o EU27 & EFTA -> Europe; IAI Area, South America -> South America. Other adaptations (September 2018, version 1.02): (i) Added characterisation factors for the following geographies: NORDEL, UCTE, UCTE without Germany, WEU; (ii) Corrected all characterisation factors to include four significant digits. Other adaptation (March 2017, version 1.01): (i) Changed the subcompartment for the Raw materials - from 'in water' to '(unspecified)'. (ii) Added the Waterborne emissions flows for subcompartment 'ocean' with factor 0.
Method checked against SimaPro 9.0.0.30.
openLCA AWARE CFs: source https://raw.githubusercontent.com/GreenDelta/data/master/LCIA%20method/categories/Water%20use%20%2B%20AWARE.csv
Full transparency of all LCIA methods implemented in openLCA: https://github.com/GreenDelta/data
olca_CF = pd.read_csv('https://raw.githubusercontent.com/GreenDelta/data/master/LCIA%20method/categories/Water%20use%20%2B%20AWARE.csv')
print("Total number of CFs in openLCA:", len(olca_CF))
Total number of CFs in openLCA: 4568
Raw CFs, how it look like
olca_CF.head()
IMPACT_METHOD | IMPACT_CATEGORY_UUID | IMPACT_CATEGORY | REFERENCE_UNIT | FLOW_UUID | FLOW | CAS_NUMBER | SUBCATEGORY | CATEGORY | UNIT | VALUE | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 2ec98519-0441-3879-bc20-0483a724fab1 | Water, unspecified natural origin, RoW | NaN | in ground | Resource | m3 | 44.040 |
1 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | abc005bc-18ef-4134-a532-215fe609b66e | Water, unspecified natural origin, GA | NaN | in ground | Resource | m3 | 1.088 |
2 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | c3b30b05-89b9-4429-afdd-f2555ba9cb14 | Water, unspecified natural origin, SM | NaN | in ground | Resource | m3 | 12.190 |
3 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 39a69e8b-8315-4cbd-95b7-7b38a4570683 | Water, unspecified natural origin, PG | NaN | in ground | Resource | m3 | 1.427 |
4 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 7a576055-2843-4b8c-8d52-cdf2b4c5af3a | Water, unspecified natural origin, LT | NaN | in ground | Resource | m3 | 1.232 |
print("Total number of CFs for China:", len(olca_CF[olca_CF['FLOW'].str.contains("CN")]))
olca_CF[olca_CF['FLOW'].str.contains("CN")]
Total number of CFs for China: 19
IMPACT_METHOD | IMPACT_CATEGORY_UUID | IMPACT_CATEGORY | REFERENCE_UNIT | FLOW_UUID | FLOW | CAS_NUMBER | SUBCATEGORY | CATEGORY | UNIT | VALUE | |
---|---|---|---|---|---|---|---|---|---|---|---|
15 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 3415f4a8-db36-3c69-b844-26281514fa51 | Water, unspecified natural origin, CN | NaN | in ground | Resource | m3 | 42.43 |
428 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | d3079d00-615f-3804-b658-d7c3f073f09d | Water, turbine use, unspecified natural origin... | NaN | unspecified | Resource | m3 | 42.43 |
781 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 25ee87eb-a72e-33b6-a4e5-32319607b905 | Water, lake, CN | NaN | unspecified | Resource | m3 | 42.43 |
798 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | a9ef7558-2b99-3635-bcdf-e769625b036d | Water, river, CN | NaN | unspecified | Resource | m3 | 42.43 |
808 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | b6ea128a-d262-33b6-9d09-d81aec9f0bc0 | Water, well, CN | NaN | unspecified | Resource | m3 | 42.43 |
1273 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | bdc7d16a-dd5a-3bea-9afa-ca982715107e | Water, unspecified natural origin, CN | NaN | unspecified | Resource | m3 | 42.43 |
1467 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 91a8a7ab-2278-3f30-a335-e60d4fbaf8b8 | Water, cooling, unspecified natural origin, CN | NaN | unspecified | Resource | m3 | 42.43 |
1817 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | be16cf07-da08-3ff5-856d-0e1f2aa3e806 | Water, unspecified natural origin, CN | NaN | in water | Resource | m3 | 42.43 |
2172 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | e6bf7393-ca27-36b6-89d0-0c155afe959a | Water, turbine use, unspecified natural origin... | NaN | in water | Resource | m3 | 42.43 |
2576 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | a4c9c845-737c-3304-a2de-9c3e09f320cf | Water, river, CN | NaN | in water | Resource | m3 | 42.43 |
3062 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 84bfc229-0279-3203-b773-65f263df050c | Water, lake, CN | NaN | in water | Resource | m3 | 42.43 |
3135 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | c0ec2e25-fb9e-3e87-8138-7e049cb5ab18 | Water, well, CN | NaN | in water | Resource | m3 | 42.43 |
3300 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 121b0f77-c14f-393e-8b68-30b46e1a426c | Water, cooling, unspecified natural origin, CN | NaN | in water | Resource | m3 | 42.43 |
3479 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 315bad13-6e3d-3a70-9163-d9502cc768db | Water, CN | NaN | unspecified | Emission to water | m3 | -42.43 |
3791 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 558c271a-fb4d-3dc7-a7e0-f1e7ec9336b0 | Water, CN | NaN | ocean | Emission to water | m3 | 0.00 |
3920 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 2f94f7a8-d996-4d16-bbc8-5c11b2b13418 | Water, CN | NaN | surface water | Emission to water | m3 | -42.43 |
4120 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 5c701a7b-d757-3e17-a9d5-c317dccdb8c3 | Water, CN | 007732-18-5 | river | Emission to water | m3 | -42.43 |
4271 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | b1dec0e9-3843-352d-9358-cb41be2c9f33 | Water, CN | 007732-18-5 | lake | Emission to water | m3 | -42.43 |
4415 | AWARE | 2e0e479e-6ea7-3221-88ea-41aa6530c5d2 | Water use | m3 | 4f2c6805-4c00-347c-8554-9e1e474e9b99 | Water, CN | NaN | ground water | Emission to water | m3 | -42.43 |
# if only see "subcategory" == "unspecified" (as in SP compartment, only "unspecified"), to print:
#olca_CF[olca_CF['FLOW'].str.contains("CN") & olca_CF['SUBCATEGORY'].str.contains("unspecified") ]
# to see CFs for the US, 33.84
#olca_CF[olca_CF['FLOW'].str.contains("US")]
Version 03 August 2017
The present implementation allows the user to calculate the Water Footprint of a process/system for any chosen polygon, it works by aggregating the anual CFs for each of the watersheds intersected following the guidelines provided by the AWARE authors. Some of the results may differ from the pre-defined factors published on WULCA due to a mistake on the pre-defined factors' calculations. CFs for irrigation activities, non-irrigation activities and unknown differ as determined on AWARE method. To get the correct results make sure "#Arithmetic mean" is selected at the "Shape files (beta)" tab below
Limitations: 1 - Monthly aggregated CFs are not supported by this implementation of the method.
Info: Further information about the method can be found on the publicly available study, please check the referece below. Boulay, A.-M., J. Bare, L. Benini, M. Berger, M. J. Lathuillière, A. Manzardo, M. Margni, M. Motoshita, M. Núñez, A. V. Pastor, B. Ridoutt, T. Oki, S. Worbe and S. Pfister (2017). "The WULCA consensus characterization model for water scarcity footprints: assessing impacts of water consumption based on available water remaining (AWARE)." The International Journal of Life Cycle Assessment: 1-11.
BW2 source code hided for clean presentation, only output is shown
import brightway2 as bw
import os # to use "operating system dependent functionality"
import numpy as np # "the fundamental package for scientific computing with Python"
import pandas as pd # "high-performance, easy-to-use data structures and data analysis tools" for Python
bw.projects.set_current("EIDB38AWARE")
my_bio = bw.Database('biosphere3')
[m for m in bw.methods if 'AWARE' in str(m)]
[('AWARE', '1.2 (April 2017)', 'Annual', 'Agricultural'), ('AWARE', '1.2 (April 2017)', 'Annual', 'Non-agricultural')]
AWARE_agri = [m for m in bw.methods if 'AWARE' in str(m) and "Agricultural" in str(m)][0]
AWARE_nonagri = [m for m in bw.methods if 'AWARE' in str(m) and "Non-agricultural" in str(m)][0]
AWARE_agri_method = bw.Method(AWARE_agri)
AWARE_nonagri_method = bw.Method(AWARE_nonagri)
Load AWARE_agri_CF introduction
Total number of CFs = 49940 becaz it's fully regionalized with monthly/watershed CFs at native scale
# load AWARE_agri_CF introduction
AWARE_agri_method.metadata
{'unit': 'Availability Minus Demand (AMD), m**3/m**2/month', 'description': 'AWARE is a water use midpoint indicator representing the relative Available WAter REmaining per area in a watershed, after the demand of humans and aquatic ecosystems has been met. It assesses the potential of water deprivation, to either humans or ecosystems, building on the assumption that the less water remaining available per area, the more likely another user will be deprived.\n\n It is first calculated as the water Availability Minus the Demand (AMD) of humans and aquatic ecosystems and is relative to the area (m3 m-2 month-1). In a second step, the value is normalized with the world average result (AMD = 0.0136m3m-2 month-1) and inverted, and hence represents the relative value in comparison with the average m3 consumed in the world (the world average is calculated as a consumption-weighted average). Once inverted, 1/AMD can be interpreted as a surface-time equivalent to generate unused water in this region. The indicator is limited to a range from 0.1 to 100, with a value of 1 corresponding to the world average, and a value of 10, for example, representing a region where there is 10 times less available water remaining per area than the world average.', 'url': 'http://www.wulca-waterlca.org/aware.html', 'geocollections': ['watersheds-aware'], 'abbreviation': 'aware12-April-2017aa.7c809839dc850d0740950ffb10c7bf5a', 'num_cfs': 49940}
#AWARE_agri_method.load()
len(AWARE_agri_method.load())
49940
ei36 = bw.Database('ecoinvent 3.6 cutoff')
xx = [act for act in ei36 if 'electricity production, photovoltaic, 3kWp slanted-roof installation, single-Si, panel, mounted' in act['name'] and act['location'].startswith('CN-BJ')][0]
xx
'electricity production, photovoltaic, 3kWp slanted-roof installation, single-Si, panel, mounted' (kilowatt hour, CN-BJ, None)
xxAware_nonagri = bw.LCA({xx:1}, ('AWARE', '1.2 (April 2017)', 'Annual', 'Non-agricultural'))
xxAware_nonagri.lci()
xxAware_nonagri.lcia()
xxAware_nonagri.score
0.044134310408349364
xxAware_agri = bw.LCA({xx:1}, ('AWARE', '1.2 (April 2017)', 'Annual', 'Agricultural'))
xxAware_agri.lci()
xxAware_agri.lcia()
xxAware_agri.score
0.09944352256275835
# cow milk
mm = [act for act in ei36 if 'milk production, from cow' in act['name'] and 'RoW' in act['location'] and 'milk' in act['reference product']][0]
mmAware_nonagri = bw.LCA({mm:1}, ('AWARE', '1.2 (April 2017)', 'Annual', 'Non-agricultural'))
mmAware_nonagri.lci()
mmAware_nonagri.lcia()
mmAware_nonagri.score
0.837412093064728
mmAware_agri = bw.LCA({mm:1}, ('AWARE', '1.2 (April 2017)', 'Annual', 'Agricultural'))
mmAware_agri.lci()
mmAware_agri.lcia()
mmAware_agri.score
# openLCA result = 1.77
1.886858718320724
info@susdatability.com