Author: echatellier Date: 2014-04-10 18:44:50 +0200 (Thu, 10 Apr 2014) New Revision: 315 Url: http://forge.codelutin.com/projects/isis-fish-data/repository/revisions/315 Log: Mise ?\195?\160 jour dans la gestion des ouverture/fermeture et nettoyage des sessions Modified: branches/4.2.2/sensitivityanalysis/DOptimal.java branches/4.2.2/sensitivityanalysis/Fast.java branches/4.2.2/sensitivityanalysis/Morris.java branches/4.2.2/sensitivityanalysis/OptimumLHS.java branches/4.2.2/sensitivityanalysis/RandomLHS.java branches/4.2.2/sensitivityanalysis/RegularExpandGrid.java branches/4.2.2/sensitivityanalysis/RegularFractions.java branches/4.2.2/sensitivityanalysis/Sobol.java Modified: branches/4.2.2/sensitivityanalysis/DOptimal.java =================================================================== --- branches/4.2.2/sensitivityanalysis/DOptimal.java 2014-04-10 14:19:27 UTC (rev 314) +++ branches/4.2.2/sensitivityanalysis/DOptimal.java 2014-04-10 16:44:50 UTC (rev 315) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2009 - 2013 Ifremer, Code Lutin, Jean Couteau + * Copyright (C) 2009 - 2014 Ifremer, Code Lutin, Jean Couteau * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -32,7 +32,6 @@ import org.apache.commons.lang.StringUtils; import org.nuiton.j2r.REngine; import org.nuiton.j2r.RException; -import org.nuiton.j2r.RProxy; import org.nuiton.j2r.types.RDataFrame; import java.io.File; @@ -77,12 +76,8 @@ int factorsNb = factors.size(); try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - //Get Isis R session - engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - engine.voidEval("library(AlgDesign)"); //Create a list of the factors under the form factor1=factor1,... @@ -211,7 +206,7 @@ Map<Object, Object> values = discDomain.getValues(); int count=0; Collection<Object> collecValues = values.values(); - for (Object value:collecValues){ + for (Object value:collecValues) { if (count!=0){ parameters += ","; } @@ -236,11 +231,8 @@ "\"nomModel\")<-\"isis-fish-externe-R\""); engine.voidEval("names(isis.simule)<-isis.factors[[1]]"); - // Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); + closeEngine(engine, outputDirectory, false); - } catch (RException eee) { throw new SensitivityException("Can't generate scenarios", eee); } @@ -254,22 +246,16 @@ try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - //Get Isis R session - engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - //Get back the factors number int factorNumber = (Integer)engine.eval("dim(x$design)[2]"); SimulationParameter param = simulationStorages.get(0).getParameter(); int sensitivityNumber = param.getSensitivityExport().size(); - SimulationStorage firstStorage = simulationStorages.get(0); + String firstStorageName = outputDirectory.getName().replaceAll("-", ""); - String firstStorageName = firstStorage.getName().replaceAll("-", ""); - for (int k = 0; k < sensitivityNumber; k++) { SensitivityExport sensitivityExport = @@ -318,7 +304,7 @@ *Sensitivity Indices export name is sensitivityExportName_SensitivityIndices.csv */ -//Compute Sum of Squares and Sensitivity indices + //Compute Sum of Squares and Sensitivity indices engine.voidEval("SoS<-summary(aovresult)[[1]][1:dim(summary(aovresult)[[1]])[1],2]"); engine.voidEval("names(SoS)<-dimnames(summary(aovresult)[[1]])[[1]][1:dim(summary(aovresult)[[1]])[1]]"); engine.voidEval("IndSensibilite<-SoS/sum(SoS)"); @@ -373,23 +359,8 @@ } - //Rename R objects for saving purpose - renameObjects(engine, firstStorageName); + closeEngine(engine, outputDirectory); - - //Clean temporary R objects - for (String object:engine.ls()) { - if (!object.startsWith(firstStorageName)){ - engine.remove(object); - } - } - - //Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - - engine.terminate(); - } catch (Exception e) { throw new SensitivityException("Can't evaluate results", e); } Modified: branches/4.2.2/sensitivityanalysis/Fast.java =================================================================== --- branches/4.2.2/sensitivityanalysis/Fast.java 2014-04-10 14:19:27 UTC (rev 314) +++ branches/4.2.2/sensitivityanalysis/Fast.java 2014-04-10 16:44:50 UTC (rev 315) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2009 - 2013 Ifremer, Code Lutin, Jean Couteau + * Copyright (C) 2009 - 2014 Ifremer, Code Lutin, Jean Couteau * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -28,7 +28,6 @@ import fr.ifremer.isisfish.simulator.sensitivity.*; import org.nuiton.j2r.REngine; import org.nuiton.j2r.RException; -import org.nuiton.j2r.RProxy; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.export.SensitivityExport; @@ -102,12 +101,8 @@ try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - engine.clearSession(); - engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - // Load sensitivity package into R (if package already loaded, // nothing happens. engine.voidEval("library(sensitivity)"); @@ -156,10 +151,6 @@ engine.voidEval("names(isis.simule)<-isis.factors[[1]]"); - // Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - // Setting up the scenarios. for (int j = 0; j < nbExperiments; j++) { Scenario experimentScenario = new Scenario(); @@ -171,6 +162,8 @@ thisExperimentScenarios.add(experimentScenario); thisExperiment.setScenarios(thisExperimentScenarios); } + + closeEngine(engine, outputDirectory, false); } catch (RException eee) { throw new SensitivityException("Can't generate scenarios", eee); } @@ -182,20 +175,13 @@ public void analyzeResult(List<SimulationStorage> simulationStorages, File outputDirectory) throws SensitivityException { - SimulationStorage storage = simulationStorages.get(0); - String simulationName = storage.getName().replaceAll("-", ""); + String simulationName = outputDirectory.getName().replaceAll("-", ""); try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - //Clear session - engine.clearSession(); - - //Get Isis R session - engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - + // for export engine.setwd(outputDirectory); // Call R @@ -284,21 +270,9 @@ simulationName + "." + name)); } + + closeEngine(engine, outputDirectory); - //Rename R objects for saving purpose - renameObjects(engine, simulationName); - - //Clean temporary R objects - for (String object:engine.ls()) { - if (!object.startsWith(simulationName)){ - engine.remove(object); - } - } - - // Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - } catch (Exception e) { throw new SensitivityException("Can't evaluate results", e); } Modified: branches/4.2.2/sensitivityanalysis/Morris.java =================================================================== --- branches/4.2.2/sensitivityanalysis/Morris.java 2014-04-10 14:19:27 UTC (rev 314) +++ branches/4.2.2/sensitivityanalysis/Morris.java 2014-04-10 16:44:50 UTC (rev 315) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2009 - 2013 Ifremer, Code Lutin, Jean Couteau + * Copyright (C) 2009 - 2014 Ifremer, Code Lutin, Jean Couteau * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -123,17 +123,9 @@ rCall = editRInstruction(rCall); } - REngine engine; - try { - engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - engine.clearSession(); - - //Get Isis R session - engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - // Load sensitivity package into R (if package already loaded, // nothing happens. engine.voidEval("library(sensitivity)"); @@ -200,10 +192,6 @@ "\"isis-fish-externe-R\""); engine.voidEval("names(isis.simule)<-isis.factors[[1]]"); - // Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - // Setting up the scenarios. List<Scenario> thisExperimentScenarios = thisExperiment.getScenarios(); for (int j = 0; j < nbExperiments; j++) { @@ -216,6 +204,8 @@ thisExperimentScenarios.add(experimentScenario); thisExperiment.setScenarios(thisExperimentScenarios); } + + closeEngine(engine, outputDirectory, false); } catch (RException eee) { throw new SensitivityException("Can't generate scenarios", eee); @@ -229,20 +219,11 @@ public void analyzeResult(List<SimulationStorage> simulationStorages, File outputDirectory) throws SensitivityException { - SimulationStorage storage = simulationStorages.get(0); - String simulationName = storage.getName().replaceAll("-", ""); + String simulationName = outputDirectory.getName().replaceAll("-", ""); - REngine engine = null; - try { - engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - engine.clearSession(); - - //Get Isis R session - engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - // Call R // Load sensitivity package into R (if package already loaded, // nothing happens. @@ -331,20 +312,8 @@ } - //Rename R objects for saving purpose - renameObjects(engine,simulationName); + closeEngine(engine, outputDirectory); - //Clean temporary R objects - for (String object:engine.ls()) { - if (!object.startsWith(simulationName)){ - engine.remove(object); - } - } - - // Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - } catch (Exception e) { throw new SensitivityException("Can't evaluate results", e); } Modified: branches/4.2.2/sensitivityanalysis/OptimumLHS.java =================================================================== --- branches/4.2.2/sensitivityanalysis/OptimumLHS.java 2014-04-10 14:19:27 UTC (rev 314) +++ branches/4.2.2/sensitivityanalysis/OptimumLHS.java 2014-04-10 16:44:50 UTC (rev 315) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2009 - 2013 Ifremer, Code Lutin, Jean Couteau + * Copyright (C) 2009 - 2014 Ifremer, Code Lutin, Jean Couteau * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -26,7 +26,6 @@ import java.util.List; import org.nuiton.j2r.REngine; -import org.nuiton.j2r.RProxy; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.export.SensitivityExport; @@ -69,10 +68,10 @@ } @Override - public SensitivityScenarios compute(DesignPlan plan, File outputdirectory) + public SensitivityScenarios compute(DesignPlan plan, File outputDirectory) throws SensitivityException { - setIsisFactorsR(plan, outputdirectory); + setIsisFactorsR(plan, outputDirectory); int factorNumber = plan.getFactors().size(); List<Factor> factors = plan.getFactors(); @@ -84,15 +83,8 @@ checkAllFactorContinuous(factors); try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - //Clear session - engine.clearSession(); - - //Set working directory to get Isis R session - engine.loadRData(outputdirectory.getParentFile(), - outputdirectory.getName()); - //Load the lhs library engine.voidEval("library(lhs)"); @@ -200,12 +192,8 @@ engine.voidEval(rInstruction); - // Save Isis R session - engine.saveRData(outputdirectory.getParentFile(), - outputdirectory.getName()); + closeEngine(engine, outputDirectory, false); - engine.terminate(); - } catch (Exception e) { throw new SensitivityException("Can't generate scenarios", e); } @@ -219,20 +207,12 @@ //The first storage to get the name and parameters all along the method SimulationStorage storage = simulationStorages.get(0); + String simulationName = outputDirectory.getName().replaceAll("-", ""); - String simulationName = storage.getName().replaceAll("-", ""); - try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - //Clear session - engine.clearSession(); - - //Get Isis R session - engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - engine.voidEval("factors<-data.frame(x)"); engine.voidEval("names(factors)<-factornames"); @@ -349,18 +329,8 @@ } - //Rename R objects for saving purpose - renameObjects(engine, simulationName); + closeEngine(engine, outputDirectory); - //Clean temporary R objects - for (String object:engine.ls()) { - if (!object.startsWith(simulationName)){ - engine.remove(object); - } - } - - engine.terminate(); - } catch (Exception e) { throw new SensitivityException("Can't evaluate results", e); } Modified: branches/4.2.2/sensitivityanalysis/RandomLHS.java =================================================================== --- branches/4.2.2/sensitivityanalysis/RandomLHS.java 2014-04-10 14:19:27 UTC (rev 314) +++ branches/4.2.2/sensitivityanalysis/RandomLHS.java 2014-04-10 16:44:50 UTC (rev 315) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2009 - 2013 Ifremer, Code Lutin, Jean Couteau + * Copyright (C) 2009 - 2014 Ifremer, Code Lutin, Jean Couteau * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -28,7 +28,6 @@ import fr.ifremer.isisfish.export.SensitivityExport; import org.nuiton.j2r.REngine; -import org.nuiton.j2r.RProxy; import org.nuiton.j2r.types.RDataFrame; import fr.ifremer.isisfish.datastore.SimulationStorage; @@ -81,15 +80,8 @@ try { - REngine engine = new RProxy(); //The R engine + REngine engine = openEngine(outputDirectory); - //Clear session - engine.clearSession(); - - //Get Isis R session - engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - //Load the lhs library engine.voidEval("library(lhs)"); @@ -190,16 +182,13 @@ engine.voidEval(rInstruction); // Clean RData - for (Factor factor:factors) { - engine.remove(factor.getName().replaceAll(" ", "")); + for (Factor factor : factors) { + String factorName = factor.getName().replaceAll(" ", ""); + engine.remove(factorName); } - // Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); + closeEngine(engine, outputDirectory, false); - engine.terminate(); - } catch (Exception e) { throw new SensitivityException("Can't generate scenarios", e); } @@ -212,22 +201,14 @@ File outputDirectory) throws SensitivityException { SimulationStorage simulationStorage1 = simulationStorages.get(0); - String simName = simulationStorage1.getName(); - String simulationName = simName.replaceAll("-", ""); + String simulationName = outputDirectory.getName().replaceAll("-", ""); SimulationParameter param = simulationStorage1.getParameter(); int sensitivityNumber = param.getSensitivityExport().size(); //List<SensitivityExport> export = param.getSensitivityExport(); try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - //Clear session - engine.clearSession(); - - //Get Isis R session - engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - engine.voidEval("factors<-data.frame(x)"); //Get back the factors number @@ -339,26 +320,10 @@ "isis.methodAnalyse"; engine.voidEval(String.format(renameIsisMethodAnalyse, simulationName + "." + name)); - } - //Rename R objects for saving purpose - renameObjects(engine, simulationName); + closeEngine(engine, outputDirectory); - //Clean temporary R objects - for (String object:engine.ls()) { - if (!object.startsWith(simulationName)){ - engine.remove(object); - } - } - - - // Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - - engine.terminate(); - } catch (Exception e) { throw new SensitivityException("Can't evaluate results", e); } Modified: branches/4.2.2/sensitivityanalysis/RegularExpandGrid.java =================================================================== --- branches/4.2.2/sensitivityanalysis/RegularExpandGrid.java 2014-04-10 14:19:27 UTC (rev 314) +++ branches/4.2.2/sensitivityanalysis/RegularExpandGrid.java 2014-04-10 16:44:50 UTC (rev 315) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2009 - 2013 Ifremer, Code Lutin, Jean Couteau + * Copyright (C) 2009 - 2014 Ifremer, Code Lutin, Jean Couteau * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -32,7 +32,6 @@ import org.apache.commons.lang.StringUtils; import org.nuiton.j2r.REngine; import org.nuiton.j2r.RException; -import org.nuiton.j2r.RProxy; import org.nuiton.j2r.types.RDataFrame; import java.io.File; @@ -77,7 +76,7 @@ int factorsNb = factors.size(); try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); //Get Isis R session engine.loadRData(outputDirectory.getParentFile(), @@ -213,11 +212,8 @@ "\"nomModel\")<-\"isis-fish-externe-R\""); engine.voidEval("names(isis.simule)<-isis.factors[[1]]"); - // Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); + closeEngine(engine, outputDirectory, false); - } catch (RException eee) { throw new SensitivityException("Can't generate scenarios", eee); } @@ -231,22 +227,16 @@ try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - //Get Isis R session - engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - //Get back the factors number int factorNumber = (Integer)engine.eval("dim(x)[2]"); SimulationParameter param = simulationStorages.get(0).getParameter(); int sensitivityNumber = param.getSensitivityExport().size(); - SimulationStorage firstStorage = simulationStorages.get(0); + String firstStorageName = outputDirectory.getName().replaceAll("-", ""); - String firstStorageName = firstStorage.getName().replaceAll("-", ""); - for (int k = 0; k < sensitivityNumber; k++) { SensitivityExport sensitivityExport = @@ -344,22 +334,8 @@ } - //Rename R objects for saving purpose - renameObjects(engine, firstStorageName); + closeEngine(engine, outputDirectory); - //Clean temporary R objects - for (String object:engine.ls()) { - if (!object.startsWith(firstStorageName)){ - engine.remove(object); - } - } - - //Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - - engine.terminate(); - } catch (Exception e) { throw new SensitivityException("Can't evaluate results", e); } Modified: branches/4.2.2/sensitivityanalysis/RegularFractions.java =================================================================== --- branches/4.2.2/sensitivityanalysis/RegularFractions.java 2014-04-10 14:19:27 UTC (rev 314) +++ branches/4.2.2/sensitivityanalysis/RegularFractions.java 2014-04-10 16:44:50 UTC (rev 315) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2009 - 2013 Ifremer, Code Lutin, Jean Couteau + * Copyright (C) 2009 - 2014 Ifremer, Code Lutin, Jean Couteau * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -28,7 +28,6 @@ import fr.ifremer.isisfish.export.SensitivityExport; import org.nuiton.j2r.REngine; import org.nuiton.j2r.RException; -import org.nuiton.j2r.RProxy; import org.nuiton.j2r.types.RDataFrame; import fr.ifremer.isisfish.datastore.SimulationStorage; @@ -97,7 +96,7 @@ try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); //Clear session engine.clearSession(); @@ -204,12 +203,8 @@ engine.voidEval("names(isis.simule)<-isis.factors[[1]]"); - // Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); + closeEngine(engine, outputDirectory, false); - engine.terminate(); - } catch (RException eee) { throw new SensitivityException("Can't generate scenarios", eee); } @@ -226,19 +221,12 @@ SimulationParameter param = firstStorage.getParameter(); List<SensitivityExport> exports = param.getSensitivityExport(); int sensitivityNumber = exports.size(); - String simulationName = firstStorage.getName().replaceAll("-", ""); + String simulationName = outputDirectory.getName().replaceAll("-", ""); try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - //Clear session - engine.clearSession(); - - //Get Isis R session - engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - //Get back the factors number int factorNumber = (Integer) engine.eval("dim(data)[2]"); @@ -347,22 +335,8 @@ } - //Rename R objects for saving purpose - renameObjects(engine,simulationName); + closeEngine(engine, outputDirectory); - //Clean temporary R objects - for (String object:engine.ls()) { - if (!object.startsWith(simulationName)){ - engine.remove(object); - } - } - - // Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - - engine.terminate(); - } catch (Exception eee) { throw new SensitivityException("Can't evaluate results", eee); } Modified: branches/4.2.2/sensitivityanalysis/Sobol.java =================================================================== --- branches/4.2.2/sensitivityanalysis/Sobol.java 2014-04-10 14:19:27 UTC (rev 314) +++ branches/4.2.2/sensitivityanalysis/Sobol.java 2014-04-10 16:44:50 UTC (rev 315) @@ -29,7 +29,6 @@ import fr.ifremer.isisfish.simulator.sensitivity.*; import org.apache.commons.lang3.StringUtils; import org.nuiton.j2r.REngine; -import org.nuiton.j2r.RProxy; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.simulator.SimulationParameter; @@ -68,10 +67,10 @@ } @Override - public SensitivityScenarios compute(DesignPlan plan, File outputdirectory) + public SensitivityScenarios compute(DesignPlan plan, File outputDirectory) throws SensitivityException { - setIsisFactorsR(plan, outputdirectory); + setIsisFactorsR(plan, outputDirectory); RDataFrame dataFrame; int nbExperiments; @@ -90,15 +89,8 @@ } try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - //Clear session - engine.clearSession(); - - //Get Isis R session - engine.loadRData(outputdirectory.getParentFile(), - outputdirectory.getName()); - engine.voidEval("library(sensitivity)"); String x = "<-data.frame(matrix(c("; @@ -156,11 +148,7 @@ engine.voidEval("names(isis.simule)<-isis.factors[[1]]"); - // Save Isis R session - engine.saveRData(outputdirectory.getParentFile(), - outputdirectory.getName()); - - // Setting up the scenarios. + // Setting up the scenarios. for (int j = 0; j < nbExperiments; j++) { Scenario experimentScenario = new Scenario(); for (int i = 0; i < factorNumber; i++) { @@ -171,11 +159,13 @@ } thisExperimentScenarios.add(experimentScenario); } + + closeEngine(engine, outputDirectory, false); } catch (Exception e) { - throw new SensitivityException("Can't generate scenarios", e);} + throw new SensitivityException("Can't generate scenarios", e); + } - thisExperiment.setScenarios(thisExperimentScenarios); return thisExperiment; @@ -188,19 +178,12 @@ SimulationStorage firstStorage = simulationStorages.get(0); SimulationParameter param = firstStorage.getParameter(); int sensitivityNumber = param.getSensitivityExport().size(); - String simulationName = firstStorage.getName().replaceAll("-", ""); + String simulationName = outputDirectory.getName().replaceAll("-", ""); try { - REngine engine = new RProxy(); + REngine engine = openEngine(outputDirectory); - //Clear session - engine.clearSession(); - - //Get Isis R session - engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); - // Call R // Load sensitivity package into R (if package already loaded, // nothing happens. @@ -291,19 +274,7 @@ } - //Rename R objects for saving purpose - renameObjects(engine, simulationName); - - //Clean temporary R objects - for (String object:engine.ls()) { - if (!object.startsWith(simulationName)){ - engine.remove(object); - } - } - - // Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); + closeEngine(engine, outputDirectory); } catch (Exception e) { throw new SensitivityException("Can't evaluate results", e); }