0 votes
1.6k views

Hi,

I am currently having problems analysing a product system using OpenLCA 1.5.0 and the EcoInvent_3_3_cutoff_u database. At first, the analysis wouldn`t complete at all. I then increased the maximal memory usage from 3072MB to 5000MB, which solved the problem.

However, now the analysis returns a long list of zeros for nearly every item in the LCI. I tried using TRACI2.1 and Recipe Endpoint (H) and received similar results. I get several error messages saying "Formula evaluation failed, exchange #######". Most errors seem to be related to "lexical errors", but some are also related to "Unknown variable inputs".

Has anyone faced this problem before and if so, what did you do to solve it? I copied two examples from the log file below, if that helps.

Thank you,

Charles

***
org.openlca.expressions.InterpreterException: Evaluation of expression LiveLink(`\Fs01Gabe\_LCAEcoinventv3v3 dataLivelink data for ecoeditorPassenger_car_exhaust_emissions.xls`,`CNG`,`E42`,``, `Automatic`) failed: Lexical error at line 1, column 10. Encountered: "`" (39), after : ""
     at org.openlca.expressions.Scope.eval(Scope.java:60)
     at org.openlca.core.matrix.ExchangeCell.tryEval(ExchangeCell.java:39)
     at org.openlca.core.matrix.ExchangeCell.eval(ExchangeCell.java:29)
     at org.openlca.core.matrix.ExchangeMatrix.lambda$1(ExchangeMatrix.java:83)
     at org.openlca.core.matrix.ExchangeMatrix$$Lambda$26/1340551858.apply(Unknown Source)
     at org.openlca.core.matrix.ExchangeMatrix.iterate(ExchangeMatrix.java:115)
     at org.openlca.core.matrix.ExchangeMatrix.eval(ExchangeMatrix.java:82)
     at org.openlca.core.matrix.Inventory.evalFormulas(Inventory.java:71)
     at org.openlca.core.matrix.Inventory.createMatrix(Inventory.java:39)
     at org.openlca.core.math.SystemCalculator.calculator(SystemCalculator.java:50)
     at org.openlca.core.math.SystemCalculator.calculateFull(SystemCalculator.java:41)
     at org.openlca.app.editors.systems.CalculationWizard$Calculation.analyse(Unknown Source)
     at org.openlca.app.editors.systems.CalculationWizard$Calculation.run(Unknown Source)
     at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
    Caused by: org.openlca.expressions.TokenMgrError: Lexical error at line 1, column 10. Encountered: "`" (39), after : ""
     at org.openlca.expressions.FormulaParserTokenManager.getNextToken(FormulaParserTokenManager.java:590)
     at org.openlca.expressions.FormulaParser.jj_ntk(FormulaParser.java:596)
     at org.openlca.expressions.FormulaParser.function(FormulaParser.java:366)
     at org.openlca.expressions.FormulaParser.element(FormulaParser.java:335)
     at org.openlca.expressions.FormulaParser.unary(FormulaParser.java:305)
     at org.openlca.expressions.FormulaParser.power(FormulaParser.java:257)
     at org.openlca.expressions.FormulaParser.term(FormulaParser.java:209)
     at org.openlca.expressions.FormulaParser.realsum(FormulaParser.java:173)
     at org.openlca.expressions.FormulaParser.compare(FormulaParser.java:110)
     at org.openlca.expressions.FormulaParser.logicalAnd(FormulaParser.java:90)
     at org.openlca.expressions.FormulaParser.logicalXor(FormulaParser.java:70)
     at org.openlca.expressions.FormulaParser.logicalOr(FormulaParser.java:50)
     at org.openlca.expressions.FormulaParser.expand(FormulaParser.java:44)
     at org.openlca.expressions.FormulaParser.parse(FormulaParser.java:39)
     at org.openlca.expressions.Scope.tryEval(Scope.java:68)
     at org.openlca.expressions.Scope.eval(Scope.java:58)
     ... 13 more

***
org.openlca.expressions.InterpreterException: Evaluation of expression carbon_dioxide failed: Evaluation of variable carbon_dioxide failed: Unknown variable bagasse_input at line 1, column 12 at line 1, column 1
     at org.openlca.expressions.Scope.eval(Scope.java:60)
     at org.openlca.core.matrix.ExchangeCell.tryEval(ExchangeCell.java:39)
     at org.openlca.core.matrix.ExchangeCell.eval(ExchangeCell.java:29)
     at org.openlca.core.matrix.ExchangeMatrix.lambda$1(ExchangeMatrix.java:83)
     at org.openlca.core.matrix.ExchangeMatrix$$Lambda$26/1340551858.apply(Unknown Source)
     at org.openlca.core.matrix.ExchangeMatrix.iterate(ExchangeMatrix.java:115)
     at org.openlca.core.matrix.ExchangeMatrix.eval(ExchangeMatrix.java:82)
     at org.openlca.core.matrix.Inventory.evalFormulas(Inventory.java:71)
     at org.openlca.core.matrix.Inventory.createMatrix(Inventory.java:39)
     at org.openlca.core.math.SystemCalculator.calculator(SystemCalculator.java:50)
     at org.openlca.core.math.SystemCalculator.calculateFull(SystemCalculator.java:41)
     at org.openlca.app.editors.systems.CalculationWizard$Calculation.analyse(Unknown Source)
     at org.openlca.app.editors.systems.CalculationWizard$Calculation.run(Unknown Source)
     at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
    Caused by: org.openlca.expressions.ExpressionException: Evaluation of variable carbon_dioxide failed: Unknown variable bagasse_input at line 1, column 12 at line 1, column 1
     at org.openlca.expressions.VariableFunction.evaluate(VariableFunction.java:34)
     at org.openlca.expressions.Scope.tryEval(Scope.java:71)
     at org.openlca.expressions.Scope.eval(Scope.java:58)
     ... 13 more

in openLCA by
retagged by

1 Answer

0 votes
by (125k points)
Hello Charles,
this is one reason why we recommend using the ecoinvent databases from openLCA Nexus and not from ecoinvent directly, i.e. not the original ecoinvent files; in these, many parameters are incorrectly specified, or contain links to harddrives of persons involved in the editing and creation of the datasets (as e.g. the first one "`\Fs01Gabe\_LCAEcoinventv3v3 dataLivelink data for ecoeditorPassenger_car_exhaust_emissions.xls". This is a topic in the forum since the release of ecoinvent 3.
Best wishes,
Andreas

p.s.: I took the liberty to add the brackets to your post title, I hope this is ok
by
Hi Andreas,

I see, thank you for your answer - I wasn`t aware of this problem, I only recently started to work with EcoInvent 3.3. I`ll then update my database with the EcoInvent files from the Nexus.

This raises another question. I have not modified the original EcoInvent files, but I do use them as back-end data as "provider" for several fluxes in my front-end modelling. Is there a way I can simply replace the original files currently in my database by the ones available on OpenLCA Nexus? Would importing the `new` database override the existing files that share identical names, or would that cause errors?

If I put this another way, since `providers` refer to a process by its name, would this link stay true in the event that the database from OpenLCA overrides the problematic original one?

Many thanks,

Charles
by (125k points)
Hi Charles,
if this is not too many providers, you can use the "bulk replace" option now in openLCA 1.6.2:

Import the Nexus packs into the database you are working with, and perform the replacement. Afterwards you can export your product systems from that database, import the Nexus packs into a "fresh" openLCA database, and import there also your product systems, to get rid of the old ecoinvent files.
For many different providers, I would recommend a script, see here for possible starting points:
https://github.com/GreenDelta/openlca-python-tutorial>. We could also support you if you like.
Best wishes,
Andreas
...