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) {