//----------------------------------------------------------------------- // // Copyright (c) 2010 Deltares. All rights reserved. // // B.S.T.I.M. The // tom.the@deltares.nl // 24-11-2010 // Perform overtopping erosion calculations for a time serie of waterlevels //----------------------------------------------------------------------- namespace Deltares.Dam.Data { using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using Deltares.Piping.Data; public class TimeSerieOvertoppingErosionCalculatorException : ApplicationException { public TimeSerieOvertoppingErosionCalculatorException(string message) : base(message) { } } public class TimeSerieOvertoppingErosionCalculator { /// /// Constructor /// public TimeSerieOvertoppingErosionCalculator() { } /// /// Create time serie with results for Overtopping Erosion /// /// /// /// /// public TimeSerie CreateOvertoppingErosionTimeSerie(TimeSerie source, Dike dike, Location location) { string serieName = TimeSerieParameters.OvertoppingErosion.ToString(); TimeSerie serie = TimeSerie.CreateTimeSerie(source, serieName); foreach (TimeSerieEntry sourceEntry in source.Entries) { TimeSerieEntry entry = sourceEntry.GetShallowCopy(); var calculator = new OvertoppingErosionCalculator() { Location = location }; try { entry.Value = sourceEntry.Value != source.MissVal ? calculator.Calculate(sourceEntry.Value) : source.MissVal; } catch { entry.Value = source.MissVal; } serie.Entries.Add(entry); } return serie; } } }