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 @@
<processes>
<processesAtBegin>
<pikelake.environment.FichierMarnage>
</pikelake.environment.FichierMarnage>
<pikelake.environment.HoraireLeverCoucher>
</pikelake.environment.HoraireLeverCoucher>
</pikelake.environment.HoraireLeverCoucher>
<pikelake.environment.FichierMarnage>
</pikelake.environment.FichierMarnage>
<pikelake.environment.AreaMovement>
<choixDist>1</choixDist> <!-- 0 => distMin; 1 => distMoy; 2 => distMax -->
</pikelake.environment.AreaMovement>
......
......@@ -12,6 +12,7 @@ import pikelake.environment.AreaMovement;
import pikelake.environment.FichierMarnage;
import pikelake.environment.Time;
import pikelake.pikes.Pike;
import fr.cemagref.simaqualife.extensions.spatial2D.Grid2D;
import fr.cemagref.simaqualife.kernel.AquaNismsGroup;
import fr.cemagref.simaqualife.kernel.util.TransientParameters.InitTransientParameters;
......@@ -19,7 +20,6 @@ import fr.cemagref.simaqualife.pilot.Pilot;
public class Grid extends Grid2D<Cell, Individual> {
//public Time temp = new Time();
private String marnageInit = "513_4";
public Grid(int gridWidth, int gridHeight, NeighborsType neighborsType) {
......@@ -47,12 +47,8 @@ public class Grid extends Grid2D<Cell, Individual> {
grid[cptCell] = new Cell(cptCell, -1);
}
try {
marnageInit = FichierMarnage.calculMarnage();
} catch (NullPointerException e) {
//System.out.println ("Err marnage");
marnageInit = "513_4";
}
marnageInit = FichierMarnage.dateMarnage[Time.jourMois][Time.mois][Time.heure];
if (marnageInit == null ) marnageInit = "513_4";
// Lecture fichier contenant les HSI de toutes les mailles
String filePath = "data/input/HSI/hsi_BRO" + Time.getSeason() + marnageInit + ".txt";
......@@ -179,8 +175,8 @@ public class Grid extends Grid2D<Cell, Individual> {
// Calcul des mailles comprises dans le lac
for (String liste : listeCoord) {
// Calcul de l'indice de la maille partir des coordonnees (x,y)
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;
// Test si l'indice calcule appartient la grille totale
......
......@@ -20,7 +20,7 @@ public class Marnage extends AquaNismsGroupProcess<Pike,PikesGroup> {
Grid grid = (Grid) pilot.getAquaticWorld().getEnvironment();
grid = grid.getGrid();
marnageNew = FichierMarnage.calculMarnage();
marnageNew = FichierMarnage.dateMarnage[Time.jourMois][Time.mois][Time.heure];
if (!marnageNew.equals(marnageOld))
majCote(grid);
......
......@@ -2,8 +2,6 @@ package pikelake.environment;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import pikelake.pikes.Pike;
......@@ -12,7 +10,9 @@ import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess;
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
public void doProcess (PikesGroup object) {
......@@ -28,8 +28,9 @@ public class FichierMarnage extends AquaNismsGroupProcess<Pike,PikesGroup> {
line = scanner.nextLine();
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();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
......@@ -37,16 +38,7 @@ public class FichierMarnage extends AquaNismsGroupProcess<Pike,PikesGroup> {
}
}
public static String calculMarnage () {
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];
public static String calculMarnage (int jour, int mois, int heure) {
return dateMarnage[jour][mois][heure];
}
}
\ No newline at end of file
......@@ -2,21 +2,20 @@ package pikelake.environment;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import pikelake.pikes.Pike;
import pikelake.pikes.PikesGroup;
import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess;
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
public void doProcess (PikesGroup object) {
String temp[] = null, dateCompleteLever[] = null, dateCompleteCoucher[] = null;
String jour = null, mois = null, heureLever = null, heureCoucher = null;
......@@ -42,13 +41,31 @@ public static List<String> dateLeverCoucher = new ArrayList<String>(); // Jour M
// Coucher du soleil
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();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
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;
import pikelake.pikes.Pike;
import pikelake.pikes.PikesGroup;
import pikelake.environment.HoraireLeverCoucher;
import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess;
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 Mois {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 enum Mois {MoisZero, JANVIER, FEVRIER, MARS, AVRIL, MAI, JUIN, JUILLET, AOUT, SEPTEMBRE, OCTOBRE, NOVEMBRE, DECEMBRE};
public static int mois = 1, jour = 0, jourMois = 1, saison = 0, annee = 2012, phaseJour = 0, heure = 0;
public static String PhaseJour;
@Override
public void doProcess (PikesGroup group) {
......@@ -28,55 +29,43 @@ public class Time extends AquaNismsGroupProcess<Pike,PikesGroup> {
if (heure == 0)
jourMois = jourMois + 1;
// RAZ jourMois
if ((mois == 0 | mois == 2 | mois == 4 | mois == 6 | mois == 7 | mois == 9 | mois == 11) & jourMois == 32) jourMois = 1;
else if ((mois == 3 | mois == 5 | mois == 8 | mois == 10) & jourMois == 31) jourMois = 1;
else if (mois == 1 & jourMois == 29) jourMois = 1;
if ((mois == 1 | mois == 3 | mois == 5 | mois == 7 | mois == 8 | mois == 10 | mois == 12) & jourMois == 32) jourMois = 1;
else if ((mois == 4 | mois == 6 | mois == 9 | mois == 11) & jourMois == 31) jourMois = 1;
else if (mois == 2 & jourMois == 29) jourMois = 1;
calculMois();
calculSaison();
calculPhaseJour();
//System.out.println(annee + " " + Season.values()[saison] + " " + Mois.values()[mois] + " " + jour + " " + jourMois + " " + heure + " " + PhaseJour.values()[phaseJour]);
PhaseJour = HoraireLeverCoucher.phaseJournee[jourMois][mois][heure];
//System.out.println(annee + " " + Season.values()[saison] + " " + Mois.values()[mois] + " " + jour + " " + jourMois + " " + heure + " " + PhaseJour);
}
public void calculMois () {
if (jour <= 31) mois = 0; // Janv
else if (jour <= 59) mois = 1; // Fev
else if (jour <= 90) mois = 2; // Mars
else if (jour <= 120) mois = 3;// Avril
else if (jour <= 151) mois = 4; // Mai
else if (jour <= 181) mois = 5; // Juin
else if (jour <= 212) mois = 6; // Juillet
else if (jour <= 243) mois = 7; // Aout
else if (jour <= 273) mois = 8; // Sept
else if (jour <= 304) mois = 9; // Oct
else if (jour <= 334) mois = 10; // Nov
else if (jour <= 365) mois = 11; // Dec
if (jour <= 31) mois = 1; // Janv
else if (jour <= 59) mois = 2; // Fev
else if (jour <= 90) mois = 3; // Mars
else if (jour <= 120) mois = 4;// Avril
else if (jour <= 151) mois = 5; // Mai
else if (jour <= 181) mois = 6; // Juin
else if (jour <= 212) mois = 7; // Juillet
else if (jour <= 243) mois = 8; // Aout
else if (jour <= 273) mois = 9; // Sept
else if (jour <= 304) mois = 10; // Oct
else if (jour <= 334) mois = 11; // Nov
else if (jour <= 365) mois = 12; // Dec
else mois = 0;
}
public void calculSaison () {
if (mois == 0) saison = 3;
if (mois == 2 & jourMois >= 20) saison = 0;
else if (mois == 5 & jourMois >= 20) saison = 1;
else if (mois == 8 & jourMois >= 22) saison = 2;
else if (mois == 11 & 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;
}
}
if (mois == 1) saison = 3;
if (mois == 3 & jourMois >= 20) saison = 0;
else if (mois == 6 & jourMois >= 20) saison = 1;
else if (mois == 9 & jourMois >= 22) saison = 2;
else if (mois == 12 & jourMois >= 21) saison = 3;
}
public static String getPhaseJour () {
return PhaseJour.values()[phaseJour].toString();
return PhaseJour;
}
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