private void CompileWholeDay(PeriodHolder holder, List <double> estimations) { TimeEstimation estimation = EstimateDayLengthFromWholeDay(); if (estimation.Reliable) { estimations.Add(estimation.Length); } holder.Reset(holder.LastTransition); }
private void CompileDaytime(PeriodHolder holder, List <double> estimations) { TimeEstimation estimation = EstimateDayLengthFromDaytime(); if (estimation.Reliable) { estimations.Add(estimation.Length); } holder.Reset(); }
private TimeEstimation EstimateDayLengthFromWholeDay() { PeriodHolder holder = _historicalData.WholeDay; if (holder.FirstTransition != null && holder.FirstTransition.Type == TransitionTypeEnum.IdlingToChasing && holder.LastTransition != null && holder.LastTransition.Type == TransitionTypeEnum.IdlingToChasing) { double estimatedTime = (24 - holder.FirstTransition.EstimatedTime) + holder.LastTransition.EstimatedTime; double length = holder.LastTransition.Timestamp - holder.FirstTransition.Timestamp; return(new TimeEstimation { Reliable = true, Length = 24 * length / estimatedTime }); } return(new TimeEstimation()); }
private void HandleWholeDayPeriod(Transition transition) { _lastRelevantTransition = transition; PeriodHolder holder = _historicalData.WholeDay; if (holder.LastTransition == null) { holder.LastTransition = transition; } else { if (Math.Abs(transition.EstimatedTime - 12) < Math.Abs(holder.LastTransition.EstimatedTime - 12)) { holder.LastTransition = transition; } } }
private TimeEstimation EstimateDayLengthFromDaytime() { PeriodHolder holder = _historicalData.Daytime; if (holder.FirstTransition != null && holder.LastTransition != null) { double length = holder.LastTransition.Timestamp - holder.FirstTransition.Timestamp; double estimatedTime = holder.LastTransition.EstimatedTime - holder.FirstTransition.EstimatedTime; if (length > 0 && estimatedTime > 0.1) { // estimation of the day length return(new TimeEstimation { Length = 24 * length / estimatedTime, Reliable = true }); } } return(new TimeEstimation()); }