Author: jcouteau Date: 2009-04-13 08:30:32 +0000 (Mon, 13 Apr 2009) New Revision: 102 Added: trunk/exports/SensitivityBiomassRelativeY6.java trunk/exports/SensitivityBiomassY3.java trunk/exports/SensitivityGenitorBiomassY2.java Log: Added: trunk/exports/SensitivityBiomassRelativeY6.java =================================================================== --- trunk/exports/SensitivityBiomassRelativeY6.java (rev 0) +++ trunk/exports/SensitivityBiomassRelativeY6.java 2009-04-13 08:30:32 UTC (rev 102) @@ -0,0 +1,98 @@ +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 SensitivityBiomass") +public class SensitivityBiomassY3 implements SensitivityExport { + + /** to use log facility, just put in your code: log.info("..."); */ + static private Log log = LogFactory.getLog(SensitivityBiomassY3.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; + + //Calculate the biomass on last time step + + 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(); + } + } + } + } + + //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 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; + } + +} \ No newline at end of file Copied: trunk/exports/SensitivityBiomassY3.java (from rev 101, trunk/exports/SensitivityBiomass.java) =================================================================== --- trunk/exports/SensitivityBiomassY3.java (rev 0) +++ trunk/exports/SensitivityBiomassY3.java 2009-04-13 08:30:32 UTC (rev 102) @@ -0,0 +1,74 @@ +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 SensitivityBiomass") +public class SensitivityBiomassY3 implements SensitivityExport { + + /** to use log facility, just put in your code: log.info("..."); */ + static private Log log = LogFactory.getLog(SensitivityBiomassY3.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(); + 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; + } + +} Property changes on: trunk/exports/SensitivityBiomassY3.java ___________________________________________________________________ Name: svn:mergeinfo + Added: trunk/exports/SensitivityGenitorBiomassY2.java =================================================================== --- trunk/exports/SensitivityGenitorBiomassY2.java (rev 0) +++ trunk/exports/SensitivityGenitorBiomassY2.java 2009-04-13 08:30:32 UTC (rev 102) @@ -0,0 +1,76 @@ +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 SensitivityGenitorBiomassY2 implements SensitivityExport { + + /** to use log facility, just put in your code: log.info("..."); */ + static private Log log = LogFactory.getLog(SensitivityGenitorBiomassY2.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(); + 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]; + PopulationGroup group = (PopulationGroup) sems[1]; + + if (date.afterOrEquals(lastDate)) { + biomass = biomass + i.getValue()*group.getReproductionRate(); + } + } + } + } + out.write(Double.toString(biomass)); + + } + + @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 "SensitivityGenitorBiomass"; + } + + @Override + public String getExtensionFilename() { + return ".csv"; + } + + @Override + public String[] getNecessaryResult() { + return this.necessaryResult; + } + +}
participants (1)
-
jcouteau@users.labs.libre-entreprise.org