Author: jcouteau Date: 2009-04-16 12:00:03 +0000 (Thu, 16 Apr 2009) New Revision: 107 Modified: trunk/exports/SensitivityBiomassRelativeY6.java trunk/exports/SensitivityBiomassY3.java trunk/exports/SensitivityCapturesWeightRelativeY4.java trunk/exports/SensitivityCapturesWeightY1.java trunk/exports/SensitivityGenitorBiomassRelativeY5.java trunk/exports/SensitivityGenitorBiomassY2.java Log: Refactoring of sensitivity standards exports Modified: trunk/exports/SensitivityBiomassRelativeY6.java =================================================================== --- trunk/exports/SensitivityBiomassRelativeY6.java 2009-04-14 17:45:33 UTC (rev 106) +++ trunk/exports/SensitivityBiomassRelativeY6.java 2009-04-16 12:00:03 UTC (rev 107) @@ -6,10 +6,10 @@ 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; @@ -20,7 +20,8 @@ public class SensitivityBiomassRelativeY6 implements SensitivityExport { /** to use log facility, just put in your code: log.info("..."); */ - static private Log log = LogFactory.getLog(SensitivityBiomassRelativeY6.class); + static private Log log = LogFactory + .getLog(SensitivityBiomassRelativeY6.class); protected String[] necessaryResult = { ResultName.MATRIX_BIOMASS }; @@ -31,48 +32,27 @@ public void export(SimulationStorage simulation, Writer out) throws Exception { Date lastDate = simulation.getResultStorage().getLastDate(); - Date firstDate = new Date (11); + 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, + ResultStorage resultStorage = simulation.getResultStorage(); + + //Get the biomass on december of the first year + MatrixND matfirstdate = resultStorage.getMatrix(firstDate, pop, ResultName.MATRIX_BIOMASS); - for (MatrixIterator i = mat.iterator(); i.hasNext();) { - i.next(); - Object[] sems = i.getSemanticsCoordinates(); - Date date = (Date) sems[0]; + firstbiomass = matfirstdate.sumAll(); - 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, + //Get the biomass of the last time step + MatrixND matlastdate = resultStorage.getMatrix(lastDate, pop, ResultName.MATRIX_BIOMASS); - for (MatrixIterator i = mat.iterator(); i.hasNext();) { - i.next(); - Object[] sems = i.getSemanticsCoordinates(); - Date date = (Date) sems[0]; + biomass = matlastdate.sumAll(); - if (date.equals(firstDate)) { - firstbiomass = firstbiomass + i.getValue(); - } - } } } - - out.write(Double.toString(biomass/firstbiomass)); - + out.write(Double.toString(biomass / firstbiomass)); } @Override @@ -82,7 +62,7 @@ @Override public String getExportFilename() { - return "SensitivityBiomassRelative"; + return "SensitivityBiomassRelativeY6"; } @Override Modified: trunk/exports/SensitivityBiomassY3.java =================================================================== --- trunk/exports/SensitivityBiomassY3.java 2009-04-14 17:45:33 UTC (rev 106) +++ trunk/exports/SensitivityBiomassY3.java 2009-04-16 12:00:03 UTC (rev 107) @@ -6,10 +6,10 @@ 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; @@ -30,25 +30,19 @@ @Override public void export(SimulationStorage simulation, Writer out) throws Exception { - Date lastDate = simulation.getResultStorage().getLastDate(); + ResultStorage resultStorage = simulation.getResultStorage(); + Date lastDate = resultStorage.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(); - } - } + //Get the biomass of the last time step + MatrixND matlastdate = resultStorage.getMatrix(lastDate, pop, + ResultName.MATRIX_BIOMASS); + biomass = matlastdate.sumAll(); } } out.write(Double.toString(biomass)); - } @Override @@ -58,7 +52,7 @@ @Override public String getExportFilename() { - return "SensitivityBiomass"; + return "SensitivityBiomassY3"; } @Override Modified: trunk/exports/SensitivityCapturesWeightRelativeY4.java =================================================================== --- trunk/exports/SensitivityCapturesWeightRelativeY4.java 2009-04-14 17:45:33 UTC (rev 106) +++ trunk/exports/SensitivityCapturesWeightRelativeY4.java 2009-04-16 12:00:03 UTC (rev 107) @@ -6,10 +6,10 @@ 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; @@ -20,7 +20,8 @@ public class SensitivityCapturesWeightRelativeY4 implements SensitivityExport { /** to use log facility, just put in your code: log.info("..."); */ - static private Log log = LogFactory.getLog(SensitivityCapturesWeightRelativeY4.class); + static private Log log = LogFactory + .getLog(SensitivityCapturesWeightRelativeY4.class); protected String[] necessaryResult = { ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP }; @@ -30,55 +31,36 @@ @Override public void export(SimulationStorage simulation, Writer out) throws Exception { - Date lastDate = simulation.getResultStorage().getLastDate(); + ResultStorage resultStorage = simulation.getResultStorage(); + Date lastDate = resultStorage.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() + for (int i = 0; i < 12; i++) { + + //Get the captures Weight of each month of the last year + MatrixND matlastdate = resultStorage .getMatrix( - date, + new Date(lastDate.getDate() - i), 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() + capturesWeight += matlastdate.sumAll(); + + //Get the captures Weight of each month of the first year + MatrixND matfirstdate = resultStorage .getMatrix( - date, + new Date(i), 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; - } - } + capturesWeightfirst += matfirstdate.sumAll(); } + } } - - out.write(Double.toString(capturesWeight/capturesWeightfirst)); + + out.write(Double.toString(capturesWeight / capturesWeightfirst)); } @Override @@ -88,7 +70,7 @@ @Override public String getExportFilename() { - return "SensitivityCapturesWeightRelative"; + return "SensitivityCapturesWeightRelativeY4"; } @Override Modified: trunk/exports/SensitivityCapturesWeightY1.java =================================================================== --- trunk/exports/SensitivityCapturesWeightY1.java 2009-04-14 17:45:33 UTC (rev 106) +++ trunk/exports/SensitivityCapturesWeightY1.java 2009-04-16 12:00:03 UTC (rev 107) @@ -6,10 +6,10 @@ 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; @@ -20,7 +20,8 @@ public class SensitivityCapturesWeightY1 implements SensitivityExport { /** to use log facility, just put in your code: log.info("..."); */ - static private Log log = LogFactory.getLog(SensitivityCapturesWeightY1.class); + static private Log log = LogFactory + .getLog(SensitivityCapturesWeightY1.class); protected String[] necessaryResult = { ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP }; @@ -30,30 +31,26 @@ @Override public void export(SimulationStorage simulation, Writer out) throws Exception { - Date lastDate = simulation.getResultStorage().getLastDate(); + ResultStorage resultStorage = simulation.getResultStorage(); + Date lastDate = resultStorage.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() + for (int i = 0; i < 12; i++) { + + //Get the captures Weight of each month of the last year + MatrixND matlastdate = resultStorage .getMatrix( - date, + new Date(lastDate.getDate() - i), 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; - } - } + capturesWeight += matlastdate.sumAll(); } + } } + out.write(Double.toString(capturesWeight)); } @@ -64,7 +61,7 @@ @Override public String getExportFilename() { - return "SensitivityCapturesWeight"; + return "SensitivityCapturesWeightY1"; } @Override Modified: trunk/exports/SensitivityGenitorBiomassRelativeY5.java =================================================================== --- trunk/exports/SensitivityGenitorBiomassRelativeY5.java 2009-04-14 17:45:33 UTC (rev 106) +++ trunk/exports/SensitivityGenitorBiomassRelativeY5.java 2009-04-16 12:00:03 UTC (rev 107) @@ -10,6 +10,7 @@ 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.entities.PopulationGroup; @@ -33,46 +34,41 @@ public void export(SimulationStorage simulation, Writer out) throws Exception { Date lastDate = simulation.getResultStorage().getLastDate(); - Date firstDate = new Date (11); + 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, + ResultStorage resultStorage = simulation.getResultStorage(); + + //Get the biomass of the last time step + MatrixND matfirstdate = resultStorage.getMatrix(pop, ResultName.MATRIX_BIOMASS); - for (MatrixIterator i = mat.iterator(); i.hasNext();) { + for (MatrixIterator i = matfirstdate.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() + Date date = (Date) sems[0]; + if (date.equals(firstDate)) { + firstbiomass += 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, + //Get the biomass of the last time step + MatrixND matlastdate = resultStorage.getMatrix(pop, ResultName.MATRIX_BIOMASS); - for (MatrixIterator i = mat.iterator(); i.hasNext();) { + for (MatrixIterator i = matlastdate.iterator(); i.hasNext();) { i.next(); Object[] sems = i.getSemanticsCoordinates(); + PopulationGroup group = (PopulationGroup) sems[1]; Date date = (Date) sems[0]; - - if (date.equals(firstDate)) { - firstbiomass = firstbiomass + i.getValue(); - } + if (date.equals(lastDate)) + biomass += i.getValue() * group.getReproductionRate(); } } } - out.write(Double.toString(biomass / firstbiomass)); } @@ -83,7 +79,7 @@ @Override public String getExportFilename() { - return "SensitivityGenitorBiomassRelative"; + return "SensitivityGenitorBiomassRelativeY5"; } @Override Modified: trunk/exports/SensitivityGenitorBiomassY2.java =================================================================== --- trunk/exports/SensitivityGenitorBiomassY2.java 2009-04-14 17:45:33 UTC (rev 106) +++ trunk/exports/SensitivityGenitorBiomassY2.java 2009-04-16 12:00:03 UTC (rev 107) @@ -10,6 +10,7 @@ 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.entities.PopulationGroup; @@ -21,7 +22,8 @@ public class SensitivityGenitorBiomassY2 implements SensitivityExport { /** to use log facility, just put in your code: log.info("..."); */ - static private Log log = LogFactory.getLog(SensitivityGenitorBiomassY2.class); + static private Log log = LogFactory + .getLog(SensitivityGenitorBiomassY2.class); protected String[] necessaryResult = { ResultName.MATRIX_BIOMASS }; @@ -33,18 +35,21 @@ 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, + ResultStorage resultStorage = simulation.getResultStorage(); + + //Get the biomass of the last time step + MatrixND matlastdate = resultStorage.getMatrix(pop, ResultName.MATRIX_BIOMASS); - for (MatrixIterator i = mat.iterator(); i.hasNext();) { + for (MatrixIterator i = matlastdate.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(); + if (date.equals(lastDate)) { + biomass += i.getValue() * group.getReproductionRate(); } } } @@ -59,7 +64,7 @@ @Override public String getExportFilename() { - return "SensitivityGenitorBiomass"; + return "SensitivityGenitorBiomassY2"; } @Override