LCA-ActivityBrowser / activity-browser

GUI for brightway2
GNU Lesser General Public License v3.0
134 stars 50 forks source link

Scenario LCA with different DB-Parameters gives odd LCIA-Results #1231

Closed SELTENEERDEN closed 4 months ago

SELTENEERDEN commented 4 months ago

Updating AB

What happened?

Hi everyone, I have an LCA model with six product outputs. To do a co-product allocation, I created my model as a unit process. Then I created a new process for each product output. Each of these "product-processes" has my unitless model as input from technosphere and the desired quantity of the product as output. The specific amount of technosphere input is modelled as a parameter (e.g. product revenue for economic allocation). When I calculate the LCIA with the "standard LCA" with my default parameters I get plausible results in the range of 1 to 10,000 kg CO2eq/product. As soon as I use the "scenario LCA", things get weird. Let me quickly walk you through the process of how I create the scenario parameters: I click on "Export parameter scenarios" in the parameters tab. Next, I open the Excel file and duplicate the 'default' column with all the parameters. For the sake of explanation, let's say I just copy-paste the column twice next to the "default" column. So that I know I have column C, D and E in my spreadsheet exactly the same. I then rename column D to "Allocation 1" and E to "Allocation 2". Next I click on 'Import parameter scenarios' in the Parameters tab and import my parameter Excel spreadsheet. The table I see in the activity browser now looks as I would expect. The values seem fine. Next I click on "add" in the LCIA Setup header with "scenario lca" selected. There I select my parameter Excel spreadsheet again. When I calculate this LCIA, my results are way too high in a range of 1e36. Not only are the decimals wrong, but also the relationship of the results between each product, e.g. if product A was the one with the highest CO2eq, it is now product C. I have attached the code from the terminal to you. Thanks in advance for your help!

Relevant errors

(base) C:\Windows\system32>activate ab

(ab) C:\Windows\system32>activity-browser
-hiding tab:History

DevTools listening on ws://127.0.0.1:3999/devtools/browser/d5070855-8675-42b3-ae87-0b6d7f1548f6
-hiding tab:Activity Details
-hiding tab:Characterization Factors
-hiding tab:Graph Explorer
-hiding tab:LCA results
The Activity Browser log file can be found at C:\Users\benif\AppData\Local\ActivityBrowser\ActivityBrowser\Logs\ab_logs-2024-2-12_17-12-41.log
Activity Browser version: 2.9.4
Loading user settings:
dirpath already loaded
Reset project settings directory to:C:\Users\benif\AppData\Local\pylca\Brightway3\test.098f6bcd4621d373cade4e832627b4f6
Loaded project:test
Brightway2 data directory: C:\Users\benif\AppData\Local\pylca\Brightway3
Brightway2 active project: test
Qt Version:5.15.8
Remote debugging server started successfully. Try pointing a Chromium-based browser to http://127.0.0.1:3999
Current shape and databases in the MetaDataStore:(0, 0)set()
Adding:kevitsa
Current shape and databases in the MetaDataStore:(22, 8){'kevitsa'}
Adding:ei-cutoff391
Adding:biosphere3
+showing tab:LCA results
Traceback (most recent call last):
  File "C:\ProgramData\miniconda3\envs\ab\Lib\site-packages\matplotlib\backends\backend_qt.py", line 344, in resizeEvent
    self.figure.set_size_inches(winch, hinch, forward=False)
  File "C:\ProgramData\miniconda3\envs\ab\Lib\site-packages\matplotlib\figure.py", line 3039, in set_size_inches
    raise ValueError(f'figure size must be positive finite not {size}')
ValueError: figure size must be positive finite not [ 0.4  -0.09]

Traceback (most recent call last):
  File "C:\ProgramData\miniconda3\envs\ab\Lib\site-packages\matplotlib\backends\backend_qt.py", line 344, in resizeEvent
    self.figure.set_size_inches(winch, hinch, forward=False)
  File "C:\ProgramData\miniconda3\envs\ab\Lib\site-packages\matplotlib\figure.py", line 3039, in set_size_inches
    raise ValueError(f'figure size must be positive finite not {size}')
