Tempstijgingsperiode

Hartstikke mooi man
This commit is contained in:
Tom Remeeus
2014-10-22 15:31:17 +02:00
parent 7f09720d6b
commit e4e89d98a3
3 changed files with 112 additions and 8 deletions
+54
View File
@@ -0,0 +1,54 @@
import java.util.ArrayList;
public class LangsteTempStijgingPeriode extends Grootheid
{
private ArrayList<Double> list;
private Periode StijgingPeriode;
//constructor
public LangsteTempStijgingPeriode(Measurement measurement1, ArrayList<Measurement> measurement2)
{
list = new ArrayList<Double>();
StijgingPeriode = new Periode("TempStijgingsperiode");
updateRecent(measurement1);
updatePeriod(measurement2);
}
public void updateRecent(Measurement measurement1)
{
setCurrent(measurement1.getOutsideTemp());
}
public void updatePeriod(ArrayList<Measurement> measurement2)
{
createList(measurement2);
calculateMaxMin(list);
int[] index = StatisticsCalculator.langsteTempStijgingPeriode(list);
StijgingPeriode= Calculator.timeStampToPeriode( measurement2.get(index[0]).getDateStamp(), measurement2.get(index[1]).getDateStamp());
}
public void display()
{
GUIboard.writePageToMatrix("Langste temp.stijging", StijgingPeriode.toString(), "");
}
public void displayGraph()
{
display();
}
private void createList(ArrayList<Measurement> measurement2)
{
if(!list.isEmpty())
{
list.clear();
}
for(Measurement ms : measurement2)
{
list.add(ms.getOutsideTemp());
}
}
}
+55 -6
View File
@@ -310,15 +310,64 @@ public class StatisticsCalculator {
public static int[] langsteTempStijgingPeriode(ArrayList<Double> array)
{
ArrayList<Double> maxTempDag = new ArrayList<Double>();
ArrayList<Integer> periodeLengteList = new ArrayList<Integer>();
ArrayList<Integer> periodeStartList = new ArrayList<Integer>();
int[] index = new int[2];
int index1 = 0;
int index2 = 0;
int indexStart = 0;
int indexEind = 1;
int periodeLengte = 0;
int i = 0;
double maxTemp = 0;
//Code
//berekent maximale temp. per dag
for(double db : array)
{
i ++;
if(i % 1440 == 0)
{
maxTempDag.add(maxTemp);
maxTemp = 0;
}
if(db > maxTemp)
{
maxTemp = db;
}
}
index[0] = index1;
index[1] = index2;
return index;
}
for(int t = 1; t < maxTempDag.size(); t ++) //zoekt naar periodes van temp.stijgingen
{
if (maxTempDag.get(t) > maxTempDag.get(t - 1))
{
indexEind ++;
}
if (maxTempDag.get(t) <= maxTempDag.get(t - 1))
{
periodeLengte = indexEind - indexStart;
periodeLengteList.add(periodeLengte);
periodeStartList.add(indexStart);
indexStart = indexEind;
}
}
Integer tempMax = Collections.max(periodeLengteList); //onthoudt de grootste periode van een temp.stijging
for (int u = 0; u < periodeLengteList.size(); u ++) //pakt de index van de grootste periode
{
if (tempMax == periodeLengteList.get(u))
{
index1 = u;
index2 = tempMax - u;
}
}
index[0] = index1 * 1440;
index[1] = index2 * 1440;
return index;
}
}
+3 -2
View File
@@ -73,7 +73,7 @@ public class Weerstation {
System.out.println("2 Years: " + periods.get(6));
//Kies hier welke periode je wil laden, hij veranderd in een keer alles:
int periodeNr = 0;
int periodeNr = 1;
weerstation1 = new WeerstationConnector();
meting1 = weerstation1.getMostRecentMeasurement();
@@ -103,7 +103,8 @@ public class Weerstation {
lstScreens.add(new Zonsterkte(meting1, meting2)); //Zonkracht
lstScreens.add(new DewPoint(meting1, meting2)); //Dauwpunt
lstScreens.add(new Sun(meting1)); //Sunrise en Sunset
lstScreens.add(new LangsteZomerPeriode(meting1, meting2)); //Langste Zomerse Periode
lstScreens.add(new LangsteZomerPeriode(meting1, meting2));//Langste Zomerse Periode
lstScreens.add(new LangsteTempStijgingPeriode(meting1, meting2)); //Langste temperatuurstijging
lstScreens.add(new LangsteRegenPeriode(meting1, meting2)); //Langste Regen Periode
lstScreens.add(new MaximaleRegenPeriode(meting1, meting2)); //Totale regenval in een periode
lstScreens.add(new GraadDagen(meting1, meting2)); //Aantal graaddagen in een periode