Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • VIPS/models/java/Model_ROUGHAGENU
1 result
Select Git revision
Show changes
Commits on Source (5)
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<groupId>no.nibio.vips.model</groupId> <groupId>no.nibio.vips.model</groupId>
<artifactId>RoughageNutritionModel</artifactId> <artifactId>RoughageNutritionModel</artifactId>
<version>1.1.15</version> <version>1.1.16-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<repositories> <repositories>
......
...@@ -1351,6 +1351,7 @@ public class RoughageNutritionModelImpl implements CostFunction { ...@@ -1351,6 +1351,7 @@ public class RoughageNutritionModelImpl implements CostFunction {
WeatherObservation eldsteDoegnverdi; WeatherObservation eldsteDoegnverdi;
WeatherObservation forrigeDoegnverdi = null; WeatherObservation forrigeDoegnverdi = null;
Calendar cal = Calendar.getInstance(this.timeZone); Calendar cal = Calendar.getInstance(this.timeZone);
// Må ha minst sju jordtemperaturverdier // Må ha minst sju jordtemperaturverdier
Iterator<WeatherObservation> ji = (jordTemperatur != null && jordTemperatur.size() >= 7) ? jordTemperatur.iterator() : null; Iterator<WeatherObservation> ji = (jordTemperatur != null && jordTemperatur.size() >= 7) ? jordTemperatur.iterator() : null;
for (Iterator<WeatherObservation> i = dognMiddelLuftTemperatur.iterator(); i.hasNext();) { for (Iterator<WeatherObservation> i = dognMiddelLuftTemperatur.iterator(); i.hasNext();) {
...@@ -1568,6 +1569,7 @@ public class RoughageNutritionModelImpl implements CostFunction { ...@@ -1568,6 +1569,7 @@ public class RoughageNutritionModelImpl implements CostFunction {
} }
Date forrigeDato = null; Date forrigeDato = null;
int hulljordTemp = 0;
boolean first = true; boolean first = true;
int counter = 0; int counter = 0;
Calendar cal = Calendar.getInstance(this.timeZone); Calendar cal = Calendar.getInstance(this.timeZone);
...@@ -1578,7 +1580,7 @@ public class RoughageNutritionModelImpl implements CostFunction { ...@@ -1578,7 +1580,7 @@ public class RoughageNutritionModelImpl implements CostFunction {
WeatherObservation potFord = potFordI.next(); WeatherObservation potFord = potFordI.next();
WeatherObservation straaling = straalingI.next(); WeatherObservation straaling = straalingI.next();
WeatherObservation jordTemperatur = (jordTempI != null && jordTempI.hasNext()) ? jordTempI.next() : null; WeatherObservation jordTemperatur = (jordTempI != null && jordTempI.hasNext()) ? jordTempI.next() : null;
Date dagensDato = luftTemperatur.getTimeMeasured(); Date dagensDato = luftTemperatur.getTimeMeasured();
if (first) { if (first) {
...@@ -1601,14 +1603,19 @@ public class RoughageNutritionModelImpl implements CostFunction { ...@@ -1601,14 +1603,19 @@ public class RoughageNutritionModelImpl implements CostFunction {
+ "<ul><li>Temperaturlinjas dato er " + dagensDato.toString() + "</li><li>Nedb&oslash;rlinjas dato er " + nedboer.getTimeMeasured().toString() + "<ul><li>Temperaturlinjas dato er " + dagensDato.toString() + "</li><li>Nedb&oslash;rlinjas dato er " + nedboer.getTimeMeasured().toString()
+ "</li><li>Potensiell fordampinglinjas dato er " + potFord.getTimeMeasured().toString() + "</li><li>Globalstr&aring;lingslinjas dato er " + straaling.getTimeMeasured().toString() + "</li></ul>"); + "</li><li>Potensiell fordampinglinjas dato er " + potFord.getTimeMeasured().toString() + "</li><li>Globalstr&aring;lingslinjas dato er " + straaling.getTimeMeasured().toString() + "</li></ul>");
} }
if (jordTemperatur != null && dagensDato.compareTo(jordTemperatur.getTimeMeasured()) != 0) { if (jordTemperatur != null && dagensDato.compareTo(jordTemperatur.getTimeMeasured()) == 0) {
throw new ModelExcecutionException("Feil ved klimadata: Jordemperatur har hull i datasettet, omkring dato " + dagensDato); hulljordTemp = counter;
//throw new ModelExcecutionException("Feil ved klimadata: Jordemperatur har hull i datasettet, omkring dato " + dagensDato);
} }
forrigeDato = dagensDato; forrigeDato = dagensDato;
counter++; counter++;
} }
// jordTemperatur holder bare verdier frem til et evt hull i serien. Serien kan derfor være kortere enn seriene for temperatur, nedbør, fordamping og stråling
this.jordTemperaturVerdier = this.jordTemperaturVerdier.subList(0, hulljordTemp);
sisteDato = forrigeDato; sisteDato = forrigeDato;
if (counter < 10 || foersteDato == null || sisteDato == null) { if (counter < 10 || foersteDato == null || sisteDato == null) {
throw new ModelExcecutionException("Feil ved klimadata: For få klimadata."); throw new ModelExcecutionException("Feil ved klimadata: For få klimadata.");
......
...@@ -114,8 +114,47 @@ public class RoughageNutritionModelTest { ...@@ -114,8 +114,47 @@ public class RoughageNutritionModelTest {
} }
} }
/**
@Test
public void testGetResultMissingTJM() throws Exception {
System.out.println("getResultMissingTJM");
try
{
ModelConfiguration config = this.getConfiguration("/weatherdata_kvithamar_holes_2016.json");
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("Europe/Oslo"));
cal.set(2016, Calendar.JUNE, 1, 0, 0, 0);
cal.set(Calendar.MILLISECOND,0);
config.setConfigParameter("timeZone","Europe/Oslo");
config.setConfigParameter("firstHarvest", cal.getTime());
cal.set(Calendar.MONTH, Calendar.APRIL);
cal.set(Calendar.DATE, 15);
config.setConfigParameter("firstPossibleGrowthStartDate", cal.getTime());
config.setConfigParameter("soilType", RoughageNutritionModel.JORDTYPE_SAND);
config.setConfigParameter("cloverShare", RoughageNutritionModel.ENGSAMMENSETNING_KLOEVERANDEL_LITEN);
String[] optimizationInfoLines = {"2016-06-02,2,3,,,,"};
List<String> optimizationInfo = Arrays.asList(optimizationInfoLines);
config.setConfigParameter("optimizationInfo", optimizationInfo);
RoughageNutritionModel instance = new RoughageNutritionModel();
instance.setConfiguration(config);
//List<Result> expResult = null;
List<Result> result = instance.getResult();
//assertEquals(expResult, result);
assertNotNull(result);
Collections.sort(result);
//System.out.println("Number of result objects: " + result.size());
//for(Result r:result)
//{
// System.out.println(r);
//}
}
catch(ConfigValidationException | ModelExcecutionException ex)
{
ex.printStackTrace();
fail(ex.getMessage());
}
}
/** /**
* Test of getModelId method, of class RoughageNutritionModel. * Test of getModelId method, of class RoughageNutritionModel.
......
This diff is collapsed.