ValueError: figure size must be positive finite not [ 0.4  -0.09]

Traceback (most recent call last):
  File "C:\ProgramData\miniconda3\envs\ab\Lib\site-packages\matplotlib\backends\backend_qt.py", line 344, in resizeEvent
    self.figure.set_size_inches(winch, hinch, forward=False)
  File "C:\ProgramData\miniconda3\envs\ab\Lib\site-packages\matplotlib\figure.py", line 3039, in set_size_inches
    raise ValueError(f'figure size must be positive finite not {size}')
ValueError: figure size must be positive finite not [ 0.34 -0.09]

Traceback (most recent call last):
  File "C:\ProgramData\miniconda3\envs\ab\Lib\site-packages\matplotlib\backends\backend_qt.py", line 344, in resizeEvent
    self.figure.set_size_inches(winch, hinch, forward=False)
  File "C:\ProgramData\miniconda3\envs\ab\Lib\site-packages\matplotlib\figure.py", line 3039, in set_size_inches
    raise ValueError(f'figure size must be positive finite not {size}')
ValueError: figure size must be positive finite not [ 0.34 -0.09]

No data in scenario table 1, skipping
separator == ';'
Loading Scenario file. This may take a while for large files
Superstructure: Attempting to read as parameter scenario file.
<function ScenarioImportWidget.scenario_db_check at 0x0000025DD478D580> -- 0.0
<function SuperstructureManager.fill_empty_process_keys_in_exchanges at 0x0000025DD4180680> -- 0.0010020732879638672
<function SuperstructureManager.verify_scenario_process_keys at 0x0000025DD41807C0> -- 0.011173725128173828
<function SuperstructureManager.check_duplicates at 0x0000025DD4180A40> -- 0.0009999275207519531
<function SuperstructureManager.check_scenario_exchange_values at 0x0000025DD4180900> -- 0.0010001659393310547
C:\ProgramData\miniconda3\envs\ab\Lib\site-packages\activity_browser\bwutils\superstructure\manager.py:289: PerformanceWarning: indexing past lexsort depth may impact performance.
  self_referential_production_flows.loc[idx, 'flow type'] = 'production'
<function SuperstructureManager.merge_flows_to_self at 0x0000025DD4180360> -- 0.0380098819732666
<function ScenarioImportWidget.sync_superstructure at 0x0000025DD478D440> -- 0.059186458587646484
<function ScenarioImportWidget.load_action at 0x0000025DD478D300> -- 7.4019176959991455
+showing tab:LCA results

Operating system

Windows 10

Conda environment

