Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs =================================================================== diff -u -r1221 -r1565 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs (.../FillDamFromXmlOutput.cs) (revision 1221) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs (.../FillDamFromXmlOutput.cs) (revision 1565) @@ -23,13 +23,15 @@ using System.Linq; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Data.General.Results; +using Deltares.DamEngine.Data.General.TimeSeries; using Deltares.DamEngine.Data.Geometry; using Deltares.DamEngine.Data.Geotechnics; using Deltares.DamEngine.Data.RegionalAssessmentResults; using Deltares.DamEngine.Data.Standard; using Deltares.DamEngine.Data.Standard.Logging; using Deltares.DamEngine.Io.XmlOutput; using DesignResult = Deltares.DamEngine.Io.XmlOutput.DesignResult; +using TimeSerie = Deltares.DamEngine.Io.XmlOutput.TimeSerie; namespace Deltares.DamEngine.Interface { @@ -62,9 +64,64 @@ CreateLocationResultsOutput(output, damProjectData); } } + if (output.Results.OperationalOuputTimeSeries != null) + { + damProjectData.OutputTimeSerieCollection = new TimeSerieCollection(); + TransferOutputTimeSeries(output.Results.OperationalOuputTimeSeries, damProjectData.OutputTimeSerieCollection); + } return damProjectData; } + private static void TransferOutputTimeSeries(TimeSerie[] outputTimeSeries, TimeSerieCollection outputTimeSerieCollection) + { + foreach (var outputTimeSerie in outputTimeSeries) + { + var timeSerie = outputTimeSerieCollection.AddNewSeries(outputTimeSerie.LocationId); + timeSerie.ParameterId = outputTimeSerie.ParameterId; + timeSerie.ForecastDateTime = outputTimeSerie.ForecastDateTime; + timeSerie.Type = outputTimeSerie.Type; + timeSerie.StartDateTime = outputTimeSerie.StartDateTime; + timeSerie.EndDateTime = outputTimeSerie.EndDateTime; + timeSerie.MissVal = outputTimeSerie.MissVal; + timeSerie.LongName = outputTimeSerie.LongName; + timeSerie.StationName = outputTimeSerie.StationName; + timeSerie.Units = outputTimeSerie.Units; + timeSerie.SourceOrganisation = outputTimeSerie.SourceOrganisation; + timeSerie.SourceSystem = outputTimeSerie.SourceSystem; + timeSerie.FileDescription = outputTimeSerie.FileDescription; + timeSerie.Region = outputTimeSerie.Region; + timeSerie.TimeStep.Multiplier = outputTimeSerie.TimeStep.Multiplier; + timeSerie.TimeStep.Divider = outputTimeSerie.TimeStep.Divider; + timeSerie.TimeStep.MultiplierSpecified = outputTimeSerie.TimeStep.MultiplierSpecified1; + timeSerie.TimeStep.DividerSpecified = outputTimeSerie.TimeStep.DividerSpecified1; + timeSerie.TimeStep.Unit = ConversionHelper.ConvertToTimeStepUnit(outputTimeSerie.TimeStep.TimeStepUnit); + for (int i = 0; i < outputTimeSerie.Entries.TimeSerieEntry.Length; i++) + { + var entry = outputTimeSerie.Entries.TimeSerieEntry[i]; + Stochast stochastValue = null; + if (entry.StochastValue != null) + { + 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 void CreateDesignResultsOutput(Output output, DamProjectData damProjectData) { // Design results Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs =================================================================== diff -u -r1388 -r1565 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs (.../FillXmlOutputFromDam.cs) (revision 1388) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs (.../FillXmlOutputFromDam.cs) (revision 1565) @@ -20,8 +20,9 @@ // All rights reserved. using Deltares.DamEngine.Data.General; -using Deltares.DamEngine.Data.Standard.Logging; +using Deltares.DamEngine.Data.General.TimeSeries; using Deltares.DamEngine.Io.XmlOutput; +using TimeSerie = Deltares.DamEngine.Io.XmlOutput.TimeSerie; namespace Deltares.DamEngine.Interface { @@ -345,6 +346,69 @@ jobtel++; } } + if (damProjectData.OutputTimeSerieCollection != null) + { + output.Results.OperationalOuputTimeSeries = new TimeSerie[damProjectData.OutputTimeSerieCollection.Series.Count]; + TransferOutputTimeSeries(damProjectData.OutputTimeSerieCollection, output.Results.OperationalOuputTimeSeries); + } } + + private static void TransferOutputTimeSeries(TimeSerieCollection outputTimeSerieCollection, TimeSerie[] outputTimeSeries) + { + int timeSerieIndex = 0; + foreach (var damTimeSerie in outputTimeSerieCollection.Series) + { + TimeSerie outputTimeSerie = new TimeSerie(); + outputTimeSerie.Entries = new TimeSerieEntries(); + outputTimeSerie.Entries.TimeSerieEntry = new TimeSerieEntriesTimeSerieEntry[damTimeSerie.Entries.Count]; + outputTimeSerie.TimeStep = new TimeSerieTimeStep(); + outputTimeSerie.LocationId = damTimeSerie.LocationId; + outputTimeSerie.ParameterId = damTimeSerie.ParameterId; + outputTimeSerie.ForecastDateTime = damTimeSerie.ForecastDateTime; + outputTimeSerie.Type = damTimeSerie.Type; + outputTimeSerie.StartDateTime = damTimeSerie.StartDateTime; + outputTimeSerie.EndDateTime = damTimeSerie.EndDateTime; + outputTimeSerie.MissVal = damTimeSerie.MissVal; + outputTimeSerie.LongName = damTimeSerie.LongName; + outputTimeSerie.StationName = damTimeSerie.StationName; + outputTimeSerie.Units = damTimeSerie.Units; + outputTimeSerie.SourceOrganisation = damTimeSerie.SourceOrganisation; + outputTimeSerie.SourceSystem = damTimeSerie.SourceSystem; + outputTimeSerie.FileDescription = damTimeSerie.FileDescription; + outputTimeSerie.Region = damTimeSerie.Region; + outputTimeSerie.TimeStep.Multiplier = damTimeSerie.TimeStep.Multiplier; + outputTimeSerie.TimeStep.Divider = damTimeSerie.TimeStep.Divider; + outputTimeSerie.TimeStep.MultiplierSpecified1 = damTimeSerie.TimeStep.MultiplierSpecified; + outputTimeSerie.TimeStep.DividerSpecified1 = damTimeSerie.TimeStep.DividerSpecified; + outputTimeSerie.TimeStep.TimeStepUnit = ConversionHelper.ConvertToInputTimeStepUnit(damTimeSerie.TimeStep.Unit); + int timeSerieEntryIndex = 0; + foreach (var timestepEntry in damTimeSerie.Entries) + { + TimeSerieEntriesTimeSerieEntryStochastValue stochastValue = null; + if (timestepEntry.StochastValue != null) + { + 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 + }; + outputTimeSerie.Entries.TimeSerieEntry[timeSerieEntryIndex] = timeStep; + timeSerieEntryIndex++; + } + outputTimeSeries[timeSerieIndex] = outputTimeSerie; + timeSerieIndex++; + } + } } } Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs =================================================================== diff -u -r1564 -r1565 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1564) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1565) @@ -117,12 +117,16 @@ for (int i = 0; i < inputTimeSerie.Entries.TimeSerieEntry.Length; i++) { var entry = inputTimeSerie.Entries.TimeSerieEntry[i]; - Stochast stochastValue = new Stochast() + Stochast stochastValue = null; + if (entry.StochastValue != null) { - Distribution = entry.StochastValue.Distribution, - Mean = entry.StochastValue.Mean, - StandardDeviation = entry.StochastValue.StandardDeviation - }; + stochastValue = new Stochast() + { + Distribution = entry.StochastValue.Distribution, + Mean = entry.StochastValue.Mean, + StandardDeviation = entry.StochastValue.StandardDeviation + }; + } TimeSerieEntry timeSerieEntry = new TimeSerieEntry() { DateTime = entry.DateTime, Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs =================================================================== diff -u -r1563 -r1565 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1563) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1565) @@ -121,26 +121,30 @@ int timeSerieEntryIndex = 0; foreach (var timestepEntry in timeSerie.Entries) { - TimeSerieEntriesTimeSerieEntryStochastValue stochastValue = new TimeSerieEntriesTimeSerieEntryStochastValue() + TimeSerieEntriesTimeSerieEntryStochastValue stochastValue = null; + if (timestepEntry.StochastValue != null) { - 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++; + 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++; } - operationalInputTimeSeries[timeSerieIndex] = inputTimeSerie; - timeSerieIndex++; } } @@ -153,7 +157,7 @@ int soilIndex = 0; foreach (KeyValuePair keyValuePair in aquiferDictionary) { - aquiferSoils[soilIndex] = new InputAquiferSoil() {Soilname = keyValuePair.Key.Name, IsAquifer = keyValuePair.Value}; + aquiferSoils[soilIndex] = new InputAquiferSoil() { Soilname = keyValuePair.Key.Name, IsAquifer = keyValuePair.Value }; soilIndex++; } }