diff --git a/README.md b/README.md index 19cd8498539b7d260258d13d6fb2dcf0c62fa04e..66495b93567fdea7572ad2ca2ae93921d082f217 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Grovfôrmodellen ## Bruksområde + Modellen skal underveis i vekstsesongen gi støtte for valg av høstetid i to- og treslåttsystem i eng som brukes til fôrproduksjon. Den er utvikla på grunnlag av data fra timoteidominert eng, men kan også brukes på bestand dominert av fleirårig raigras. diff --git a/pom.xml b/pom.xml index ec43b1e53c978173103c484241b2ba4df22a0a03..059c46c82053b558329a5726e7296c97d3bfa982 100755 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ <groupId>no.nibio.vips.model</groupId> <artifactId>RoughageNutritionModel</artifactId> - <version>1.1.2</version> + <version>1.1.3-SNAPSHOT</version> <packaging>jar</packaging> <dependencies> diff --git a/src/main/java/no/bioforsk/vips/model/roughagenutritionmodel/RoughageNutritionModelImpl.java b/src/main/java/no/bioforsk/vips/model/roughagenutritionmodel/RoughageNutritionModelImpl.java index c2730bcf3be34e983396daed7412f86fb0fe4190..8f18501b13e0707fdd3b00cbf39ceed5ce1fe93b 100755 --- a/src/main/java/no/bioforsk/vips/model/roughagenutritionmodel/RoughageNutritionModelImpl.java +++ b/src/main/java/no/bioforsk/vips/model/roughagenutritionmodel/RoughageNutritionModelImpl.java @@ -36,6 +36,7 @@ import java.util.logging.Logger; import java.util.stream.Collectors; import no.nibio.vips.entity.WeatherObservation; import no.nibio.vips.model.ModelExcecutionException; +import no.nibio.vips.util.WeatherUtil; // Using Commons math and Nelder-Mead for parameter optimization import org.apache.commons.math.ConvergenceException; @@ -736,6 +737,24 @@ public class RoughageNutritionModelImpl implements CostFunction { //System.out.println("m=" + m); return m; } + + /** + * @return + * @throws ModelExcecutionException + */ + private Date getForsteApril() throws ModelExcecutionException + { + // Calculating start and end date of weather data retrieval + // Start is April 1st + Calendar cal = Calendar.getInstance(timeZone); + cal.setTime(this.getVekstStart()); + cal.set(Calendar.MONTH, Calendar.APRIL); + cal.set(Calendar.DATE, 1); + + WeatherUtil wUtil = new WeatherUtil(); + return wUtil.normalizeToExactDate(cal.getTime(), timeZone); + + } /** * Løper gjennom eksisterende klimadatasett og beregner utvikling @@ -751,6 +770,7 @@ public class RoughageNutritionModelImpl implements CostFunction { } boolean first = true; + boolean firstTemperaturSum = true; Date forrigeDato = null; List<WeatherObservation> tempCopy = new ArrayList<>(this.luftTemperaturVerdier); for (Iterator<WeatherObservation> tempI = tempCopy.iterator(); tempI.hasNext();) { @@ -758,10 +778,15 @@ public class RoughageNutritionModelImpl implements CostFunction { temperatur = tempI.next(); //Setter Ts1 - if (first) { - this.AIBakgrunnsdataMatrise.setParamDoubleValueForDate(temperatur.getTimeMeasured(), AIDataMatrix.TS1, temperatur.getValue()); - } else { - this.AIBakgrunnsdataMatrise.setParamDoubleValueForDate(temperatur.getTimeMeasured(), AIDataMatrix.TS1, temperatur.getValue() + this.AIBakgrunnsdataMatrise.getParamDoubleValueForDate(forrigeDato, AIDataMatrix.TS1)); + // At første april (og ikke f.eks. vekststart) er grense her, er pr. 2023-09 til vurdering av Anne Kjersti Bakken + if (temperatur.getTimeMeasured().compareTo(this.getForsteApril()) >= 0) + { + if (firstTemperaturSum) { + this.AIBakgrunnsdataMatrise.setParamDoubleValueForDate(temperatur.getTimeMeasured(), AIDataMatrix.TS1, temperatur.getValue()); + firstTemperaturSum = false; + } else { + this.AIBakgrunnsdataMatrise.setParamDoubleValueForDate(temperatur.getTimeMeasured(), AIDataMatrix.TS1, temperatur.getValue() + this.AIBakgrunnsdataMatrise.getParamDoubleValueForDate(forrigeDato, AIDataMatrix.TS1)); + } } // Beregner DVR