# packages in environment at C:\ProgramData\miniconda3\envs\ab:
#
# Name                    Version                   Build  Channel
activity-browser          2.9.4              pyhd8ed1ab_0    conda-forge
appdirs                   1.4.4              pyh9f0ad1d_0    conda-forge
arrow                     1.3.0              pyhd8ed1ab_0    conda-forge
asteval                   0.9.31             pyhd8ed1ab_0    conda-forge
astunparse                1.6.3              pyhd8ed1ab_0    conda-forge
blinker                   1.7.0              pyhd8ed1ab_0    conda-forge
brightway2                2.4.4              pyhd8ed1ab_0    conda-forge
brotli                    1.1.0                hcfcfb64_1    conda-forge
brotli-bin                1.1.0                hcfcfb64_1    conda-forge
brotli-python             1.1.0           py311h12c1d0e_1    conda-forge
brotlicffi                1.1.0.0         py311h12c1d0e_1    conda-forge
bw2analyzer               0.10               pyhd8ed1ab_0    conda-forge
bw2calc                   1.8.2           py311h1ea47a8_0    conda-forge
bw2data                   3.6.6              pyhd8ed1ab_0    conda-forge
bw2io                     0.8.10             pyhd8ed1ab_0    conda-forge
bw2parameters             1.1.0              pyhd8ed1ab_0    conda-forge
bw_migrations             0.2                pyhd8ed1ab_0    conda-forge
bzip2                     1.0.8                hcfcfb64_5    conda-forge
ca-certificates           2023.11.17           h56e8100_0    conda-forge
certifi                   2023.11.17         pyhd8ed1ab_0    conda-forge
cffi                      1.16.0          py311ha68e1ae_0    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
click                     8.1.7           win_pyh7428d3b_0    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
contourpy                 1.2.0           py311h005e61a_0    conda-forge
cycler                    0.12.1             pyhd8ed1ab_0    conda-forge
dill                      0.3.7              pyhd8ed1ab_0    conda-forge
docopt                    0.6.2                      py_1    conda-forge
eidl                      2.0.1              pyhd8ed1ab_0    conda-forge
eight                     1.0.1              pyhd8ed1ab_4    conda-forge
et_xmlfile                1.1.0              pyhd8ed1ab_0    conda-forge
fasteners                 0.17.3             pyhd8ed1ab_0    conda-forge
flask                     3.0.0              pyhd8ed1ab_0    conda-forge
fonttools                 4.47.2          py311ha68e1ae_0    conda-forge
freetype                  2.12.1               hdaf720e_2    conda-forge
future                    0.18.3             pyhd8ed1ab_0    conda-forge
gettext                   0.21.1               h5728263_0    conda-forge
glib                      2.78.3               h12be248_0    conda-forge
glib-tools                2.78.3               h12be248_0    conda-forge
gst-plugins-base          1.22.8               h001b923_1    conda-forge
gstreamer                 1.22.8               hb4038d2_1    conda-forge
icu                       73.2                 h63175ca_0    conda-forge
idna                      3.6                pyhd8ed1ab_0    conda-forge
importlib-metadata        7.0.1              pyha770c72_0    conda-forge
importlib_metadata        7.0.1                hd8ed1ab_0    conda-forge
inflate64                 1.0.0           py311ha68e1ae_0    conda-forge
intel-openmp              2023.2.0         h57928b3_50497    conda-forge
itsdangerous              2.1.2              pyhd8ed1ab_0    conda-forge
jinja2                    3.1.3              pyhd8ed1ab_0    conda-forge
kiwisolver                1.4.5           py311h005e61a_1    conda-forge
krb5                      1.21.2               heb0366b_0    conda-forge
lcms2                     2.16                 h67d730c_0    conda-forge
lerc                      4.0.0                h63175ca_0    conda-forge
libblas                   3.9.0              20_win64_mkl    conda-forge
libbrotlicommon           1.1.0                hcfcfb64_1    conda-forge
libbrotlidec              1.1.0                hcfcfb64_1    conda-forge
libbrotlienc              1.1.0                hcfcfb64_1    conda-forge
libcblas                  3.9.0              20_win64_mkl    conda-forge
libclang                  15.0.7          default_h77d9078_3    conda-forge
libclang13                15.0.7          default_h77d9078_3    conda-forge
libdeflate                1.19                 hcfcfb64_0    conda-forge
libffi                    3.4.2                h8ffe710_5    conda-forge
libglib                   2.78.3               h16e383f_0    conda-forge
libhwloc                  2.9.1                h51c2c0f_0    conda-forge
libiconv                  1.17                 hcfcfb64_2    conda-forge
libjpeg-turbo             3.0.0                hcfcfb64_1    conda-forge
liblapack                 3.9.0              20_win64_mkl    conda-forge
libogg                    1.3.4                h8ffe710_1    conda-forge
libpng                    1.6.39               h19919ed_0    conda-forge
libsqlite                 3.44.2               hcfcfb64_0    conda-forge
libtiff                   4.6.0                h6e2ebb7_2    conda-forge
libvorbis                 1.3.7                h0e60522_0    conda-forge
libwebp                   1.3.2                hcfcfb64_1    conda-forge
libwebp-base              1.3.2                hcfcfb64_0    conda-forge
libxcb                    1.15                 hcd874cb_0    conda-forge
libxml2                   2.10.4               hc3477c8_0    conda-forge
libxslt                   1.1.37               h0192164_0    conda-forge
libzlib                   1.2.13               hcfcfb64_5    conda-forge
lxml                      4.9.2           py311h5942461_0    conda-forge
m2w64-gcc-libgfortran     5.3.0                         6    conda-forge
m2w64-gcc-libs            5.3.0                         7    conda-forge
m2w64-gcc-libs-core       5.3.0                         7    conda-forge
m2w64-gmp                 6.1.0                         2    conda-forge
m2w64-libwinpthread-git   5.0.0.4634.697f757               2    conda-forge
markupsafe                2.1.3           py311ha68e1ae_1    conda-forge
matplotlib-base           3.8.2           py311h6e989c2_0    conda-forge
mkl                       2023.2.0         h6a75c08_50497    conda-forge
mrio_common_metadata      0.2.1              pyhd8ed1ab_0    conda-forge
msys2-conda-epoch         20160418                      1    conda-forge
multiprocess              0.70.15         py311ha68e1ae_1    conda-forge
multivolumefile           0.2.3              pyhd8ed1ab_0    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
networkx                  3.2.1              pyhd8ed1ab_0    conda-forge
numpy                     1.23.5          py311h95d790f_0    conda-forge
openjpeg                  2.5.0                h3d672ee_3    conda-forge
openpyxl                  3.1.2           py311ha68e1ae_1    conda-forge
openssl                   3.2.0                hcfcfb64_1    conda-forge
packaging                 23.2               pyhd8ed1ab_0    conda-forge
pandas                    2.1.4           py311hf63dbb6_0    conda-forge
pathos                    0.3.1              pyhd8ed1ab_0    conda-forge
patsy                     0.5.6              pyhd8ed1ab_0    conda-forge
pcre2                     10.42                h17e33f8_0    conda-forge
peewee                    3.17.0          py311had142b2_0    conda-forge
pillow                    10.2.0          py311h4dd8a23_0    conda-forge
pint                      0.21               pyhd8ed1ab_0    conda-forge
pip                       23.3.2             pyhd8ed1ab_0    conda-forge
pox                       0.3.3              pyhd8ed1ab_0    conda-forge
ppft                      1.7.6.7            pyhd8ed1ab_0    conda-forge
psutil                    5.9.7           py311ha68e1ae_0    conda-forge
pthread-stubs             0.4               hcd874cb_1001    conda-forge
pthreads-win32            2.9.1                hfa6e2cd_3    conda-forge
py7zr                     0.20.8             pyhd8ed1ab_1    conda-forge
pybcj                     1.0.2           py311ha68e1ae_0    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pycryptodomex             3.19.0          py311ha68e1ae_1    conda-forge
pypardiso                 0.4.3              pyhd8ed1ab_0    conda-forge
pyparsing                 3.1.1              pyhd8ed1ab_0    conda-forge
pyperclip                 1.8.2              pyhd8ed1ab_2    conda-forge
pyppmd                    1.1.0           py311h12c1d0e_0    conda-forge
pyprind                   2.11.2          py311h1ea47a8_1005    conda-forge
pyside2                   5.15.8          py311h2411a93_2    conda-forge
pysocks                   1.7.1              pyh0701188_6    conda-forge
python                    3.11.0          hcf16a7b_0_cpython    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python-tzdata             2023.4             pyhd8ed1ab_0    conda-forge
python_abi                3.11                    4_cp311    conda-forge
pytz                      2023.3.post1       pyhd8ed1ab_0    conda-forge
pyxlsb                    1.0.10             pyhd8ed1ab_0    conda-forge
pyzstd                    0.15.9          py311he5d195f_1    conda-forge
qt-main                   5.15.8              h9e85ed6_18    conda-forge
qt-webengine              5.15.8               h4bf5c4e_4    conda-forge
requests                  2.31.0             pyhd8ed1ab_0    conda-forge
salib                     1.4.7              pyhd8ed1ab_0    conda-forge
scipy                     1.11.4          py311h0b4df5a_0    conda-forge
seaborn                   0.13.1               hd8ed1ab_0    conda-forge
seaborn-base              0.13.1             pyhd8ed1ab_0    conda-forge
setuptools                69.0.3             pyhd8ed1ab_0    conda-forge
setuptools-scm            8.0.4              pyhd8ed1ab_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
stats_arrays              0.6.6              pyhd8ed1ab_0    conda-forge
statsmodels               0.14.1          py311h59ca53f_0    conda-forge
tabulate                  0.9.0              pyhd8ed1ab_1    conda-forge
tbb                       2021.9.0             h91493d7_0    conda-forge
texttable                 1.7.0              pyhd8ed1ab_0    conda-forge
tk                        8.6.13               h5226925_1    conda-forge
tomli                     2.0.1              pyhd8ed1ab_0    conda-forge
tqdm                      4.66.1             pyhd8ed1ab_0    conda-forge
types-python-dateutil     2.8.19.20240106    pyhd8ed1ab_0    conda-forge
typing-extensions         4.9.0                hd8ed1ab_0    conda-forge
typing_extensions         4.9.0              pyha770c72_0    conda-forge
tzdata                    2023d                h0c530f3_0    conda-forge
ucrt                      10.0.22621.0         h57928b3_0    conda-forge
unicodecsv                0.14.1             pyhd8ed1ab_2    conda-forge
unidecode                 1.3.8              pyhd8ed1ab_0    conda-forge
urllib3                   2.1.0              pyhd8ed1ab_0    conda-forge
vc                        14.3                hcf57466_18    conda-forge
vc14_runtime              14.38.33130         h82b7239_18    conda-forge
voluptuous                0.14.1             pyhd8ed1ab_0    conda-forge
vs2015_runtime            14.38.33130         hcb4865c_18    conda-forge
werkzeug                  3.0.1              pyhd8ed1ab_0    conda-forge
wheel                     0.42.0             pyhd8ed1ab_0    conda-forge
whoosh                    2.7.4           py311h1ea47a8_8    conda-forge
win_inet_pton             1.1.0              pyhd8ed1ab_6    conda-forge
wrapt                     1.16.0          py311ha68e1ae_0    conda-forge
xlrd                      2.0.1              pyhd8ed1ab_3    conda-forge
xlsxwriter                3.1.9              pyhd8ed1ab_0    conda-forge
xorg-libxau               1.0.11               hcd874cb_0    conda-forge
xorg-libxdmcp             1.1.3                hcd874cb_0    conda-forge
xz                        5.2.6                h8d14728_0    conda-forge
zipfile-deflate64         0.2.0           py311ha68e1ae_4    conda-forge
zipp                      3.17.0             pyhd8ed1ab_0    conda-forge
zstd                      1.5.5                h12be248_0    conda-forge
mrvisscher commented 4 months ago

Hi!

I see that you're using an older version of the Activity Browser. We made some changes to the scenario importer in 2.9.5. Please update your AB and let me know whether the issue persists!

Kind regards,

Marin

SELTENEERDEN commented 4 months ago

Hi Marin, Thanks for the quick reply and sorry for not checking that I was running the latest version before asking my question, but unfortunately the bug persists even after updating :( Does anyone have any idea what could be causing this and how I can fix it? Thanks everyone

mrvisscher commented 4 months ago

That's too bad,

Are you able to share your 'Kevitsa' database as excel and the parameter scenario file with me so I can try to reproduce the issue? You may send them to m.r.visscher@science.leidenuniv.nl if you'd like.

Kind regards,

Marin

SELTENEERDEN commented 4 months ago

Hi Marin, thank you so much for your help! I sent you an e-mail! Maybe also check your spam.