Open aleksandra-kim opened 8 years ago
Original comment by Pascal Lesage (Bitbucket: MPa, ).
Importing datasets with electricity inputs expressed in MJ breaks import with this error:
C:\bw2-python\envs\bw2\lib\site-packages\bw2data\backends\peewee\database.py in _efficient_write_many_data(self, data, indices) 156 for exchange in ds.get('exchanges', []): 157 if 'input' not in exchange or 'amount' not in exchange: --> 158 raise InvalidExchange 159 if 'type' not in exchange: 160 raise UntypedExchange
InvalidExchange:
Original comment by Chris Mutel (Bitbucket: cmutel, GitHub: cmutel).
This is basically impossible to fix - at least for me, with my current knowledge and skills.
We already do some conversions to default units.
However, the example you give is exactly what makes it difficult. MJ
and kWh
are both used for energy in common practice and ecoinvent. So there is no "default" energy unit. As far as I know, SimaPro does provide unit conversions (see the end of the CSV file), but doesn't specify which unit process should use which conversion to match against ecoinvent. I think this is because SimaPro uses a different strategy to match against ecoinvent - we use a combination of name, product, unit, etc.
So, basically this is a known issue, but I have no idea how to fix it. Our guidance is to not use unit conversions in SimaPro.
Original comment by Pascal Lesage (Bitbucket: MPa, ).
Understood.
However, given that importing datasets from SimaPro that have MJ as unit for exchanges results in import failure, perhaps a clunky strategy like if 'electricity' in exchange['name'] and exchange['unit'] == 'MJ' then exchange['unit'] = 'kWh' and exchange['amount'] = exchange['amount'] * 1/3.6
I can't think of cases where this would break (but perhaps there are).
Original report by Chris Mutel (Bitbucket: cmutel, GitHub: cmutel).