OcelotProject / Ocelot

Ocelot is open-source linking for life cycle assessment. See https://ocelot.space/ for more information.
Other
26 stars 7 forks source link

Relabel activities which both treat and produce recyclable products #155

Open cmutel opened 5 years ago

cmutel commented 5 years ago

It seems like there is another type of allocation in the cut-off model that we hadn't considered before: when an activity has a reference product that is recyclable and has a negative amount, and a byproduct that is also recyclable. For example, the Swiss activity treatment of waste paper, unsorted, sorting has a reference product production of -1.025 waste paper, unsorted. However, the reference model result produces 1 kg of waste paper, sorted, and moves the unsorted paper to a positive input. It also moves all waste byproducts to negative inputs.

This procedure is very similar to the procedure for recycling allocation, except that the documentation for recycling_allocation explicitly states that:

Note that recycling allocation is not applied to `recyclable` byproducts, 
as the cutoff system model breaks the chain between production and 
consumption of these types of materials.

It looks like our criteria for recycling allocation need to be broadened. The cutoff here occurs at waste paper, unsorted, Recycled Content cut-off which produces waste paper, unsorted, which is correct, but the sorting dataset still needs to be "allocated".

cmutel commented 5 years ago

Comment from Ingo (email 21.12.2018):

This is what is checked/moved: treatment activities with a refProd with the cut-off classification "recyclable" get their refProd moved to the input side and one of the non-waste (again based on the cut-off classification) by-products becomes the new refProd.

For example, treatment of waste paper, unsorted, sorting. Can you confirm that this is correct, and is a new function (as opposed to the side effects of existing functionality in Ocelot).

Yes, that's one of the main features of the cut-off system model: handling datasets based on the cut-off classification of their reference products. There are specific linking tasks for allocatable by-products, recyclables and wastes.

cmutel commented 5 years ago

The problem with the current code is that it doesn't apply any allocation if there are no allocatable byproducts (i.e. exc.get('byproduct classification') == 'allocatable product'). I tried to fix this is 700c15dc39e66b0d9b06e3887826173dbeb07dd3, but I guess this still isn't perfect. A better way would be to unify these two recycling allocation strategies.

cmutel commented 5 years ago

Gregor Wernet calls this the "recycling chain", and it can happen before allocation. In theory, no other byproducts are allowed (or else it violates our intuition for how the recycling chain should work), but this should be checked.