+1 vote
I've found that some unit processes are missing when I import one database into another. Has anyone else found this / ideas for workaround?

Specifically, I restore a clean version of Ecoinvent 3.5 LCI / system processes (cut off). Validate. Everything seems to be there. I then restore a clean version of EI 3.5 unit processes (cut off). Validate. Everything seems to be there. Nice.

However, if I then import the UP dataset into the LCI dataset - either from the zolca or the one I just restored - it seems to work fine (takes maybe 10 minutes on this PC) but while most of the processes are there (unit and system), some of the unit processes are missing. Typically, these are the ones from earlier in the list (e.g. fishing only has system processes) but I'm not really sure what the pattern is. The problem seems repeatable on different PCs running Windows10 with oLCA 1.8.0

Any ideas would be really welcome :) I don't fancy combining these process by process but even if a solution takes a bit longer, I could then export the resulting databases (it would be one for each of the three EI approaches and include the impact methods) and so other staff and students in our faculty wouldn't need to.

Thanks, Sam
in openLCA by (2k points)

1 Answer

+1 vote
by (23.4k points)
Probably this has something to do with existing UUIDs in the database into which yo want to import processes. Maybe select "overwrite" when importing (if that's what you want to do). I think there is also a paragraph on this in the ecoinvent 3.5 for openLCA documentation: https://nexus.openlca.org/ws/files/14712
by (2k points)
Hi Jonas, thanks as ever for your helpful advice.
You're totally right - this looks like they have the same UUIDs.  
This confuses me though. Is it deliberate? Unless I misunderstand, it means that if someone gets Ecoinvent from Nexus, then they can't combine system and unit processes from the same system model (e.g. cutoff)! To me, this means that the nexus version of Ecoinvent3.5 is broken.
I don't see an option to "overwrite" when importing a zolca (e.g. in the way that there is if importing a JSON-LD). However, this is definitely not what I'd want - I'd like to see both processes (UP and LCI) next to each other, so that the appropriate one can be selected for a given product system. Surely it is not so unusual to want to use unit processes for the main parts of your product system (so that you can see the detail and also drill down a bit further in results) but then use system processes for parts of the product system that are less central (to make it computation reasonable).  
Thanks for the link to the manual :) It is well written and useful - I did have a look through already. I think maybe you're referring to p7 where having a UUID the same for a given process between different database versions is desirable. However, this is quite a different situation and possibly contradicts the 2nd paragraph - maybe attempting this when constructing the zolca version was the source of the problem however?
In fact, the manual even states that the six databases can be used in combination. If they have identical UUIDs for some processes then I don't think this is always true.
Is there a way I can do a bulk change of all the UUIDs in the system process dataset (i.e. preferring that to changing the unit process one so that preferred providers aren't messed up) so that e.g. each is assigned a new random UUID or something? I realise that this would break compatibility with models created in earlier versions but that is not a concern for us.
by (2k points)
Ah, just thought - the problem with my idea I could randomise the UUIDs is that we'd loose any possibility of compatibility with future versions or other datasets that might work with them. Doh.
by (23.4k points)
1) Yes, it's deliberate that the UUIDs are the same. In this way, ecoinvent 3.4 models can be imported into ecoinvent 3.5 models with more easy.
2) You can see the "overwrite" etc. options during JSON-LD import when you click on "next" after choosing a file.
3) You can easily randomize the UUIDs I suppose via the SQL Query browser and the other developer tools or connect an SQL Client such as SQuirreL to a database and change database elements. However, keep in mind that openLCA connects database items via the UUID so it is very easy to mess up the links in your database (and with this the entire database) if you do not replace all UUIDs in the correct database 'positions'.
by (23.4k points)
If I find some time I will check the ecoinvent LCI/UP compatibility later on. If you want you can open a new question for this.
by (2k points)
Hi Jonas
1) Wait, I realise it's deliberate that the UUIDs are the same between 3.4 and 3.5 as per the manual but are you saying it's deliberate that the UUIDs are the same between the Ecoinvent LCI and the UP datasets? This means that they can't be combined - i.e. contradicting the manual you linked to?
2) Yes - I thought I clarified but guess wasn't clear - I'm importing a zolca file (i.e. the UP dataset). I guess I could export it all as a JSON-LD and do that. But again, the aim was to use both datasets together, not to overwrite either of them.
3) Thanks.
Thanks again for your help with this and everything else. I'm just a bit surprised if this really is as intended as it seems to prevent the Ecoinvent database being fully used.
by (2k points)
edited by
Thanks! OK maybe that would be clearer - new question is here https://ask.openlca.org/1707/combine-ecoinvent-system-datasets-without-loosing-processes