//-----------------------------------------------------------------------
//
// 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;
}
}
}