Index: DamEngine/trunk/xsd/DamInput.xsd
===================================================================
diff -u -r1405 -r1554
--- DamEngine/trunk/xsd/DamInput.xsd (.../DamInput.xsd) (revision 1405)
+++ DamEngine/trunk/xsd/DamInput.xsd (.../DamInput.xsd) (revision 1554)
@@ -8,6 +8,7 @@
+
@@ -65,6 +66,13 @@
+
+
+
+
+
+
+
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs
===================================================================
diff -u -r1553 -r1554
--- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1553)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1554)
@@ -24,6 +24,7 @@
using System.IO;
using Deltares.DamEngine.Data.Design;
using Deltares.DamEngine.Data.General;
+using Deltares.DamEngine.Data.General.TimeSeries;
using Deltares.DamEngine.Data.Geometry;
using Deltares.DamEngine.Data.Geotechnics;
using Deltares.DamEngine.Io;
@@ -121,9 +122,106 @@
FillSoilProfiles2D(dike);
FillSegments(damProjectData);
FillLocations(dike, damProjectData.Segments, damProjectData.ProjectPath);
+ FillInputTimeSeries(dike);
+ // FillOutputTimeSeries(dike);
return damProjectData;
}
+ private void FillOutputTimeSeries(Dike dike)
+ {
+ const int timeSeriesCount = 2;
+ const int timeEntriesCount = 3;
+ const string idPipingBligh = "PipingFactorBligh";
+ const string idStabilityInsideFactor = "StabilityInsideFactor";
+ dike.InputTimeSerieCollection = new TimeSerieCollection();
+ for (int i = 0; i < timeSeriesCount; i++)
+ {
+ string locationId = String.Format("location{0}", i);
+ var timeSerie = dike.InputTimeSerieCollection.AddNewSeries(locationId);
+ timeSerie.ParameterId = (i % 2 == 0) ? idPipingBligh : idStabilityInsideFactor;
+ timeSerie.ForecastDateTime = DateTime.Now;
+ timeSerie.Type = "instantaneous";
+ timeSerie.StartDateTime = new DateTime(2012, 12, 31);
+ timeSerie.EndDateTime = new DateTime(2012, 12, 31, 1, 0, 0);
+ timeSerie.MissVal = -9999.0;
+ timeSerie.LongName = timeSerie.LocationId + "long";
+ timeSerie.StationName = String.Format("station{0}", i);
+ timeSerie.Units = "m";
+ timeSerie.SourceOrganisation = String.Format("organisation{0}", i);
+ timeSerie.SourceSystem = String.Format("system{0}", i);
+ timeSerie.FileDescription = String.Format("filedescription{0}", i);
+ timeSerie.Region = String.Format("region{0}", i);
+ timeSerie.TimeStep.Multiplier = 3600;
+ timeSerie.TimeStep.Unit = TimeStepUnit.Second;
+ for (int j = 0; j < timeEntriesCount; j++)
+ {
+ timeSerie.Entries.Add(new TimeSerieEntry
+ {
+ DateTime = new DateTime(2012, 12, 31, 1, j * 10, 0),
+ Value = 1 + j * 0.1,
+ Flag = 1,
+ BasisFileName = String.Format("BasisFileName{0}", i)
+ });
+ }
+ }
+ }
+
+ private void FillInputTimeSeries(Dike dike)
+ {
+ const int timeSeriesCount = 2;
+ const int timeEntriesCount = 3;
+ const string idWaterLevel = "WaterLevel";
+ const string idWaterPressure = "WaterPressure";
+ dike.InputTimeSerieCollection = new TimeSerieCollection();
+ for (int i = 0; i < timeSeriesCount; i++)
+ {
+ string locationId = String.Format("location{0}", i);
+ var timeSerie = dike.InputTimeSerieCollection.AddNewSeries(locationId);
+ timeSerie.ParameterId = (i % 2 == 0) ? idWaterLevel : idWaterPressure;
+ timeSerie.ForecastDateTime = DateTime.Now;
+ timeSerie.Type = "instantaneous";
+ timeSerie.StartDateTime = new DateTime(2012, 12, 31);
+ timeSerie.EndDateTime = new DateTime(2012, 12, 31, 1, 0, 0);
+ timeSerie.MissVal = -9999.0;
+ timeSerie.LongName = timeSerie.LocationId + "long";
+ timeSerie.StationName = String.Format("station{0}", i);
+ timeSerie.Units = "m";
+ timeSerie.SourceOrganisation = String.Format("organisation{0}", i);
+ timeSerie.SourceSystem = String.Format("system{0}", i);
+ timeSerie.FileDescription = String.Format("filedescription{0}", i);
+ timeSerie.Region = String.Format("region{0}", i);
+ if ((i % 2 == 0))
+ {
+ timeSerie.TimeStep.Multiplier = 3600;
+ timeSerie.TimeStep.Unit = TimeStepUnit.Second;
+ }
+ else
+ {
+ timeSerie.TimeStep.Divider = 24;
+ timeSerie.TimeStep.Unit = TimeStepUnit.Day;
+ }
+ for (int j = 0; j < timeEntriesCount; j++)
+ {
+ Stochast stochastValue = new Stochast()
+ {
+ Mean = 1.0 * j,
+ Distribution = j,
+ StandardDeviation = 0.1 * j
+ };
+ timeSerie.Entries.Add(new TimeSerieEntry
+ {
+
+ DateTime = new DateTime(2012, 12, 31, 1, j * 10, 0),
+ Value = j,
+ Flag = 1,
+ BasisFileName = String.Format("BasisFileName{0}", i),
+ RelativeCalculationPathName = String.Format("RelativeCalculationPathName{0}", i),
+ StochastValue = stochastValue
+ });
+ }
+ }
+ }
+
private void FillAquiferSoils(SoilList soilList)
{
for (int i = 0; i < soilList.Soils.Count; i++)
@@ -183,7 +281,7 @@
dike.SoilList = new SoilList();
for (int i = 0; i < soilCount; i++)
{
- Soil soil = new Soil() {Name = String.Format("Soil {0}", i)};
+ Soil soil = new Soil() { Name = String.Format("Soil {0}", i) };
//soil.SoilType = SoilType.Loam;
soil.AbovePhreaticLevel = 7 + 0.1 * i;
@@ -197,7 +295,7 @@
soil.Ocr = 14 + 0.1 * i;
soil.SlopeRestProfile = 15 + 0.1 * i;
soil.DilatancyType = DilatancyType.Zero;
-
+
//soil.CuBottom = 11 + 0.1 * i;
//soil.CuTop = 12 + 0.1 * i;
//soil.PoP = 15 + 0.1 * i;
@@ -265,8 +363,8 @@
var location = new Data.General.Location();
location.Name = "Location " + (i + 1).ToString();
location.XSoilGeometry2DOrigin = 1.23;
- location.ModelParametersForPlLines.PlLineCreationMethod = (PlLineCreationMethod) i;
- location.IntrusionVerticalWaterPressure = (IntrusionVerticalWaterPressureType) i;
+ location.ModelParametersForPlLines.PlLineCreationMethod = (PlLineCreationMethod)i;
+ location.IntrusionVerticalWaterPressure = (IntrusionVerticalWaterPressureType)i;
location.PolderLevel = 1.0 * i + 0.11;
location.PolderLevelLow = 1.0 * i + 0.09;
location.ModelParametersForPlLines.DampingFactorPl4 = 1.0 * i + 0.12;
@@ -322,7 +420,7 @@
location.RedesignDikeHeight = false;
location.RedesignDikeShoulder = false;
location.ShoulderEmbankmentMaterial = "ShoulderMat" + (i + 1).ToString(); ;
- location.StabilityShoulderGrowSlope = 10.0 * i + 0.50;
+ location.StabilityShoulderGrowSlope = 10.0 * i + 0.50;
location.StabilityShoulderGrowDeltaX = 10.0 * i + 0.51;
location.StabilitySlopeAdaptionDeltaX = 10.0 * i + 0.52;
location.SlopeAdaptionStartCotangent = 10.0 * i + 0.53;
@@ -355,9 +453,9 @@
RequiredSafetyFactorPiping = 10.0 * i + 0.65,
RequiredSafetyFactorStabilityInnerSlope = 10.0 * i + 0.66,
RequiredSafetyFactorStabilityOuterSlope = 10.0 * i + 0.67,
- UpliftCriterionStability = 10.0 * i + 0.68,
+ UpliftCriterionStability = 10.0 * i + 0.68,
UpliftCriterionPiping = 10.0 * i + 0.69
- };
+ };
dike.Locations.Add(location);
}
}
@@ -452,7 +550,7 @@
{
Name = "Layer" + (j + 1).ToString(),
Soil = dike.SoilList.Soils[j]
-
+
};
if (j < 2)
{
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs
===================================================================
diff -u -r1270 -r1554
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs (.../ConversionHelper.cs) (revision 1270)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs (.../ConversionHelper.cs) (revision 1554)
@@ -1126,5 +1126,55 @@
};
return translationTable[soilType];
}
+
+ public const uint TimeStepUnitSecond = 0;
+ public const uint TimeStepUnitMinute = 1;
+ public const uint TimeStepUnitHour = 2;
+ public const uint TimeStepUnitDay = 3;
+ public const uint TimeStepUnitMonth = 4;
+ public const uint TimeStepUnitWeek = 5;
+ public const uint TimeStepUnitYear = 6;
+ public const uint TimeStepUnitNonequidistant = 7;
+
+ ///
+ /// Converts the input TimeStepUnit to the TimeStepUnit.
+ ///
+ /// The time step unit.
+ ///
+ public static TimeStepUnit ConvertToTimeStepUnit(uint timeStepUnit)
+ {
+ var translationTable = new Dictionary()
+ {
+ {TimeStepUnitSecond, TimeStepUnit.Second},
+ {TimeStepUnitMinute, TimeStepUnit.Minute},
+ {TimeStepUnitHour, TimeStepUnit.Hour},
+ {TimeStepUnitDay, TimeStepUnit.Day},
+ {TimeStepUnitMonth, TimeStepUnit.Month},
+ {TimeStepUnitWeek, TimeStepUnit.Week},
+ {TimeStepUnitYear, TimeStepUnit.Year},
+ {TimeStepUnitNonequidistant, TimeStepUnit.Nonequidistant},
+ };
+ return translationTable[timeStepUnit];
+ }
+ ///
+ /// Converts the TimeStepUnit to the input TimeStepUnit.
+ ///
+ /// The time step unit.
+ ///
+ public static uint ConvertToInputTimeStepUnit(TimeStepUnit timeStepUnit)
+ {
+ var translationTable = new Dictionary()
+ {
+ {TimeStepUnit.Second, TimeStepUnitSecond},
+ {TimeStepUnit.Minute, TimeStepUnitMinute},
+ {TimeStepUnit.Hour, TimeStepUnitHour},
+ {TimeStepUnit.Day, TimeStepUnitDay},
+ {TimeStepUnit.Month, TimeStepUnitMonth},
+ {TimeStepUnit.Week, TimeStepUnitWeek},
+ {TimeStepUnit.Year, TimeStepUnitYear},
+ {TimeStepUnit.Nonequidistant, TimeStepUnitNonequidistant},
+ };
+ return translationTable[timeStepUnit];
+ }
}
}
\ No newline at end of file
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs
===================================================================
diff -u -r1553 -r1554
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1553)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1554)
@@ -25,6 +25,7 @@
using System.Linq;
using Deltares.DamEngine.Data.Design;
using Deltares.DamEngine.Data.General;
+using Deltares.DamEngine.Data.General.TimeSeries;
using Deltares.DamEngine.Data.Geometry;
using Deltares.DamEngine.Data.Geotechnics;
using Deltares.DamEngine.Data.Standard.Logging;
@@ -35,6 +36,7 @@
using Soil = Deltares.DamEngine.Io.XmlInput.Soil;
using SoilProfile1D = Deltares.DamEngine.Data.Geotechnics.SoilProfile1D;
using SoilProfile2D = Deltares.DamEngine.Data.Geotechnics.SoilProfile2D;
+using TimeSerie = Deltares.DamEngine.Io.XmlInput.TimeSerie;
namespace Deltares.DamEngine.Interface
{
@@ -79,11 +81,62 @@
TransferSoilProfiles2D(input.SoilProfiles2D, dike.SoilProfiles2D, dike.SoilList);
TransferSegments(input.Segments, damProjectData.Segments);
TransferLocations(input.ProjectPath ,input.Locations, dike.Locations, dike.SurfaceLines2, damProjectData.Segments);
+ TransferInputTimeSeries(input.OperationalInputTimeSeries, dike);
PostProcess(damProjectData);
return damProjectData;
}
+ private static void TransferInputTimeSeries(TimeSerie[] inputOperationalInputTimeSeries, Dike dike)
+ {
+ if (inputOperationalInputTimeSeries != null)
+ {
+ dike.InputTimeSerieCollection = new TimeSerieCollection();
+ foreach (var inputTimeSerie in inputOperationalInputTimeSeries)
+ {
+ var timeSerie = dike.InputTimeSerieCollection.AddNewSeries(inputTimeSerie.LocationId);
+ timeSerie.ParameterId = inputTimeSerie.ParameterId;
+ timeSerie.ForecastDateTime = inputTimeSerie.ForecastDateTime;
+ timeSerie.Type = inputTimeSerie.Type;
+ timeSerie.StartDateTime = inputTimeSerie.StartDateTime;
+ timeSerie.EndDateTime = inputTimeSerie.EndDateTime;
+ timeSerie.MissVal = inputTimeSerie.MissVal;
+ timeSerie.LongName = inputTimeSerie.LongName;
+ timeSerie.StationName = inputTimeSerie.StationName;
+ timeSerie.Units = inputTimeSerie.Units;
+ timeSerie.SourceOrganisation = inputTimeSerie.SourceOrganisation;
+ timeSerie.SourceSystem = inputTimeSerie.SourceSystem;
+ timeSerie.FileDescription = inputTimeSerie.FileDescription;
+ timeSerie.Region = inputTimeSerie.Region;
+ timeSerie.TimeStep.Multiplier = inputTimeSerie.TimeStep.Multiplier;
+ timeSerie.TimeStep.Divider = inputTimeSerie.TimeStep.Divider;
+ timeSerie.TimeStep.MultiplierSpecified = inputTimeSerie.TimeStep.MultiplierSpecified1;
+ timeSerie.TimeStep.DividerSpecified = inputTimeSerie.TimeStep.DividerSpecified1;
+ timeSerie.TimeStep.Unit = ConversionHelper.ConvertToTimeStepUnit(inputTimeSerie.TimeStep.TimeStepUnit);
+ for (int i = 0; i < inputTimeSerie.Entries.TimeSerieEntry.Length; i++)
+ {
+ var entry = inputTimeSerie.Entries.TimeSerieEntry[i];
+ Stochast stochastValue = new Stochast()
+ {
+ Distribution = entry.StochastValue.Distribution,
+ Mean = entry.StochastValue.Mean,
+ StandardDeviation = entry.StochastValue.StandardDeviation
+ };
+ TimeSerieEntry timeSerieEntry = new TimeSerieEntry()
+ {
+ DateTime = entry.DateTime,
+ Value = entry.Value,
+ BasisFileName = entry.BasisFileNameWMF,
+ Flag = entry.Flagnietechtgebruikt,
+ RelativeCalculationPathName = entry.RelativeCalculationPathName,
+ StochastValue = stochastValue
+ };
+ timeSerie.Entries.Add(timeSerieEntry);
+ }
+ }
+ }
+ }
+
private static List TransferAquiferSoils(InputAquiferSoil[] inputAquiferSoils, SoilList soilList)
{
List validationMessages = new List();
@@ -101,7 +154,7 @@
{
// If a soil is (wrongly) in the list more than once, then prefer aquifer true.
if (aquiferSoil.IsAquifer)
- {
+ {
validationMessages.Add(new LogMessage(LogMessageType.Warning, aquiferSoil, string.Format(Resources.DoubleAquiferSoil, aquiferSoil.Soilname)));
soilList.AquiferDictionary[soil] = true;
}
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs
===================================================================
diff -u -r1405 -r1554
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1405)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1554)
@@ -24,6 +24,7 @@
using System.IO;
using System.Linq;
using Deltares.DamEngine.Data.General;
+using Deltares.DamEngine.Data.General.TimeSeries;
using Deltares.DamEngine.Data.Geotechnics;
using Deltares.DamEngine.Interface.Properties;
using Deltares.DamEngine.Io.XmlInput;
@@ -81,9 +82,68 @@
input.Segments = new Io.XmlInput.Segment[damProjectData.Segments.Count];
TransferSegments(damProjectData.Segments, input.Segments);
}
+ if (dike.InputTimeSerieCollection != null)
+ {
+ input.OperationalInputTimeSeries = new Io.XmlInput.TimeSerie[dike.InputTimeSerieCollection.Series.Count];
+ TransferInputTimeSeries(dike.InputTimeSerieCollection, input.OperationalInputTimeSeries);
+ }
return input;
}
+ private static void TransferInputTimeSeries(TimeSerieCollection inputTimeSerieCollection, Io.XmlInput.TimeSerie[] operationalInputTimeSeries)
+ {
+ int timeSerieIndex = 0;
+ foreach (var timeSerie in inputTimeSerieCollection.Series)
+ {
+ Io.XmlInput.TimeSerie inputTimeSerie = new Io.XmlInput.TimeSerie();
+ inputTimeSerie.Entries = new TimeSerieEntries();
+ inputTimeSerie.Entries.TimeSerieEntry = new TimeSerieEntriesTimeSerieEntry[timeSerie.Entries.Count];
+ inputTimeSerie.TimeStep = new TimeSerieTimeStep();
+ inputTimeSerie.LocationId = timeSerie.LocationId;
+ inputTimeSerie.ParameterId = timeSerie.ParameterId;
+ inputTimeSerie.ForecastDateTime = timeSerie.ForecastDateTime;
+ inputTimeSerie.Type = timeSerie.Type;
+ inputTimeSerie.StartDateTime = timeSerie.StartDateTime;
+ inputTimeSerie.EndDateTime = timeSerie.EndDateTime;
+ inputTimeSerie.MissVal = timeSerie.MissVal;
+ inputTimeSerie.LongName = timeSerie.LongName;
+ inputTimeSerie.StationName = timeSerie.StationName;
+ inputTimeSerie.Units = timeSerie.Units;
+ inputTimeSerie.SourceOrganisation = timeSerie.SourceOrganisation;
+ inputTimeSerie.SourceSystem = timeSerie.SourceSystem;
+ inputTimeSerie.FileDescription = timeSerie.FileDescription;
+ inputTimeSerie.Region = timeSerie.Region;
+ inputTimeSerie.TimeStep.Multiplier = timeSerie.TimeStep.Multiplier;
+ inputTimeSerie.TimeStep.Divider = timeSerie.TimeStep.Divider;
+ inputTimeSerie.TimeStep.MultiplierSpecified1 = timeSerie.TimeStep.MultiplierSpecified;
+ inputTimeSerie.TimeStep.DividerSpecified1 = timeSerie.TimeStep.DividerSpecified;
+ inputTimeSerie.TimeStep.TimeStepUnit = ConversionHelper.ConvertToInputTimeStepUnit(timeSerie.TimeStep.Unit);
+ int timeSerieEntryIndex = 0;
+ foreach (var timestepEntry in timeSerie.Entries)
+ {
+ TimeSerieEntriesTimeSerieEntryStochastValue stochastValue = new TimeSerieEntriesTimeSerieEntryStochastValue()
+ {
+ Distribution = timestepEntry.StochastValue.Distribution,
+ Mean = timestepEntry.StochastValue.Mean,
+ StandardDeviation = timestepEntry.StochastValue.StandardDeviation
+ };
+ TimeSerieEntriesTimeSerieEntry timeStep = new TimeSerieEntriesTimeSerieEntry()
+ {
+ DateTime = timestepEntry.DateTime,
+ Value = timestepEntry.Value,
+ BasisFileNameWMF = timestepEntry.BasisFileName,
+ Flagnietechtgebruikt = timestepEntry.Flag,
+ RelativeCalculationPathName = timestepEntry.RelativeCalculationPathName,
+ StochastValue = stochastValue
+ };
+ inputTimeSerie.Entries.TimeSerieEntry[timeSerieEntryIndex] = timeStep;
+ timeSerieEntryIndex++;
+ }
+ operationalInputTimeSeries[timeSerieIndex] = inputTimeSerie;
+ timeSerieIndex++;
+ }
+ }
+
private static void TransferAquiferSoils(Dictionary aquiferDictionary, Input input)
{
InputAquiferSoil[] aquiferSoils;
Index: DamEngine/trunk/src/Deltares.DamEngine.Io/DamOutput.cs
===================================================================
diff -u -r1175 -r1554
--- DamEngine/trunk/src/Deltares.DamEngine.Io/DamOutput.cs (.../DamOutput.cs) (revision 1175)
+++ DamEngine/trunk/src/Deltares.DamEngine.Io/DamOutput.cs (.../DamOutput.cs) (revision 1554)
@@ -443,7 +443,7 @@
private bool multiplierSpecified1Field;
- private TimeSerieTimeStepTimeStepUnit timeStepUnitField;
+ private uint timeStepUnitField;
///
[System.Xml.Serialization.XmlAttributeAttribute()]
@@ -491,7 +491,7 @@
///
[System.Xml.Serialization.XmlAttributeAttribute()]
- public TimeSerieTimeStepTimeStepUnit TimeStepUnit {
+ public uint TimeStepUnit {
get {
return this.timeStepUnitField;
}
@@ -504,37 +504,6 @@
///
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
- [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
- public enum TimeSerieTimeStepTimeStepUnit {
-
- ///
- Second,
-
- ///
- Minute,
-
- ///
- Hour,
-
- ///
- Day,
-
- ///
- Week,
-
- ///
- Month,
-
- ///
- Year,
-
- ///
- Nonequidistant,
- }
-
- ///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class Message {
Index: DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs
===================================================================
diff -u -r1405 -r1554
--- DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 1405)
+++ DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 1554)
@@ -39,6 +39,8 @@
private InputAquiferSoil[] aquiferSoilsField;
+ private TimeSerie[] operationalInputTimeSeriesField;
+
private InputDamProjectType damProjectTypeField;
private int failureMechanismSystemTypeField;
@@ -152,6 +154,17 @@
}
///
+ [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
+ public TimeSerie[] OperationalInputTimeSeries {
+ get {
+ return this.operationalInputTimeSeriesField;
+ }
+ set {
+ this.operationalInputTimeSeriesField = value;
+ }
+ }
+
+ ///
[System.Xml.Serialization.XmlAttributeAttribute()]
public InputDamProjectType DamProjectType {
get {
@@ -598,6 +611,489 @@
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class TimeSerie {
+
+ private TimeSerieTimeStep timeStepField;
+
+ private TimeSerieEntries entriesField;
+
+ private System.DateTime forecastDateTimeField;
+
+ private string typeField;
+
+ private string locationIdField;
+
+ private string parameterIdField;
+
+ private System.DateTime startDateTimeField;
+
+ private System.DateTime endDateTimeField;
+
+ private double missValField;
+
+ private string longNameField;
+
+ private string stationNameField;
+
+ private string unitsField;
+
+ private string sourceOrganisationField;
+
+ private string sourceSystemField;
+
+ private string fileDescriptionField;
+
+ private string regionField;
+
+ private string commentField;
+
+ private System.DateTime creationDateTimeField;
+
+ private bool creationDateTimeFieldSpecified;
+
+ ///
+ public TimeSerieTimeStep TimeStep {
+ get {
+ return this.timeStepField;
+ }
+ set {
+ this.timeStepField = value;
+ }
+ }
+
+ ///
+ public TimeSerieEntries Entries {
+ get {
+ return this.entriesField;
+ }
+ set {
+ this.entriesField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime ForecastDateTime {
+ get {
+ return this.forecastDateTimeField;
+ }
+ set {
+ this.forecastDateTimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string Type {
+ get {
+ return this.typeField;
+ }
+ set {
+ this.typeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string LocationId {
+ get {
+ return this.locationIdField;
+ }
+ set {
+ this.locationIdField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string ParameterId {
+ get {
+ return this.parameterIdField;
+ }
+ set {
+ this.parameterIdField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime StartDateTime {
+ get {
+ return this.startDateTimeField;
+ }
+ set {
+ this.startDateTimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime EndDateTime {
+ get {
+ return this.endDateTimeField;
+ }
+ set {
+ this.endDateTimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double MissVal {
+ get {
+ return this.missValField;
+ }
+ set {
+ this.missValField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string LongName {
+ get {
+ return this.longNameField;
+ }
+ set {
+ this.longNameField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string StationName {
+ get {
+ return this.stationNameField;
+ }
+ set {
+ this.stationNameField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string Units {
+ get {
+ return this.unitsField;
+ }
+ set {
+ this.unitsField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string SourceOrganisation {
+ get {
+ return this.sourceOrganisationField;
+ }
+ set {
+ this.sourceOrganisationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string SourceSystem {
+ get {
+ return this.sourceSystemField;
+ }
+ set {
+ this.sourceSystemField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string FileDescription {
+ get {
+ return this.fileDescriptionField;
+ }
+ set {
+ this.fileDescriptionField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string Region {
+ get {
+ return this.regionField;
+ }
+ set {
+ this.regionField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string Comment {
+ get {
+ return this.commentField;
+ }
+ set {
+ this.commentField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime CreationDateTime {
+ get {
+ return this.creationDateTimeField;
+ }
+ set {
+ this.creationDateTimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool CreationDateTimeSpecified {
+ get {
+ return this.creationDateTimeFieldSpecified;
+ }
+ set {
+ this.creationDateTimeFieldSpecified = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
+ public partial class TimeSerieTimeStep {
+
+ private uint dividerField;
+
+ private uint multiplierField;
+
+ private bool dividerSpecified1Field;
+
+ private bool multiplierSpecified1Field;
+
+ private uint timeStepUnitField;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint Divider {
+ get {
+ return this.dividerField;
+ }
+ set {
+ this.dividerField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint Multiplier {
+ get {
+ return this.multiplierField;
+ }
+ set {
+ this.multiplierField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("DividerSpecified")]
+ public bool DividerSpecified1 {
+ get {
+ return this.dividerSpecified1Field;
+ }
+ set {
+ this.dividerSpecified1Field = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("MultiplierSpecified")]
+ public bool MultiplierSpecified1 {
+ get {
+ return this.multiplierSpecified1Field;
+ }
+ set {
+ this.multiplierSpecified1Field = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint TimeStepUnit {
+ get {
+ return this.timeStepUnitField;
+ }
+ set {
+ this.timeStepUnitField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
+ public partial class TimeSerieEntries {
+
+ private TimeSerieEntriesTimeSerieEntry[] timeSerieEntryField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("TimeSerieEntry")]
+ public TimeSerieEntriesTimeSerieEntry[] TimeSerieEntry {
+ get {
+ return this.timeSerieEntryField;
+ }
+ set {
+ this.timeSerieEntryField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
+ public partial class TimeSerieEntriesTimeSerieEntry {
+
+ private TimeSerieEntriesTimeSerieEntryStochastValue stochastValueField;
+
+ private System.DateTime dateTimeField;
+
+ private double valueField;
+
+ private int flagnietechtgebruiktField;
+
+ private string basisFileNameWMFField;
+
+ private string relativeCalculationPathNameField;
+
+ ///
+ public TimeSerieEntriesTimeSerieEntryStochastValue StochastValue {
+ get {
+ return this.stochastValueField;
+ }
+ set {
+ this.stochastValueField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime DateTime {
+ get {
+ return this.dateTimeField;
+ }
+ set {
+ this.dateTimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double Value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("Flag-nietechtgebruikt")]
+ public int Flagnietechtgebruikt {
+ get {
+ return this.flagnietechtgebruiktField;
+ }
+ set {
+ this.flagnietechtgebruiktField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string BasisFileNameWMF {
+ get {
+ return this.basisFileNameWMFField;
+ }
+ set {
+ this.basisFileNameWMFField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string RelativeCalculationPathName {
+ get {
+ return this.relativeCalculationPathNameField;
+ }
+ set {
+ this.relativeCalculationPathNameField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
+ public partial class TimeSerieEntriesTimeSerieEntryStochastValue {
+
+ private double meanField;
+
+ private double standardDeviationField;
+
+ private int distributionField;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double Mean {
+ get {
+ return this.meanField;
+ }
+ set {
+ this.meanField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double StandardDeviation {
+ get {
+ return this.standardDeviationField;
+ }
+ set {
+ this.standardDeviationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public int Distribution {
+ get {
+ return this.distributionField;
+ }
+ set {
+ this.distributionField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class StabilityParameters {
private int searchMethodField;
Index: DamEngine/trunk/xsd/DamTimeSerie.xsd
===================================================================
diff -u -r972 -r1554
--- DamEngine/trunk/xsd/DamTimeSerie.xsd (.../DamTimeSerie.xsd) (revision 972)
+++ DamEngine/trunk/xsd/DamTimeSerie.xsd (.../DamTimeSerie.xsd) (revision 1554)
@@ -11,7 +11,7 @@
-
+
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs
===================================================================
diff -u -r1232 -r1554
--- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 1232)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 1554)
@@ -594,5 +594,33 @@
{
Assert.AreEqual(stabilityModelType, ConversionHelper.ConvertToStabilityModelType(outputStabilityModelType));
}
+ [Test]
+ [TestCase(ConversionHelper.TimeStepUnitSecond, TimeStepUnit.Second)]
+ [TestCase(ConversionHelper.TimeStepUnitMinute, TimeStepUnit.Minute)]
+ [TestCase(ConversionHelper.TimeStepUnitHour, TimeStepUnit.Hour)]
+ [TestCase(ConversionHelper.TimeStepUnitDay, TimeStepUnit.Day)]
+ [TestCase(ConversionHelper.TimeStepUnitMonth, TimeStepUnit.Month)]
+ [TestCase(ConversionHelper.TimeStepUnitWeek, TimeStepUnit.Week)]
+ [TestCase(ConversionHelper.TimeStepUnitYear, TimeStepUnit.Year)]
+ [TestCase(ConversionHelper.TimeStepUnitNonequidistant, TimeStepUnit.Nonequidistant)]
+ public void CanConvertToTimeStepUnit(uint inputTimeStepUnit, TimeStepUnit timeStepUnit)
+ {
+ Assert.AreEqual(timeStepUnit, ConversionHelper.ConvertToTimeStepUnit(inputTimeStepUnit));
+ }
+
+ [Test]
+ [TestCase(TimeStepUnit.Second, ConversionHelper.TimeStepUnitSecond)]
+ [TestCase(TimeStepUnit.Minute, ConversionHelper.TimeStepUnitMinute)]
+ [TestCase(TimeStepUnit.Hour, ConversionHelper.TimeStepUnitHour)]
+ [TestCase(TimeStepUnit.Day, ConversionHelper.TimeStepUnitDay)]
+ [TestCase(TimeStepUnit.Month, ConversionHelper.TimeStepUnitMonth)]
+ [TestCase(TimeStepUnit.Week, ConversionHelper.TimeStepUnitWeek)]
+ [TestCase(TimeStepUnit.Year, ConversionHelper.TimeStepUnitYear)]
+ [TestCase(TimeStepUnit.Nonequidistant, ConversionHelper.TimeStepUnitNonequidistant)]
+ public void CanConvertToInputTimeStepUnit(TimeStepUnit timeStepUnit, uint inputTimeStepUnit)
+ {
+ Assert.AreEqual(inputTimeStepUnit, ConversionHelper.ConvertToInputTimeStepUnit(timeStepUnit));
+ }
+
}
}
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/Deltares.DamEngine.Interface.Tests.csproj
===================================================================
diff -u -r1536 -r1554
--- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/Deltares.DamEngine.Interface.Tests.csproj (.../Deltares.DamEngine.Interface.Tests.csproj) (revision 1536)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/Deltares.DamEngine.Interface.Tests.csproj (.../Deltares.DamEngine.Interface.Tests.csproj) (revision 1554)
@@ -56,10 +56,6 @@
-
- {E943B1D5-FAFA-4AFE-9071-F8B22CF612EA}
- Deltares.DamEngine.Calculators
-
{b7a49c1a-1c91-4d72-aba9-9fbac2509d8e}
Deltares.DamEngine.Data
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/General/Dike.cs
===================================================================
diff -u -r1122 -r1554
--- DamEngine/trunk/src/Deltares.DamEngine.Data/General/Dike.cs (.../Dike.cs) (revision 1122)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/General/Dike.cs (.../Dike.cs) (revision 1554)
@@ -26,6 +26,7 @@
using Deltares.DamEngine.Data.Design;
using Deltares.DamEngine.Data.General.Gauges;
using Deltares.DamEngine.Data.General.PlLines;
+using Deltares.DamEngine.Data.General.TimeSeries;
using Deltares.DamEngine.Data.Geotechnics;
using Deltares.DamEngine.Data.Standard;
using Deltares.DamEngine.Data.Standard.Language;
@@ -78,6 +79,8 @@
private IList soilProfiles;
private IList soilProfiles2D;
private List databaseSoils = new List();
+ private TimeSerieCollection inputTimeSerieCollection = null;
+ private TimeSerieCollection outputTimeSerieCollection = null;
///
/// Initializes a new instance of the class.
@@ -203,6 +206,42 @@
set { description = value; }
}
+ ///
+ /// Gets or sets the input time serie collection.
+ ///
+ ///
+ /// Input time series for operational use
+ ///
+ public TimeSerieCollection InputTimeSerieCollection
+ {
+ get
+ {
+ return inputTimeSerieCollection;
+ }
+ set
+ {
+ inputTimeSerieCollection = value;
+ }
+ }
+
+ ///
+ /// Gets or sets the output time serie collection.
+ ///
+ ///
+ /// Output time series for operational use
+ ///
+ public TimeSerieCollection OutputTimeSerieCollection
+ {
+ get
+ {
+ return outputTimeSerieCollection;
+ }
+ set
+ {
+ outputTimeSerieCollection = value;
+ }
+ }
+
public void Validate()
{
if (Locations == null || Locations.Count < 1)