public LossTimeSeries ApplyWindow(TimeWindow window) { LossTimeSeries series = new LossTimeSeries(this.NumOfBldgs); foreach (KeyValuePair <DateTime, double[]> timeloss in this.timeseries) { if ((timeloss.Key >= window.start && timeloss.Key <= window.end) || window.IsUnrestricted) { series.AddLoss(timeloss.Key, timeloss.Value, Aggregation.PerBuilding); } } return(series); }
public LossTimeSeries GetPayoutTimeSeries() { var timeGroups = from allocLoss in AllocatedLosses group allocLoss by allocLoss.timestamp into g select new { Time = g.Key, Payouts = g }; LossTimeSeries series = new LossTimeSeries(1); foreach (var g in timeGroups) { double totalpayout = g.Payouts.Select(payout => payout.Loss).Sum(); series.AddLoss(g.Time, totalpayout); } return(series); }
public LossTimeSeries GetFilteredTimeSeries(string subperil, ExposureType exType) { var timeGroups = from allocLoss in AllocatedLosses group allocLoss by allocLoss.timestamp into g select new { Time = g.Key, Payouts = g }; LossTimeSeries series = new LossTimeSeries(1); foreach (var g in timeGroups) { double totalpayout = g.Payouts.Where(payout => payout.Subperil == subperil && payout.ExpType == exType) .Select(payout => payout.Loss) .Sum(); series.AddLoss(g.Time, totalpayout); } return(series); }