From dbe7667929dee3f2cafbe2a1de7323ad17963ca5 Mon Sep 17 00:00:00 2001 From: holos-aafc <95769272+holos-aafc@users.noreply.github.com> Date: Fri, 15 Nov 2024 13:17:33 -0700 Subject: [PATCH] Fix #203 --- H.Core/Enumerations/HousingTypeExtensions.cs | 3 +++ .../Services/Animals/AnimalResultsServiceBase.cs | 14 ++++++++++++-- .../Animals/BeefAndDairyResultsServiceBase.cs | 4 +++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/H.Core/Enumerations/HousingTypeExtensions.cs b/H.Core/Enumerations/HousingTypeExtensions.cs index 5afba38e..68da5867 100644 --- a/H.Core/Enumerations/HousingTypeExtensions.cs +++ b/H.Core/Enumerations/HousingTypeExtensions.cs @@ -71,6 +71,9 @@ public static bool IsIndoorHousing(this HousingType housingType) case HousingType.FreeStallBarnSolidLitter: case HousingType.FreeStallBarnSlurryScraping: case HousingType.FreeStallBarnMilkParlourSlurryFlushing: + case HousingType.TieStall: + case HousingType.TieStallSlurry: + case HousingType.TieStallSolidLitter: return true; default: diff --git a/H.Core/Services/Animals/AnimalResultsServiceBase.cs b/H.Core/Services/Animals/AnimalResultsServiceBase.cs index d68c3cfb..4e7f28d4 100644 --- a/H.Core/Services/Animals/AnimalResultsServiceBase.cs +++ b/H.Core/Services/Animals/AnimalResultsServiceBase.cs @@ -1388,12 +1388,22 @@ public double CalculateAmbientTemperatureAdjustmentNoBarn(double averageMonthlyT /// /// Equation 4.3.1-12 + /// + /// Indoor dairy housing systems do not get an additional +2 degrees - just beef housing systems /// /// Temperature (°C) + /// /// Temperature-based adjustments used to correct default NH3 emission factors for indoor housing - public double CalculateAmbientTemperatureAdjustmentForIndoorHousing(double dailyTemperature) + public double CalculateAmbientTemperatureAdjustmentForIndoorHousing(double dailyTemperature, + bool isDairyIndoorHousing = false) { - return Math.Pow(1.041, dailyTemperature + 2) / Math.Pow(1.041, 15); + var temperatureAdjustment = dailyTemperature; + if (isDairyIndoorHousing == false) + { + temperatureAdjustment += 2; + } + + return Math.Pow(1.041, temperatureAdjustment) / Math.Pow(1.041, 15); } /// diff --git a/H.Core/Services/Animals/BeefAndDairyResultsServiceBase.cs b/H.Core/Services/Animals/BeefAndDairyResultsServiceBase.cs index 97886e20..beac10e3 100644 --- a/H.Core/Services/Animals/BeefAndDairyResultsServiceBase.cs +++ b/H.Core/Services/Animals/BeefAndDairyResultsServiceBase.cs @@ -68,8 +68,10 @@ protected void CalculateIndirectManureNitrousOxide(GroupEmissionsByDay dailyEmis } } + var isIndoorDairyHousing = managementPeriod.HousingDetails.HousingType.IsIndoorHousing() && managementPeriod.AnimalType.IsDairyCattleType(); dailyEmissions.AmbientAirTemperatureAdjustmentForHousing = CalculateAmbientTemperatureAdjustmentForIndoorHousing( - dailyTemperature: temperature); + dailyTemperature: temperature, + isDairyIndoorHousing: isIndoorDairyHousing); } else {