// </DeclareData> static void Main(string[] args) { // <HeatingAndCooling> var heatingDegreeDays = new HeatingDegreeDays(65, data); Console.WriteLine(heatingDegreeDays); var coolingDegreeDays = new CoolingDegreeDays(65, data); Console.WriteLine(coolingDegreeDays); // </HeatingAndCooling> // <GrowingDegreeDays> // Growing degree days measure warming to determine plant growing rates var growingDegreeDays = coolingDegreeDays with { BaseTemperature = 41 }; Console.WriteLine(growingDegreeDays); // </GrowingDegreeDays> // <RunningFiveDayTotal> // showing moving accumulation of 5 days using range syntax List <CoolingDegreeDays> movingAccumulation = new(); int rangeSize = (data.Length > 5) ? 5 : data.Length; for (int start = 0; start < data.Length - rangeSize; start++) { var fiveDayTotal = growingDegreeDays with { TempRecords = data[start..(start + rangeSize)]
static void Main(string[] args) { foreach (var item in data) { Console.WriteLine(item); } var heatingDegreeDays = new HeatingDegreeDays(65, data); Console.WriteLine(heatingDegreeDays); var coolingDegreeDays = new CoolingDegreeDays(65, data); Console.WriteLine(coolingDegreeDays); var growingDegreeDays = coolingDegreeDays with { BaseTemperature = 41 }; Console.WriteLine(growingDegreeDays); List <CoolingDegreeDays> movingAccumulation = new(); int rangeSize = (data.Length > 5) ? 5 : data.Length; for (int start = 0; start < data.Length - rangeSize; start++) { var fiveDayTotal = growingDegreeDays with { TempRecords = data[start..(start + rangeSize)]
public void InitializeDailyAmounts(double yearlyConsumption) { double sum = HeatingDegreeDays.Select(x => x.DegreeDays).Sum(); double degreeDayProportion = yearlyConsumption / sum; foreach (var day in HeatingDegreeDays) { day.DailyEnergyConsumption = day.DegreeDays * degreeDayProportion; } }
public HeatingDegreeProfile([NotNull] Profile temperatures, double heatingTemperature, double roomTemperature) { var timeStepsPerDay = FindProfileResolution(temperatures); var dailyaverages = MakeDailyAverages(timeStepsPerDay, temperatures); for (var i = 0; i < dailyaverages.Count; i++) { var dailyaverage = dailyaverages[i]; HeatingDegreeDays.Add(new HeatingDegreeDay(dailyaverage, heatingTemperature, roomTemperature)); } }