Author: jcouteau Date: 2009-04-14 17:41:56 +0000 (Tue, 14 Apr 2009) New Revision: 105 Added: trunk/exports/SensitivityBiomassReferenceY9.java trunk/exports/SensitivityCapturesWeightRelativeY4.java trunk/exports/SensitivityCapturesWeightY1.java trunk/exports/SensitivityGenitorBiomassRelativeY5.java Removed: trunk/exports/SensitivityCapturesPoids.java Modified: trunk/exports/SensitivityGenitorBiomassY2.java Log: Adding exports. Fixing bugs on exports. Added: trunk/exports/SensitivityBiomassReferenceY9.java =================================================================== --- trunk/exports/SensitivityBiomassReferenceY9.java (rev 0) +++ trunk/exports/SensitivityBiomassReferenceY9.java 2009-04-14 17:41:56 UTC (rev 105) @@ -0,0 +1,80 @@ +package exports; + +import static org.codelutin.i18n.I18n._; + +import java.io.File; +import java.io.Writer; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.codelutin.math.matrix.MatrixIterator; +import org.codelutin.math.matrix.MatrixND; + +import scripts.ResultName; +import fr.ifremer.isisfish.datastore.ResultStorage; +import fr.ifremer.isisfish.datastore.SimulationStorage; +import fr.ifremer.isisfish.entities.Population; +import fr.ifremer.isisfish.export.SensitivityExport; +import fr.ifremer.isisfish.types.Date; +import fr.ifremer.isisfish.util.Doc; + +@Doc("Doc for SensitivityBiomass") +public class SensitivityBiomassReferenceY9 implements SensitivityExport { + + /** to use log facility, just put in your code: log.info("..."); */ + static private Log log = LogFactory.getLog(SensitivityBiomassReferenceY9.class); + + protected String[] necessaryResult = { ResultName.MATRIX_BIOMASS }; + + @Doc("Population") + public Population param_pop; + + @Doc("Path to the reference simulation exports") + public String param_referenceExports; + + @Override + public void export(SimulationStorage simulation, Writer out) + throws Exception { + File referenceExports=new File (param_referenceExports); + Date lastDate = simulation.getResultStorage().getLastDate(); + double biomass = 0.0; + for (Population pop : simulation.getParameter().getPopulations()) { + if (pop.getName().equals(param_pop.getName())) { + MatrixND mat = simulation.getResultStorage().getMatrix(pop, + ResultName.MATRIX_BIOMASS); + for (MatrixIterator i = mat.iterator(); i.hasNext();) { + i.next(); + Object[] sems = i.getSemanticsCoordinates(); + Date date = (Date) sems[0]; + + if (date.afterOrEquals(lastDate)) { + biomass = biomass + i.getValue(); + } + } + } + } + out.write(Double.toString(biomass)); + + } + + @Override + public String getDescription() { + return _("Biomass for the last time step. Biomass is the sum on the groups and zones"); + } + + @Override + public String getExportFilename() { + return "SensitivityBiomass"; + } + + @Override + public String getExtensionFilename() { + return ".csv"; + } + + @Override + public String[] getNecessaryResult() { + return this.necessaryResult; + } + +} Deleted: trunk/exports/SensitivityCapturesPoids.java =================================================================== --- trunk/exports/SensitivityCapturesPoids.java 2009-04-13 11:42:54 UTC (rev 104) +++ trunk/exports/SensitivityCapturesPoids.java 2009-04-14 17:41:56 UTC (rev 105) @@ -1,78 +0,0 @@ -package exports; - -import static org.codelutin.i18n.I18n._; - -import java.io.Writer; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.codelutin.math.matrix.MatrixIterator; -import org.codelutin.math.matrix.MatrixND; - -import scripts.ResultName; -import fr.ifremer.isisfish.datastore.SimulationStorage; -import fr.ifremer.isisfish.entities.Population; -import fr.ifremer.isisfish.export.SensitivityExport; -import fr.ifremer.isisfish.types.Date; -import fr.ifremer.isisfish.util.Doc; - -@Doc("Doc for SensitivityCapturesPoids") -public class SensitivityCapturesPoids implements SensitivityExport { - - /** to use log facility, just put in your code: log.info("..."); */ - static private Log log = LogFactory.getLog(SensitivityCapturesPoids.class); - - protected String[] necessaryResult = { ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP }; - - @Doc("Population") - public Population param_pop; - - @Override - public void export(SimulationStorage simulation, Writer out) - throws Exception { - Date lastDate = simulation.getResultStorage().getLastDate(); - Double capturesWeight = 0.0; - - for (Population pop : simulation.getParameter().getPopulations()) { - if (pop.getName().equals(param_pop.getName())) { - for (Date date = new Date(0); !date.after(lastDate); date = date - .next()) { - MatrixND mat = simulation - .getResultStorage() - .getMatrix( - date, - pop, - ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP); - if (mat != null) { // can be null if simulation is stopped before last year simulation - mat = mat.sumOverDim(0); //sum on strategy - for (MatrixIterator i = mat.iterator(); i.hasNext();) { - i.next(); - capturesWeight = capturesWeight + i.getValue(); - } - } - } - } - } - } - - @Override - public String getDescription() { - return _("Captures in weight for the last year for the popage population. Captures is the sum of zones, groups, metiers and strategies"); - } - - @Override - public String getExportFilename() { - return "SensitivityCapturesPoids"; - } - - @Override - public String getExtensionFilename() { - return ".csv"; - } - - @Override - public String[] getNecessaryResult() { - return this.necessaryResult; - } - -} Added: trunk/exports/SensitivityCapturesWeightRelativeY4.java =================================================================== --- trunk/exports/SensitivityCapturesWeightRelativeY4.java (rev 0) +++ trunk/exports/SensitivityCapturesWeightRelativeY4.java 2009-04-14 17:41:56 UTC (rev 105) @@ -0,0 +1,104 @@ +ppackage exports; + +import static org.codelutin.i18n.I18n._; + +import java.io.Writer; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.codelutin.math.matrix.MatrixIterator; +import org.codelutin.math.matrix.MatrixND; + +import scripts.ResultName; +import fr.ifremer.isisfish.datastore.SimulationStorage; +import fr.ifremer.isisfish.entities.Population; +import fr.ifremer.isisfish.export.SensitivityExport; +import fr.ifremer.isisfish.types.Date; +import fr.ifremer.isisfish.util.Doc; + +@Doc("Doc for SensitivityCapturesPoids") +public class SensitivityCapturesWeightRelativeY4 implements SensitivityExport { + + /** to use log facility, just put in your code: log.info("..."); */ + static private Log log = LogFactory.getLog(SensitivityCapturesWeightRelativeY4.class); + + protected String[] necessaryResult = { ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP }; + + @Doc("Population") + public Population param_pop; + + @Override + public void export(SimulationStorage simulation, Writer out) + throws Exception { + Date lastDate = simulation.getResultStorage().getLastDate(); + Double capturesWeight = 0.0; + Double capturesWeightfirst = 0.0; + + for (Population pop : simulation.getParameter().getPopulations()) { + if (pop.getName().equals(param_pop.getName())) { + for (Date date = new Date(0); !date.after(lastDate); date = date + .next()) { + MatrixND mat = simulation + .getResultStorage() + .getMatrix( + date, + pop, + ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP); + if (mat != null) { // can be null if simulation is stopped before last year simulation + mat = mat.sumOverDim(0); //sum on strategy + for (MatrixIterator i = mat.iterator(); i.hasNext();) { + i.next(); + double val = i.getValue(); + capturesWeight = capturesWeight + val; + } + } + } + } + } + + for (Population pop : simulation.getParameter().getPopulations()) { + if (pop.getName().equals(param_pop.getName())) { + for (Date date = new Date(0); date.beforeOrEquals(new Date(11)); date = date + .next()) { + MatrixND mat = simulation + .getResultStorage() + .getMatrix( + date, + pop, + ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP); + if (mat != null) { // can be null if simulation is stopped before last year simulation + mat = mat.sumOverDim(0); //sum on strategy + for (MatrixIterator i = mat.iterator(); i.hasNext();) { + i.next(); + double val = i.getValue(); + capturesWeightfirst = capturesWeightfirst + val; + } + } + } + } + } + + out.write(Double.toString(capturesWeight/capturesWeightfirst)); + } + + @Override + public String getDescription() { + return _("Captures in weight for the last year for the popage population. Captures is the sum of zones, groups, metiers and strategies"); + } + + @Override + public String getExportFilename() { + return "SensitivityCapturesWeightRelative"; + } + + @Override + public String getExtensionFilename() { + return ".csv"; + } + + @Override + public String[] getNecessaryResult() { + return this.necessaryResult; + } + +} Copied: trunk/exports/SensitivityCapturesWeightY1.java (from rev 102, trunk/exports/SensitivityCapturesPoids.java) =================================================================== --- trunk/exports/SensitivityCapturesWeightY1.java (rev 0) +++ trunk/exports/SensitivityCapturesWeightY1.java 2009-04-14 17:41:56 UTC (rev 105) @@ -0,0 +1,80 @@ +package exports; + +import static org.codelutin.i18n.I18n._; + +import java.io.Writer; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.codelutin.math.matrix.MatrixIterator; +import org.codelutin.math.matrix.MatrixND; + +import scripts.ResultName; +import fr.ifremer.isisfish.datastore.SimulationStorage; +import fr.ifremer.isisfish.entities.Population; +import fr.ifremer.isisfish.export.SensitivityExport; +import fr.ifremer.isisfish.types.Date; +import fr.ifremer.isisfish.util.Doc; + +@Doc("Doc for SensitivityCapturesPoids") +public class SensitivityCapturesWeightY1 implements SensitivityExport { + + /** to use log facility, just put in your code: log.info("..."); */ + static private Log log = LogFactory.getLog(SensitivityCapturesWeightY1.class); + + protected String[] necessaryResult = { ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP }; + + @Doc("Population") + public Population param_pop; + + @Override + public void export(SimulationStorage simulation, Writer out) + throws Exception { + Date lastDate = simulation.getResultStorage().getLastDate(); + Double capturesWeight = 0.0; + + for (Population pop : simulation.getParameter().getPopulations()) { + if (pop.getName().equals(param_pop.getName())) { + for (Date date = new Date(0); !date.after(lastDate); date = date + .next()) { + MatrixND mat = simulation + .getResultStorage() + .getMatrix( + date, + pop, + ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP); + if (mat != null) { // can be null if simulation is stopped before last year simulation + mat = mat.sumOverDim(0); //sum on strategy + for (MatrixIterator i = mat.iterator(); i.hasNext();) { + i.next(); + double val = i.getValue(); + capturesWeight = capturesWeight + val; + } + } + } + } + } + out.write(Double.toString(capturesWeight)); + } + + @Override + public String getDescription() { + return _("Captures in weight for the last year for the popage population. Captures is the sum of zones, groups, metiers and strategies"); + } + + @Override + public String getExportFilename() { + return "SensitivityCapturesWeight"; + } + + @Override + public String getExtensionFilename() { + return ".csv"; + } + + @Override + public String[] getNecessaryResult() { + return this.necessaryResult; + } + +} Property changes on: trunk/exports/SensitivityCapturesWeightY1.java ___________________________________________________________________ Name: svn:mergeinfo + Added: trunk/exports/SensitivityGenitorBiomassRelativeY5.java =================================================================== --- trunk/exports/SensitivityGenitorBiomassRelativeY5.java (rev 0) +++ trunk/exports/SensitivityGenitorBiomassRelativeY5.java 2009-04-14 17:41:56 UTC (rev 105) @@ -0,0 +1,99 @@ +package exports; + +import static org.codelutin.i18n.I18n._; + +import java.io.Writer; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.codelutin.math.matrix.MatrixIterator; +import org.codelutin.math.matrix.MatrixND; + +import scripts.ResultName; +import fr.ifremer.isisfish.datastore.SimulationStorage; +import fr.ifremer.isisfish.entities.Population; +import fr.ifremer.isisfish.entities.PopulationGroup; +import fr.ifremer.isisfish.export.SensitivityExport; +import fr.ifremer.isisfish.types.Date; +import fr.ifremer.isisfish.util.Doc; + +@Doc("Doc for SensitivityBiomass") +public class SensitivityGenitorBiomassRelativeY5 implements SensitivityExport { + + /** to use log facility, just put in your code: log.info("..."); */ + static private Log log = LogFactory + .getLog(SensitivityGenitorBiomassRelativeY5.class); + + protected String[] necessaryResult = { ResultName.MATRIX_BIOMASS }; + + @Doc("Population") + public Population param_pop; + + @Override + public void export(SimulationStorage simulation, Writer out) + throws Exception { + Date lastDate = simulation.getResultStorage().getLastDate(); + Date firstDate = new Date (11); + double biomass = 0.0; + double firstbiomass = 0.0; + + for (Population pop : simulation.getParameter().getPopulations()) { + if (pop.getName().equals(param_pop.getName())) { + MatrixND mat = simulation.getResultStorage().getMatrix(pop, + ResultName.MATRIX_BIOMASS); + for (MatrixIterator i = mat.iterator(); i.hasNext();) { + i.next(); + Object[] sems = i.getSemanticsCoordinates(); + Date date = (Date) sems[0]; + PopulationGroup group = (PopulationGroup) sems[1]; + + if (date.afterOrEquals(lastDate)) { + biomass = biomass + i.getValue() + * group.getReproductionRate(); + } + } + } + } + + //Calculate the biomass on december of first year + + for (Population pop : simulation.getParameter().getPopulations()) { + if (pop.getName().equals(param_pop.getName())) { + MatrixND mat = simulation.getResultStorage().getMatrix(pop, + ResultName.MATRIX_BIOMASS); + for (MatrixIterator i = mat.iterator(); i.hasNext();) { + i.next(); + Object[] sems = i.getSemanticsCoordinates(); + Date date = (Date) sems[0]; + + if (date.equals(firstDate)) { + firstbiomass = firstbiomass + i.getValue(); + } + } + } + } + + out.write(Double.toString(biomass / firstbiomass)); + } + + @Override + public String getDescription() { + return _("Biomass of the genitors for the last time step. Biomass is the sum on the groups and zones"); + } + + @Override + public String getExportFilename() { + return "SensitivityGenitorBiomassRelative"; + } + + @Override + public String getExtensionFilename() { + return ".csv"; + } + + @Override + public String[] getNecessaryResult() { + return this.necessaryResult; + } + +} \ No newline at end of file Modified: trunk/exports/SensitivityGenitorBiomassY2.java =================================================================== --- trunk/exports/SensitivityGenitorBiomassY2.java 2009-04-13 11:42:54 UTC (rev 104) +++ trunk/exports/SensitivityGenitorBiomassY2.java 2009-04-14 17:41:56 UTC (rev 105) @@ -50,7 +50,6 @@ } } out.write(Double.toString(biomass)); - } @Override
participants (1)
-
jcouteau@users.labs.libre-entreprise.org