Salut, j ai pas mal de soucis avec des exports que j ai cree. Certains fonctionnent sans soucis mais pour d autres - on dirait que les sumOverDim ne marchent pas en pj grossValueOfLandingsPerMet - j ai des NaN quand je divise deux doubles ex en pj VPUEPerMet merci d avance de votre aide -- Sigrid LEHUTA ~ ><> ~ Doctorante Département Ecologie et Modèles pour l'Halieutique IFREMER, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03 Tél : +33 (0)2 40 37 41 23 (interne : 8123) package exports; import static org.nuiton.i18n.I18n._; import java.io.Writer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.math.matrix.MatrixIterator; import org.nuiton.math.matrix.MatrixND; import scripts.ResultName; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.entities.Strategy; import fr.ifremer.isisfish.entities.Metier; import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.PopulationGroup; import fr.ifremer.isisfish.entities.Zone; import fr.ifremer.isisfish.export.Export; import fr.ifremer.isisfish.types.Date; /** * CapturesNombre.java * * Created: 23 novembre 2006 * * @author anonymous <anonymous@labs.libre-entreprise.org> * @version $Revision: 1.4 $ * * Last update: $Date: 2007-05-24 09:30:07 $ by : $Author: bpoussin $ */ public class GrossValueOfLandingsPerMet implements Export { /** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(GrossValueOfLandingsPerMet.class); protected String[] necessaryResult = { ResultName.MATRIX_GROSS_VALUE_OF_LANDINGS_PER_STRATEGY_MET }; public String[] getNecessaryResult() { return this.necessaryResult; } public String getExportFilename() { return "GrossValuePerMet"; } public String getExtensionFilename() { return ".csv"; } public String getDescription() { return _("Export les captures en nombre de la simulation. tableau pop;metier;id;zone;nombre"); } public void export(SimulationStorage simulation, Writer out) throws Exception { Date lastDate = simulation.getResultStorage().getLastDate(); for (Date date = new Date(0); !date.after(lastDate); date = date.next()) { MatrixND mat = simulation.getResultStorage().getMatrix(date, ResultName.MATRIX_GROSS_VALUE_OF_LANDINGS_PER_STRATEGY_MET); // System.out.println("mat gross val "+mat); if (mat != null) { // can be null if simulation is stopped before last year simulation MatrixND matcopy = mat.copy() matcopy = matcopy.sumOverDim(0); for (MatrixIterator i = matcopy.iterator(); i.hasNext();) { i.next(); Object[] sems = i.getSemanticsCoordinates(); Metier metier = (Metier) sems[1]; double val = i.getValue(); int planNum= 0; if(simulation.getParameter().getUseAnalysePlan()){ planNum = simulation.getParameter().getAnalysePlanNumber(); } out.write(planNum+";"+metier.getName() + ";"+ date.getDate() + ";" + val + "\n"); } } } } } package exports; import static org.nuiton.i18n.I18n._; import java.io.Writer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.math.matrix.MatrixIterator; import org.nuiton.math.matrix.MatrixND; import scripts.ResultName; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.entities.Strategy; import fr.ifremer.isisfish.entities.Metier; import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.PopulationGroup; import fr.ifremer.isisfish.entities.Zone; import fr.ifremer.isisfish.export.Export; import fr.ifremer.isisfish.types.Date; /** * CapturesNombre.java * * Created: 23 novembre 2006 * * @author anonymous <anonymous@labs.libre-entreprise.org> * @version $Revision: 1.4 $ * * Last update: $Date: 2007-05-24 09:30:07 $ by : $Author: bpoussin $ */ public class VPUEPerMet implements Export { /** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(VPUEPerMet.class); protected String[] necessaryResult = { ResultName.MATRIX_GROSS_VALUE_OF_LANDINGS_PER_STRATEGY_MET, ResultName.MATRIX_EFFORT_NOMINAL_PER_STRATEGY_MET }; public String[] getNecessaryResult() { return this.necessaryResult; } public String getExportFilename() { return "VPUEPerMet"; } public String getExtensionFilename() { return ".csv"; } public String getDescription() { return _("Export les captures en nombre de la simulation. tableau pop;metier;id;zone;nombre"); } public void export(SimulationStorage simulation, Writer out) throws Exception { Date lastDate = simulation.getResultStorage().getLastDate(); for (Date date = new Date(0); !date.after(lastDate); date = date .next()) { MatrixND mat = simulation.getResultStorage().getMatrix(date, ResultName.MATRIX_GROSS_VALUE_OF_LANDINGS_PER_STRATEGY_MET); MatrixND eff = simulation.getResultStorage().getMatrix(date, ResultName.MATRIX_EFFORT_NOMINAL_PER_STRATEGY_MET); // System.out.println("mat gross val "+mat); if (mat != null) { // can be null if simulation is stopped before last year simulation MatrixND matcopy = mat.copy() matcopy = matcopy.sumOverDim(0); MatrixND effcopy = eff.copy(); effcopy = effcopy.sumOverDim(0); for (MatrixIterator i = mat.iterator(); i.hasNext();) { i.next(); Object[] sems = i.getSemanticsCoordinates(); Metier metier = (Metier) sems[1]; double effort = effcopy.getValue(0,metier); double val = i.getValue(); int planNum= 0; if(simulation.getParameter().getUseAnalysePlan()){ planNum = simulation.getParameter().getAnalysePlanNumber(); } if(effort !=0){ out.write(planNum+";"+metier.getName() + ";"+ date.getDate() + ";" + Double.toString(val/effort) + "\n");} } } } } }