Commit d9c4550c authored by guillaume.garbay's avatar guillaume.garbay
Browse files

No commit message

No commit message
1 merge request!1Add Svn history
Showing with 71 additions and 76 deletions
+71 -76
...@@ -7,12 +7,13 @@ ...@@ -7,12 +7,13 @@
<processes> <processes>
<processesAtBegin> <processesAtBegin>
<pikelake.environment.FichierMarnage>
</pikelake.environment.FichierMarnage>
<pikelake.environment.HoraireLeverCoucher> <pikelake.environment.HoraireLeverCoucher>
</pikelake.environment.HoraireLeverCoucher> </pikelake.environment.HoraireLeverCoucher>
<pikelake.environment.FichierMarnage>
</pikelake.environment.FichierMarnage>
<pikelake.environment.AreaMovement> <pikelake.environment.AreaMovement>
<choixDist>1</choixDist> <!-- 0 => distMin; 1 => distMoy; 2 => distMax --> <choixDist>1</choixDist> <!-- 0 => distMin; 1 => distMoy; 2 => distMax -->
</pikelake.environment.AreaMovement> </pikelake.environment.AreaMovement>
......
...@@ -12,6 +12,7 @@ import pikelake.environment.AreaMovement; ...@@ -12,6 +12,7 @@ import pikelake.environment.AreaMovement;
import pikelake.environment.FichierMarnage; import pikelake.environment.FichierMarnage;
import pikelake.environment.Time; import pikelake.environment.Time;
import pikelake.pikes.Pike; import pikelake.pikes.Pike;
import fr.cemagref.simaqualife.extensions.spatial2D.Grid2D; import fr.cemagref.simaqualife.extensions.spatial2D.Grid2D;
import fr.cemagref.simaqualife.kernel.AquaNismsGroup; import fr.cemagref.simaqualife.kernel.AquaNismsGroup;
import fr.cemagref.simaqualife.kernel.util.TransientParameters.InitTransientParameters; import fr.cemagref.simaqualife.kernel.util.TransientParameters.InitTransientParameters;
...@@ -19,7 +20,6 @@ import fr.cemagref.simaqualife.pilot.Pilot; ...@@ -19,7 +20,6 @@ import fr.cemagref.simaqualife.pilot.Pilot;
public class Grid extends Grid2D<Cell, Individual> { public class Grid extends Grid2D<Cell, Individual> {
//public Time temp = new Time();
private String marnageInit = "513_4"; private String marnageInit = "513_4";
public Grid(int gridWidth, int gridHeight, NeighborsType neighborsType) { public Grid(int gridWidth, int gridHeight, NeighborsType neighborsType) {
...@@ -47,12 +47,8 @@ public class Grid extends Grid2D<Cell, Individual> { ...@@ -47,12 +47,8 @@ public class Grid extends Grid2D<Cell, Individual> {
grid[cptCell] = new Cell(cptCell, -1); grid[cptCell] = new Cell(cptCell, -1);
} }
try { marnageInit = FichierMarnage.dateMarnage[Time.jourMois][Time.mois][Time.heure];
marnageInit = FichierMarnage.calculMarnage(); if (marnageInit == null ) marnageInit = "513_4";
} catch (NullPointerException e) {
//System.out.println ("Err marnage");
marnageInit = "513_4";
}
// Lecture fichier contenant les HSI de toutes les mailles // Lecture fichier contenant les HSI de toutes les mailles
String filePath = "data/input/HSI/hsi_BRO" + Time.getSeason() + marnageInit + ".txt"; String filePath = "data/input/HSI/hsi_BRO" + Time.getSeason() + marnageInit + ".txt";
...@@ -179,8 +175,8 @@ public class Grid extends Grid2D<Cell, Individual> { ...@@ -179,8 +175,8 @@ public class Grid extends Grid2D<Cell, Individual> {
// Calcul des mailles comprises dans le lac // Calcul des mailles comprises dans le lac
for (String liste : listeCoord) { for (String liste : listeCoord) {
// Calcul de l'indice de la maille partir des coordonnees (x,y)
String[] coord = liste.split(" "); String[] coord = liste.split(" ");
// Calcul de l'indice de la maille partir des coordonnees (x,y)
int newCell = xPike + Integer.parseInt(coord[0]) + (yPike + Integer.parseInt(coord[1])) * gridWidth; int newCell = xPike + Integer.parseInt(coord[0]) + (yPike + Integer.parseInt(coord[1])) * gridWidth;
// Test si l'indice calcule appartient la grille totale // Test si l'indice calcule appartient la grille totale
......
...@@ -20,7 +20,7 @@ public class Marnage extends AquaNismsGroupProcess<Pike,PikesGroup> { ...@@ -20,7 +20,7 @@ public class Marnage extends AquaNismsGroupProcess<Pike,PikesGroup> {
Grid grid = (Grid) pilot.getAquaticWorld().getEnvironment(); Grid grid = (Grid) pilot.getAquaticWorld().getEnvironment();
grid = grid.getGrid(); grid = grid.getGrid();
marnageNew = FichierMarnage.calculMarnage(); marnageNew = FichierMarnage.dateMarnage[Time.jourMois][Time.mois][Time.heure];
if (!marnageNew.equals(marnageOld)) if (!marnageNew.equals(marnageOld))
majCote(grid); majCote(grid);
......
...@@ -2,8 +2,6 @@ package pikelake.environment; ...@@ -2,8 +2,6 @@ package pikelake.environment;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner; import java.util.Scanner;
import pikelake.pikes.Pike; import pikelake.pikes.Pike;
...@@ -12,7 +10,9 @@ import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess; ...@@ -12,7 +10,9 @@ import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess;
public class FichierMarnage extends AquaNismsGroupProcess<Pike,PikesGroup> { public class FichierMarnage extends AquaNismsGroupProcess<Pike,PikesGroup> {
public static List<String> dateMarnage = new ArrayList<String>(); // Jour Mois Heure Marnage //public static List<String> dateMarnage = new ArrayList<String>(); // Jour Mois Heure Marnage
public static String dateMarnage[][][] = new String[32][13][24]; // [jour] [mois] [heure]
@Override @Override
public void doProcess (PikesGroup object) { public void doProcess (PikesGroup object) {
...@@ -28,8 +28,9 @@ public class FichierMarnage extends AquaNismsGroupProcess<Pike,PikesGroup> { ...@@ -28,8 +28,9 @@ public class FichierMarnage extends AquaNismsGroupProcess<Pike,PikesGroup> {
line = scanner.nextLine(); line = scanner.nextLine();
String temp[] = line.split("[/:\t ]+"); String temp[] = line.split("[/:\t ]+");
dateMarnage.add(temp[0] + " " + temp[1] + " " + temp[3] + " " + temp[6].substring(0, temp[6].length()-1).replace(".", "_")); dateMarnage[Integer.parseInt(temp[0])] [Integer.parseInt(temp[1])] [Integer.parseInt(temp[3])] =
} temp[6].substring(0, temp[6].length()-1).replace(".", "_");
}
scanner.close(); scanner.close();
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
...@@ -37,16 +38,7 @@ public class FichierMarnage extends AquaNismsGroupProcess<Pike,PikesGroup> { ...@@ -37,16 +38,7 @@ public class FichierMarnage extends AquaNismsGroupProcess<Pike,PikesGroup> {
} }
} }
public static String calculMarnage () { public static String calculMarnage (int jour, int mois, int heure) {
return dateMarnage[jour][mois][heure];
String[] donnee = null;
for (String liste : dateMarnage) {
donnee = liste.split(" ");
if (Time.jourMois == Integer.parseInt(donnee[0]))
if (Time.mois == Integer.parseInt(donnee[1])-1)
if (Time.heure == Integer.parseInt(donnee[2]))
break;
}
return donnee[3];
} }
} }
\ No newline at end of file
...@@ -2,21 +2,20 @@ package pikelake.environment; ...@@ -2,21 +2,20 @@ package pikelake.environment;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner; import java.util.Scanner;
import pikelake.pikes.Pike; import pikelake.pikes.Pike;
import pikelake.pikes.PikesGroup; import pikelake.pikes.PikesGroup;
import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess; import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess;
public class HoraireLeverCoucher extends AquaNismsGroupProcess<Pike,PikesGroup> { public class HoraireLeverCoucher extends AquaNismsGroupProcess<Pike,PikesGroup> {
public static List<String> dateLeverCoucher = new ArrayList<String>(); // Jour Mois HeureLever HeureCoucher public static int heureLeverCoucher[][][] = new int[2][32][13] ; // [0=lever, 1=coucher] [jour] [mois]
public static String phaseJournee[][][] = new String[32][13][25]; // [jour] [mois] [heure]
@Override @Override
public void doProcess (PikesGroup object) { public void doProcess (PikesGroup object) {
String temp[] = null, dateCompleteLever[] = null, dateCompleteCoucher[] = null; String temp[] = null, dateCompleteLever[] = null, dateCompleteCoucher[] = null;
String jour = null, mois = null, heureLever = null, heureCoucher = null; String jour = null, mois = null, heureLever = null, heureCoucher = null;
...@@ -42,13 +41,31 @@ public static List<String> dateLeverCoucher = new ArrayList<String>(); // Jour M ...@@ -42,13 +41,31 @@ public static List<String> dateLeverCoucher = new ArrayList<String>(); // Jour M
// Coucher du soleil // Coucher du soleil
heureCoucher = dateCompleteCoucher[3]; heureCoucher = dateCompleteCoucher[3];
dateLeverCoucher.add(jour + " " + mois + " " + heureLever + " " + heureCoucher); heureLeverCoucher[0][Integer.parseInt(jour)][Integer.parseInt(mois)] = Integer.parseInt(heureLever);
heureLeverCoucher[1][Integer.parseInt(jour)][Integer.parseInt(mois)] = Integer.parseInt(heureCoucher);
} }
scanner.close(); scanner.close();
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
for (int m=1; m<13 ;m++)
for (int j=1; j<32; j++)
for (int h=0; h<25; h++) {
if (h > heureLeverCoucher[0][j][m] -2 & h < heureLeverCoucher[0][j][m] +2) phaseJournee[j][m][h] = "AUBE";
else if (h > heureLeverCoucher[0][j][m] +1 & h < heureLeverCoucher[1][j][m] -1) phaseJournee[j][m][h] = "JOUR";
else if (h > heureLeverCoucher[1][j][m] -2 & h < heureLeverCoucher[1][j][m] +2) phaseJournee[j][m][h] = "CREP";
else phaseJournee[j][m][h] = "NUIT";
}
} }
public static String getPhase (int jour, int mois, int heure) {
return phaseJournee[jour][mois+1][heure];
}
public int[][][] getHoraire () {
return heureLeverCoucher ;
}
} }
...@@ -2,15 +2,16 @@ package pikelake.environment; ...@@ -2,15 +2,16 @@ package pikelake.environment;
import pikelake.pikes.Pike; import pikelake.pikes.Pike;
import pikelake.pikes.PikesGroup; import pikelake.pikes.PikesGroup;
import pikelake.environment.HoraireLeverCoucher;
import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess; import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess;
public class Time extends AquaNismsGroupProcess<Pike,PikesGroup> { public class Time extends AquaNismsGroupProcess<Pike,PikesGroup> {
public static enum PhaseJour {AUBE, JOUR, CREP, NUIT}; //public static enum PhaseJour {AUBE, JOUR, CREP, NUIT};
public static enum Season {PRINTEMPS, ETE, AUTOMNE, HIVER}; public static enum Season {PRINTEMPS, ETE, AUTOMNE, HIVER};
public static enum Mois {JANVIER, FEVRIER, MARS, AVRIL, MAI, JUIN, JUILLET, AOUT, SEPTEMBRE, OCTOBRE, NOVEMBRE, DECEMBRE}; public static enum Mois {MoisZero, JANVIER, FEVRIER, MARS, AVRIL, MAI, JUIN, JUILLET, AOUT, SEPTEMBRE, OCTOBRE, NOVEMBRE, DECEMBRE};
public static int mois = 0, jour = 0, jourMois = 1, saison = 0, annee = 2012, phaseJour = 0, heure = 0; public static int mois = 1, jour = 0, jourMois = 1, saison = 0, annee = 2012, phaseJour = 0, heure = 0;
public static String PhaseJour;
@Override @Override
public void doProcess (PikesGroup group) { public void doProcess (PikesGroup group) {
...@@ -28,55 +29,43 @@ public class Time extends AquaNismsGroupProcess<Pike,PikesGroup> { ...@@ -28,55 +29,43 @@ public class Time extends AquaNismsGroupProcess<Pike,PikesGroup> {
if (heure == 0) if (heure == 0)
jourMois = jourMois + 1; jourMois = jourMois + 1;
// RAZ jourMois // RAZ jourMois
if ((mois == 0 | mois == 2 | mois == 4 | mois == 6 | mois == 7 | mois == 9 | mois == 11) & jourMois == 32) jourMois = 1; if ((mois == 1 | mois == 3 | mois == 5 | mois == 7 | mois == 8 | mois == 10 | mois == 12) & jourMois == 32) jourMois = 1;
else if ((mois == 3 | mois == 5 | mois == 8 | mois == 10) & jourMois == 31) jourMois = 1; else if ((mois == 4 | mois == 6 | mois == 9 | mois == 11) & jourMois == 31) jourMois = 1;
else if (mois == 1 & jourMois == 29) jourMois = 1; else if (mois == 2 & jourMois == 29) jourMois = 1;
calculMois(); calculMois();
calculSaison(); calculSaison();
calculPhaseJour(); PhaseJour = HoraireLeverCoucher.phaseJournee[jourMois][mois][heure];
//System.out.println(annee + " " + Season.values()[saison] + " " + Mois.values()[mois] + " " + jour + " " + jourMois + " " + heure + " " + PhaseJour.values()[phaseJour]);
//System.out.println(annee + " " + Season.values()[saison] + " " + Mois.values()[mois] + " " + jour + " " + jourMois + " " + heure + " " + PhaseJour);
} }
public void calculMois () { public void calculMois () {
if (jour <= 31) mois = 0; // Janv if (jour <= 31) mois = 1; // Janv
else if (jour <= 59) mois = 1; // Fev else if (jour <= 59) mois = 2; // Fev
else if (jour <= 90) mois = 2; // Mars else if (jour <= 90) mois = 3; // Mars
else if (jour <= 120) mois = 3;// Avril else if (jour <= 120) mois = 4;// Avril
else if (jour <= 151) mois = 4; // Mai else if (jour <= 151) mois = 5; // Mai
else if (jour <= 181) mois = 5; // Juin else if (jour <= 181) mois = 6; // Juin
else if (jour <= 212) mois = 6; // Juillet else if (jour <= 212) mois = 7; // Juillet
else if (jour <= 243) mois = 7; // Aout else if (jour <= 243) mois = 8; // Aout
else if (jour <= 273) mois = 8; // Sept else if (jour <= 273) mois = 9; // Sept
else if (jour <= 304) mois = 9; // Oct else if (jour <= 304) mois = 10; // Oct
else if (jour <= 334) mois = 10; // Nov else if (jour <= 334) mois = 11; // Nov
else if (jour <= 365) mois = 11; // Dec else if (jour <= 365) mois = 12; // Dec
else mois = 0; else mois = 0;
} }
public void calculSaison () { public void calculSaison () {
if (mois == 0) saison = 3; if (mois == 1) saison = 3;
if (mois == 2 & jourMois >= 20) saison = 0; if (mois == 3 & jourMois >= 20) saison = 0;
else if (mois == 5 & jourMois >= 20) saison = 1; else if (mois == 6 & jourMois >= 20) saison = 1;
else if (mois == 8 & jourMois >= 22) saison = 2; else if (mois == 9 & jourMois >= 22) saison = 2;
else if (mois == 11 & jourMois >= 21) saison = 3; else if (mois == 12 & jourMois >= 21) saison = 3;
}
public void calculPhaseJour () {
for (String liste : HoraireLeverCoucher.dateLeverCoucher) {
String[] temp = liste.split(" ");
if (jourMois == Integer.parseInt(temp[0]) & mois == (Integer.parseInt(temp[1])-1)) {
if (heure > Integer.parseInt(temp[2])-2 & heure < Integer.parseInt(temp[2])+2) phaseJour = 0;
else if (heure > Integer.parseInt(temp[2])+1 & heure < Integer.parseInt(temp[3])-1) phaseJour = 1;
else if (heure > Integer.parseInt(temp[3])-2 & heure < Integer.parseInt(temp[3])+2) phaseJour = 2;
else phaseJour = 3;
break;
}
}
} }
public static String getPhaseJour () { public static String getPhaseJour () {
return PhaseJour.values()[phaseJour].toString(); return PhaseJour;
} }
public static String getMois () { public static String getMois () {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment