r288 - in branches/4.1: . scripts sensitivityanalysis sensitivityexports
Author: echatellier Date: 2012-05-29 11:27:28 +0200 (Tue, 29 May 2012) New Revision: 288 Url: http://forge.codelutin.com/repositories/revision/isis-fish-data/288 Log: Merge trunk into branch Modified: branches/4.1/ branches/4.1/pom.xml branches/4.1/scripts/GravityModel.java branches/4.1/scripts/SiMatrix.java branches/4.1/sensitivityanalysis/SensitivityCalculatorJavaExpandGrid.java branches/4.1/sensitivityanalysis/SensitivityCalculatorRDOptimal.java branches/4.1/sensitivityanalysis/SensitivityCalculatorRExpandGrid.java branches/4.1/sensitivityanalysis/SensitivityCalculatorRFast.java branches/4.1/sensitivityanalysis/SensitivityCalculatorRMorris.java branches/4.1/sensitivityanalysis/SensitivityCalculatorROptimumLHS.java branches/4.1/sensitivityanalysis/SensitivityCalculatorRRandomLHS.java branches/4.1/sensitivityanalysis/SensitivityCalculatorRSobol.java branches/4.1/sensitivityanalysis/SensitivityCalculatorRegularFractions.java branches/4.1/sensitivityexports/SensitivitySpawningBiomassReferenceY8.java branches/4.1/sensitivityexports/SensitivitySpawningBiomassRelativeReferenceY11.java branches/4.1/sensitivityexports/SensitivitySpawningBiomassRelativeY5.java branches/4.1/sensitivityexports/SensitivitySpawningBiomassY2.java Property changes on: branches/4.1 ___________________________________________________________________ Added: svn:mergeinfo + /trunk:272-287 Modified: branches/4.1/pom.xml =================================================================== --- branches/4.1/pom.xml 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/pom.xml 2012-05-29 09:27:28 UTC (rev 288) @@ -14,7 +14,7 @@ <packaging>jar</packaging> <!--Version --> - <version>4.0.0</version> + <version>4.1.1</version> <!--Description --> <description>Data for Isis-fish</description> @@ -36,7 +36,7 @@ <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> + <version>2.5</version> <configuration> <source>1.6</source> <target>1.6</target> @@ -49,7 +49,7 @@ <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> - <version>1.2</version> + <version>1.2.1</version> <executions> <execution> <goals> @@ -74,7 +74,7 @@ <dependency> <groupId>fr.ifremer</groupId> <artifactId>isis-fish</artifactId> - <version>4.0.0.3-SNAPSHOT</version> + <version>4.1.1.0-SNAPSHOT</version> <scope>compile</scope> </dependency> </dependencies> Modified: branches/4.1/scripts/GravityModel.java =================================================================== --- branches/4.1/scripts/GravityModel.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/scripts/GravityModel.java 2012-05-29 09:27:28 UTC (rev 288) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin + * Copyright (C) 2006 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -49,15 +49,14 @@ import fr.ifremer.isisfish.types.TimeUnit; /** - * GravityModel.java - * - * Created: 4 sept. 06 15:49:08 - * + * Gravity model calcul des resultats à basés sur des resultats provenant + * de SiMatrix ou des resultat précédement calculé disponible via le + * result manager. + * + * Cette classe sert a calculer des résultats economique (prix, resultat + * servant a optimiser des cout pour les pécheurs...). + * * @author poussin - * @version $Revision: 1.9 $ - * - * Last update: $Date: 2007-03-01 17:16:12 $ - * by : $Author: bpoussin $ */ public class GravityModel { Modified: branches/4.1/scripts/SiMatrix.java =================================================================== --- branches/4.1/scripts/SiMatrix.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/scripts/SiMatrix.java 2012-05-29 09:27:28 UTC (rev 288) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Benjamin Poussin + * Copyright (C) 2006 - 2012 Ifremer, Code Lutin, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -59,15 +59,10 @@ import fr.ifremer.isisfish.types.Month; /** - * SiMatrix.java + * SiMatrix calcul simplement des résultats ne dependant que des parametres + * de simulation et des données du modèle. * - * Created: 21 aout 2006 15:53:01 - * * @author poussin - * @version $Revision: 1.18 $ - * - * Last update: $Date: 2007-11-02 17:53:20 $ - * by : $Author: bpoussin $ */ public class SiMatrix { Modified: branches/4.1/sensitivityanalysis/SensitivityCalculatorJavaExpandGrid.java =================================================================== --- branches/4.1/sensitivityanalysis/SensitivityCalculatorJavaExpandGrid.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityanalysis/SensitivityCalculatorJavaExpandGrid.java 2012-05-29 09:27:28 UTC (rev 288) @@ -364,8 +364,15 @@ } //Rename R objects for saving purpose - renameObjects(engine, simulationName); + 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()); Modified: branches/4.1/sensitivityanalysis/SensitivityCalculatorRDOptimal.java =================================================================== --- branches/4.1/sensitivityanalysis/SensitivityCalculatorRDOptimal.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityanalysis/SensitivityCalculatorRDOptimal.java 2012-05-29 09:27:28 UTC (rev 288) @@ -238,9 +238,9 @@ "\"nomModel\")<-\"isis-fish-externe-R\""); engine.voidEval("names(isis.simule)<-isis.factors[[1]]"); - // Save Isis R session - engine.saveRData(outputDirectory.getParentFile(), - outputDirectory.getName()); + // Save Isis R session + engine.saveRData(outputDirectory.getParentFile(), + outputDirectory.getName()); } catch (RException eee) { @@ -376,9 +376,16 @@ } //Rename R objects for saving purpose - renameObjects(engine, firstStorageName); + + //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()); Modified: branches/4.1/sensitivityanalysis/SensitivityCalculatorRExpandGrid.java =================================================================== --- branches/4.1/sensitivityanalysis/SensitivityCalculatorRExpandGrid.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityanalysis/SensitivityCalculatorRExpandGrid.java 2012-05-29 09:27:28 UTC (rev 288) @@ -347,9 +347,15 @@ } //Rename R objects for saving purpose - renameObjects(engine, firstStorageName); + //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()); Modified: branches/4.1/sensitivityanalysis/SensitivityCalculatorRFast.java =================================================================== --- branches/4.1/sensitivityanalysis/SensitivityCalculatorRFast.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityanalysis/SensitivityCalculatorRFast.java 2012-05-29 09:27:28 UTC (rev 288) @@ -333,6 +333,13 @@ //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()); Modified: branches/4.1/sensitivityanalysis/SensitivityCalculatorRMorris.java =================================================================== --- branches/4.1/sensitivityanalysis/SensitivityCalculatorRMorris.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityanalysis/SensitivityCalculatorRMorris.java 2012-05-29 09:27:28 UTC (rev 288) @@ -6,15 +6,15 @@ * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 2 of the + * published by the Free Software Foundation, either version 2 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public + * + * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-2.0.html>. * #L% @@ -22,16 +22,8 @@ package sensitivityanalysis; -import java.io.File; -import java.util.List; - +import fr.ifremer.isisfish.datastore.SimulationStorage; 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; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.simulator.sensitivity.AbstractSensitivityAnalysis; import fr.ifremer.isisfish.simulator.sensitivity.DesignPlan; @@ -41,17 +33,25 @@ import fr.ifremer.isisfish.simulator.sensitivity.SensitivityScenarios; import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; import fr.ifremer.isisfish.util.Doc; +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; +import java.util.List; + /** * Implementation of Morris method using R. - * + * * @author jcouteau * @version $Revision$ - * + * * Last update : $Date$ By : * $Author$ */ -public class SensitivityCalculatorRMorris extends AbstractSensitivityAnalysis { +public class SensitivityCalculatorRMorris + extends AbstractSensitivityAnalysis { @Doc("Integer giving the number of repetitions of the design, i.e. the number of elementary effect computed per factor. (Default value : 4)") public int param_r = 4; @@ -62,7 +62,7 @@ /** * Retourne vrai si le calculateur sait gerer la cardinalité des facteurs * continus. - * + * * @return <tt>true</tt> s'il sait la gerer */ @Override @@ -72,14 +72,14 @@ @Override public SensitivityScenarios compute(DesignPlan plan, File outputDirectory) - throws SensitivityException { + throws SensitivityException { setIsisFactorsR(plan, outputDirectory); RDataFrame dataFrame; int nbExperiments; int factorNumber = plan.getFactors().size(); - + SensitivityScenarios thisExperiment = new SensitivityScenarios(); List<Factor> factors = plan.getFactors(); @@ -119,8 +119,8 @@ } String rInstruction = "a<-morris(model=NULL,factors=c(%s),r=%s," + - "design=list(type=\"oat\",levels=c(%s),grid.jump=c(%s))," + - "binf=c(%s),bsup=c(%s))"; + "design=list(type=\"oat\",levels=c(%s),grid.jump=c(%s))," + + "binf=c(%s),bsup=c(%s))"; String rCall = String.format(rInstruction, factorNames, param_r, levels, gridJump, binf, bsup); @@ -129,12 +129,16 @@ rCall = editRInstruction(rCall); } + REngine engine = null; + try { - REngine engine = new RProxy(); + engine = new RProxy(); + engine.clearSession(); + //Get Isis R session engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); + outputDirectory.getName()); // Load sensitivity package into R (if package already loaded, // nothing happens. @@ -157,12 +161,12 @@ dataFrame = (RDataFrame) engine.eval("expPlan"); dataFrame.setVariable("expPlan"); - nbExperiments = (Integer)engine.eval("dim(a$X)[1]"); + nbExperiments = (Integer)engine.eval("dim(expPlan)[1]"); String factorDistribution = "isis.factor.distribution<-data.frame(" + - "NomFacteur=c(%s)," + - "NomDistribution=c(%s)," + - "ParametreDistribution=c(%s))"; + "NomFacteur=c(%s)," + + "NomDistribution=c(%s)," + + "ParametreDistribution=c(%s))"; String distribution = ""; String parameters = ""; @@ -189,7 +193,7 @@ "\"call\"=call)"); engine.voidEval("attr(isis.MethodExp,\"nomModel\")<-" + "\"isis-fish-externe-R\""); - engine.voidEval("isis.simule<-data.frame(a$X)"); + engine.voidEval("isis.simule<-data.frame(expPlan)"); engine.voidEval("attr(isis.simule,\"nomModel\")<-" + "\"isis-fish-externe-R\""); engine.voidEval("names(isis.simule)<-isis.factors[[1]]"); @@ -221,17 +225,21 @@ @Override public void analyzeResult(List<SimulationStorage> simulationStorages, - File outputDirectory) throws SensitivityException { + File outputDirectory) throws SensitivityException { SimulationStorage storage = simulationStorages.get(0); String simulationName = storage.getName().replaceAll("-", ""); + REngine engine = null; + try { - REngine engine = new RProxy(); - + engine = new RProxy(); + + engine.clearSession(); + //Get Isis R session engine.loadRData(outputDirectory.getParentFile(), - outputDirectory.getName()); + outputDirectory.getName()); // Call R // Load sensitivity package into R (if package already loaded, @@ -278,11 +286,11 @@ //creating isis.methodAnalyse engine.voidEval("isis.methodAnalyse<-list(" + - "\"isis.factors\"=isis.factors," + - "\"isis.factor.distribution\"=isis.factor.distribution," + - "\"isis.simule\"=isis.simule," + - "\"call_method\"=\"tell(a,y=" + name + ")" + "\"," + - "\"analysis_result\"=a)"); + //"\"isis.factors\"=isis.factors," + + //"\"isis.factor.distribution\"=isis.factor.distribution," + + "\"isis.simule\"=isis.simule," + + "\"call_method\"=\"tell(a,y=" + name + ")" + "\"," + + "\"analysis_result\"=a)"); //setting isis.methodAnalyse attributes engine.voidEval("attr(isis.methodAnalyse,\"nomModel\")<-" + @@ -324,9 +332,16 @@ //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()); + outputDirectory.getName()); } catch (Exception e) { throw new SensitivityException("Can't evaluate results", e); @@ -337,7 +352,7 @@ @Override public String getDescription() { return "Implementation of Morris method using R (needs the sensitivity" + - " package to work)"; + " package to work)"; } } Modified: branches/4.1/sensitivityanalysis/SensitivityCalculatorROptimumLHS.java =================================================================== --- branches/4.1/sensitivityanalysis/SensitivityCalculatorROptimumLHS.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityanalysis/SensitivityCalculatorROptimumLHS.java 2012-05-29 09:27:28 UTC (rev 288) @@ -381,6 +381,13 @@ //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); + } + } + engine.terminate(); } catch (Exception e) { Modified: branches/4.1/sensitivityanalysis/SensitivityCalculatorRRandomLHS.java =================================================================== --- branches/4.1/sensitivityanalysis/SensitivityCalculatorRRandomLHS.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityanalysis/SensitivityCalculatorRRandomLHS.java 2012-05-29 09:27:28 UTC (rev 288) @@ -23,6 +23,7 @@ package sensitivityanalysis; import java.io.File; +import java.lang.String; import java.util.List; import fr.ifremer.isisfish.export.SensitivityExport; @@ -216,6 +217,11 @@ } rInstruction += ")"; engine.voidEval(rInstruction); + + // Clean RData + for (Factor factor:factors) { + engine.remove(factor.getName().replaceAll(" ", "")); + } // Save Isis R session engine.saveRData(outputDirectory.getParentFile(), @@ -368,6 +374,14 @@ //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()); Modified: branches/4.1/sensitivityanalysis/SensitivityCalculatorRSobol.java =================================================================== --- branches/4.1/sensitivityanalysis/SensitivityCalculatorRSobol.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityanalysis/SensitivityCalculatorRSobol.java 2012-05-29 09:27:28 UTC (rev 288) @@ -318,8 +318,15 @@ } //Rename R objects for saving purpose - renameObjects(engine, simulationName); + 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()); Modified: branches/4.1/sensitivityanalysis/SensitivityCalculatorRegularFractions.java =================================================================== --- branches/4.1/sensitivityanalysis/SensitivityCalculatorRegularFractions.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityanalysis/SensitivityCalculatorRegularFractions.java 2012-05-29 09:27:28 UTC (rev 288) @@ -372,6 +372,13 @@ //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()); Modified: branches/4.1/sensitivityexports/SensitivitySpawningBiomassReferenceY8.java =================================================================== --- branches/4.1/sensitivityexports/SensitivitySpawningBiomassReferenceY8.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityexports/SensitivitySpawningBiomassReferenceY8.java 2012-05-29 09:27:28 UTC (rev 288) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Jean Couteau + * Copyright (C) 2009 - 2012 Ifremer, Code Lutin, Jean Couteau, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -109,6 +109,7 @@ } line = reader.readLine(); } + reader.close(); for (Population pop : simulation.getParameter().getPopulations()) { if (pop.getName().equals(param_pop.getName())) { @@ -127,6 +128,7 @@ } } } + out.write(Double.toString(biomass / referenceBiomass)); } Property changes on: branches/4.1/sensitivityexports/SensitivitySpawningBiomassReferenceY8.java ___________________________________________________________________ Deleted: svn:mergeinfo - Modified: branches/4.1/sensitivityexports/SensitivitySpawningBiomassRelativeReferenceY11.java =================================================================== --- branches/4.1/sensitivityexports/SensitivitySpawningBiomassRelativeReferenceY11.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityexports/SensitivitySpawningBiomassRelativeReferenceY11.java 2012-05-29 09:27:28 UTC (rev 288) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Jean Couteau + * Copyright (C) 2009 - 2012 Ifremer, Code Lutin, Jean Couteau, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -119,6 +119,7 @@ line = reader.readLine(); } + reader.close(); for (Population pop : simulation.getParameter().getPopulations()) { if (pop.getName().equals(param_pop.getName())) { @@ -152,6 +153,7 @@ } } } + out.write(Double.toString((biomass / firstbiomass) / (biomassReference / firstBiomassReference))); } Property changes on: branches/4.1/sensitivityexports/SensitivitySpawningBiomassRelativeReferenceY11.java ___________________________________________________________________ Deleted: svn:mergeinfo - Modified: branches/4.1/sensitivityexports/SensitivitySpawningBiomassRelativeY5.java =================================================================== --- branches/4.1/sensitivityexports/SensitivitySpawningBiomassRelativeY5.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityexports/SensitivitySpawningBiomassRelativeY5.java 2012-05-29 09:27:28 UTC (rev 288) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Jean Couteau + * Copyright (C) 2009 - 2012 Ifremer, Code Lutin, Jean Couteau, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -32,6 +32,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.math.matrix.MatrixIterator; import org.nuiton.math.matrix.MatrixND; + import scripts.ResultName; import java.io.Writer; Property changes on: branches/4.1/sensitivityexports/SensitivitySpawningBiomassRelativeY5.java ___________________________________________________________________ Deleted: svn:mergeinfo - Modified: branches/4.1/sensitivityexports/SensitivitySpawningBiomassY2.java =================================================================== --- branches/4.1/sensitivityexports/SensitivitySpawningBiomassY2.java 2012-04-26 16:22:33 UTC (rev 287) +++ branches/4.1/sensitivityexports/SensitivitySpawningBiomassY2.java 2012-05-29 09:27:28 UTC (rev 288) @@ -2,7 +2,7 @@ * #%L * IsisFish data * %% - * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Jean Couteau + * Copyright (C) 2009 - 2012 Ifremer, Code Lutin, Jean Couteau, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -32,6 +32,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.math.matrix.MatrixIterator; import org.nuiton.math.matrix.MatrixND; + import scripts.ResultName; import java.io.Writer; Property changes on: branches/4.1/sensitivityexports/SensitivitySpawningBiomassY2.java ___________________________________________________________________ Deleted: svn:mergeinfo -
participants (1)
-
echatellier@users.forge.codelutin.com