Skip to content
Snippets Groups Projects
Commit d5153c89 authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

New version 2021

parent 1bdf8619
Branches
No related tags found
No related merge requests found
......@@ -68,6 +68,7 @@ public class OatFloweringModel extends I18nImpl implements Model{
Double dayDegreeSum = 0.0;
List<Result> results = new ArrayList<>();
boolean z60Set = false, z625Set = false, z69Set = false;
//int counter = 1;
for(WeatherObservation obs:this.TM)
{
if(obs.getTimeMeasured().compareTo(dateOfSowing) >= 0
......@@ -75,22 +76,27 @@ public class OatFloweringModel extends I18nImpl implements Model{
{
dayDegreeSum += obs.getValue();
}
//System.out.println(obs.getTimeMeasured() +": " + dayDegreeSum);
if(dayDegreeSum >= 768 && ! z60Set)
Double GS = this.getGS(dayDegreeSum);
//System.out.println(obs.getTimeMeasured() +" [" + counter + "]: " + dayDegreeSum + "/" + GS);
//counter++;
if(GS >= 60.0 && ! z60Set)
{
Result result = this.initResult(obs);
result.setValue(this.getModelId().toString(), "ZREACHED", "60");
result.setValue(this.getModelId().toString(), "GS", GS.toString());
results.add(result);
z60Set = true;
}
if(dayDegreeSum >= 808 && ! z625Set)
if(GS >= 62.5 && ! z625Set)
{
Result result = this.initResult(obs);
result.setValue(this.getModelId().toString(), "ZREACHED", "62.5");
results.add(result);
z625Set = true;
}
if(dayDegreeSum >= 922 && ! z69Set)
if(GS >= 69.0 && ! z69Set)
{
Result result = this.initResult(obs);
result.setValue(this.getModelId().toString(), "ZREACHED", "69");
......@@ -102,6 +108,17 @@ public class OatFloweringModel extends I18nImpl implements Model{
return results;
}
/**
* Calculating Growth stage from day degrees
*
* @param dayDegrees
* @return
*/
public Double getGS(Double dayDegrees)
{
return 99 * Math.exp(-4.056118159304253 * Math.exp(-0.002380012709504 * dayDegrees));
}
private Result initResult(WeatherObservation obs)
{
Calendar cal = Calendar.getInstance();
......
......@@ -87,6 +87,20 @@ public class OatFloweringModelTest {
}
@Test
public void testGetGS()
{
System.out.println("testGetGS");
OatFloweringModel instance = new OatFloweringModel();
Double dayDegrees = 2.1;
Double expRes = 1.749313981451895;
assertEquals(expRes, instance.getGS(dayDegrees));
dayDegrees = 69.8;
expRes = 3.1893887633938527;
assertEquals(expRes, instance.getGS(dayDegrees));
}
@Test
public void testGetResult()
{
......@@ -99,13 +113,15 @@ public class OatFloweringModelTest {
List<Result> results = instance.getResult();
String weekResult = results.get(0).getValue(instance.getModelId().toString(),"WEEK_IN_YEAR");
String zReached = results.get(0).getValue(instance.getModelId().toString(),"ZREACHED");
assertEquals(weekResult, "25");
assertEquals(zReached, "60");
/*for(Result result:results)
{
System.out.println("Result: [" + result.getResultValidTime() + "]" + result.getAllValues());
System.out.println("Result: [" + result.getValidTimeStart() + "]" + result.getAllValues());
}*/
assertEquals("27", weekResult);
assertEquals("60", zReached);
}
catch(ConfigValidationException | ModelExcecutionException ex)
{
......@@ -130,21 +146,21 @@ public class OatFloweringModelTest {
if(all.isArray())
{
for(JsonNode node : all){
System.out.println(node.toString());
//System.out.println(node.toString());
Date timeMeasured = (Date)mapper.convertValue(node.get("timeMeasured").asText(), new TypeReference<Date>(){});
if(firstDate == null || firstDate.compareTo(timeMeasured) > 0)
{
firstDate = timeMeasured;
}
System.out.println(node.get("elementMeasurementTypeId"));
//System.out.println(node.get("elementMeasurementTypeId"));
WeatherObservation observation = new WeatherObservation();
observation.setTimeMeasured(timeMeasured);
observation.setLogIntervalId(Integer.valueOf(node.get("logIntervalId").asText()));
observation.setElementMeasurementTypeId(node.get("elementMeasurementTypeId").asText());
observation.setValue(Double.valueOf(node.get("value").asText()));
observations.add(observation);
System.out.println("logIntevalId=" + observation.getLogIntervalId());
//System.out.println("logIntevalId=" + observation.getLogIntervalId());
}
}
......@@ -154,7 +170,7 @@ public class OatFloweringModelTest {
}
config.setConfigParameter("observations", observations);
config.setConfigParameter("dateOfSowing", firstDate);
System.out.println("dateOfSowing = " + firstDate);
//System.out.println("dateOfSowing = " + firstDate);
return config;
} catch (IOException ex) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment