diff --git a/data/input/fishLight.xml b/data/input/fishLight.xml index 91a7ebdc11b4e63212f4ab4ddff43d880336499a..25e9eb02104963d3fb27bf1b52d29754f071cca8 100644 --- a/data/input/fishLight.xml +++ b/data/input/fishLight.xml @@ -40,9 +40,10 @@ <basicMovingRate>2</basicMovingRate> </pikelake.pikes.PikeMovement> - <!--pikelake.pikes.PikeTrackLocation> - - </pikelake.pikes.PikeTrackLocation--> + <pikelake.pikes.PikeTrackLocation> + <!-- initialNumberOfPikes>10</initialNumberOfPikes> + <simDuration>8760</simDuration--> + </pikelake.pikes.PikeTrackLocation> <fr.cemagref.simaqualife.kernel.processes.FireAquaNismsChangesToObservers /> </processesEachStep> diff --git a/src/main/java/pikelake/pikes/Pike.java b/src/main/java/pikelake/pikes/Pike.java index 954770e1927e789f9703e75e849bb0a002b396d7..bddb315b26dbcc73aa840dcb365693dfcaa64bf6 100644 --- a/src/main/java/pikelake/pikes/Pike.java +++ b/src/main/java/pikelake/pikes/Pike.java @@ -9,7 +9,7 @@ public class Pike extends Individual { private double ingestedFood=0.; public static int cptIndividu = 1; - protected int idIndividu = 0; + public int idIndividu = 0; public Pike(Pilot pilot, Cell cell) { //TODO fix weight according to the weightAtAgeThreshold diff --git a/src/main/java/pikelake/pikes/PikeTrackLocation.java b/src/main/java/pikelake/pikes/PikeTrackLocation.java index 0cf057ff88fc40850f1fe3cc04424bdf8da0d1ea..70a321413e21a9e6d51289c14b8237a7c7237cee 100644 --- a/src/main/java/pikelake/pikes/PikeTrackLocation.java +++ b/src/main/java/pikelake/pikes/PikeTrackLocation.java @@ -3,38 +3,59 @@ package pikelake.pikes; import java.io.File; import java.io.FileWriter; +import pikelake.environment.Time; import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess; public class PikeTrackLocation extends AquaNismsGroupProcess<Pike, PikesGroup> { + //private static int initialNumberOfPikes = 10; + //private static int simDuration = 8760; + + public static int trackLocation[][] = new int [11][8760]; + public static int cpt = 0; + public void doProcess(PikesGroup group) { + for (Pike pike : group.getAquaNismsList()) + trackLocation[pike.idIndividu][cpt] = pike.getPosition().getIndex(); + cpt++; + System.out.println(trackLocation.length + " " + trackLocation[1].length + " " + trackLocation.length); + } + + public void doEnd (PikesGroup group) { + final String chemin = "data/output/Positions.txt"; final File fichier = new File(chemin); - - // System.out.println(pike.getIdIndividu() + " " + - // pike.getPosition().getIndex()); + String ligne = null; try { // Creation du fichier fichier.createNewFile(); // creation d'un writer (un écrivain) - final FileWriter writer = new FileWriter(fichier, true); + final FileWriter writer = new FileWriter(fichier); try { - for (Pike pike : group.getAquaNismsList()) - writer.write(pike.getIdIndividu() + " " - + pike.getPosition().getIndex() + "\n"); - //writer. + // Creation de la ligne d'en-tete du fichier + ligne = "Pas de temps \t Date(yyyy/mm/jj/hh) \t"; + for (int i=1; i!=Pike.cptIndividu; i++) { + ligne = ligne + "Individu " + i + " \t"; + } + writer.write(ligne + "\n\r"); + + for (int compteur = 1; compteur < trackLocation[1].length; compteur++) { + // Recuperation pas de la simulation + de la date + ligne = String.valueOf(group.getPilot().getCurrentTime()) + "\t"; + ligne = ligne + Time.annee + "/" + Time.mois + "/" + Time.jourMois + "/" + Time.heure + "\t"; + // enregistrement des positions + for (int i=1; i<trackLocation.length; i++) { + ligne = ligne + trackLocation[i][compteur] + "\t";; + } + writer.write(ligne + "\n\r"); + } } finally { writer.close(); - } } catch (Exception e) { System.out.println("Impossible de creer le fichier d'enregistrement des positions."); } - } - } - -/* id individu id maille date (yyyy/mm/jj/hh) n° pas de tps*/ \ No newline at end of file