From 2fd678b5cda53f985538131fe859b6401aea2450 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@bioforsk.no>
Date: Wed, 27 Aug 2014 13:19:41 +0200
Subject: [PATCH] Added input parameter harvestWidth

---
 .../vips/model/grassdryingmodel/GrassDryingModel.java    | 9 ++++++++-
 .../model/grassdryingmodel/GrassDryingModelTest.java     | 2 ++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/main/java/no/bioforsk/vips/model/grassdryingmodel/GrassDryingModel.java b/src/main/java/no/bioforsk/vips/model/grassdryingmodel/GrassDryingModel.java
index 8d62473..5856e18 100644
--- a/src/main/java/no/bioforsk/vips/model/grassdryingmodel/GrassDryingModel.java
+++ b/src/main/java/no/bioforsk/vips/model/grassdryingmodel/GrassDryingModel.java
@@ -65,6 +65,7 @@ public class GrassDryingModel  extends I18nImpl implements Model{
     // 1 = weak, 2 = strong, 3 = crushed
     private Integer conditioning;
     private Double stringWidth;
+    private Double harvestWidth;
     
     public GrassDryingModel()
     {
@@ -165,6 +166,7 @@ public class GrassDryingModel  extends I18nImpl implements Model{
                 "\t\t\"yield\":750.0,\n" +
                 "\t\t\"conditioning\":2,\n" +
                 "\t\t\"stringWidth\":3.0,\n" +
+                "\t\t\"harvestWidth\":3.0,\n" +
                 "\t\t\"observations\":[\n" +
                 "\t\t{\n" +
                 "\t\t\t\t\"timeMeasured\": \"2014-06-25T00:00:00+02:00\",\n" +
@@ -217,6 +219,7 @@ public class GrassDryingModel  extends I18nImpl implements Model{
             throw new ConfigValidationException("Conditioning may only have values [1,2,3], not " + this.conditioning);
         }
         this.stringWidth = (Double) config.getConfigParameter("stringWidth");
+        this.harvestWidth = (Double) config.getConfigParameter("harvestWidth");
         // private Double yield; // Kgs? Tons?? Per hectar?
         
         
@@ -380,7 +383,11 @@ public class GrassDryingModel  extends I18nImpl implements Model{
         Double dryingRateCoefficient = 
                 this.conditioning == 1 ? 0.095 : 
                 this.conditioning == 2 ? 0.11 : 0.19;
-        Double correctionFactor = 44.939 * Math.pow(this.yield, -0.537);
+        
+        // Adjustment of yield into model
+        Double yieldAdjusted = this.yield * (this.harvestWidth / this.stringWidth);
+        
+        Double correctionFactor = 44.939 * Math.pow(yieldAdjusted, -0.537);
         
         return dryingRateCoefficient * correctionFactor;
     }
diff --git a/src/test/java/no/bioforsk/vips/model/grassdryingmodel/GrassDryingModelTest.java b/src/test/java/no/bioforsk/vips/model/grassdryingmodel/GrassDryingModelTest.java
index 77cd90a..8eabb8d 100644
--- a/src/test/java/no/bioforsk/vips/model/grassdryingmodel/GrassDryingModelTest.java
+++ b/src/test/java/no/bioforsk/vips/model/grassdryingmodel/GrassDryingModelTest.java
@@ -90,6 +90,8 @@ public class GrassDryingModelTest {
             config.setConfigParameter("yield", 750.0);
             config.setConfigParameter("conditioning", 2);
             config.setConfigParameter("stringWidth", 3.0);
+            config.setConfigParameter("harvestWidth", 3.0);
+
             instance.setConfiguration(config);
             
             List<Result> results = instance.getResult();
-- 
GitLab