internal void CheckZeroArrays(string Name, HowLeakyOutputs outputs) { foreach (var output in outputs.TimeSeries) { if (Math.Abs((double)output.DailyValues.Where(x => x != null).Sum()) < 0.000001) { AddErrorOutput($"WARNING!! Timeseries is empty ({Name} - {output.OutputDefn.Name})"); } } }
static public List <TimeSeriesViewModel> ReadOutputs(string path) { try { if (File.Exists(path)) { var list = new List <TimeSeriesViewModel>(); using (FileStream fileStream = new FileStream(path, FileMode.Open)) // destiny file directory. { using (BinaryReader binaryReader = new BinaryReader(fileStream)) { binaryReader.BaseStream.Position = 0; var simindex = binaryReader.ReadInt32(); var timeseriescount = binaryReader.ReadInt32(); var start = new BrowserDate(binaryReader.ReadInt32()); var end = new BrowserDate(binaryReader.ReadInt32()); var datacount = end.DateInt - start.DateInt + 1; var outputs = new HowLeakyOutputs(start, end); var timeserieslist = outputs.TimeSeries; for (var index1 = 0; index1 < timeseriescount; ++index1) { var name = binaryReader.ReadString(); var vm = new TimeSeriesViewModel(simindex, name, start, end); for (var i = 0; i < datacount; ++i) { vm.Values[i] = binaryReader.ReadDouble(); } list.Add(vm); } } } return(list); } } catch (Exception ex) { throw ErrorLogger.CreateException(ex); } return(new List <TimeSeriesViewModel>()); }
public void InitialiseOutputObject() { try { Outputs = new HowLeakyOutputs(StartDate, EndDate); foreach (var outputtype in Definitions.Where(x => x.IsActive()).ToList()) { foreach (var action in outputtype.Actions) { Outputs.TimeSeries.Add(new HowLeakyOutputTimeseriesActive(outputtype, StartDate, EndDate)); } } if (IncludeWaterBalanceSummary) { WaterBalanceSummary = new HowLeakyOutputSummary_WaterBalance(); } } catch (Exception ex) { throw ErrorLogger.CreateException(ex); } }
static public bool WriteOutputs(string path, Simulation sim, HowLeakyOutputs outputs) { try { if (Directory.Exists(path)) { var filename = sim.GenerateBinaryPathName(); using (FileStream fileStream = new FileStream(filename, FileMode.Create)) // destiny file directory. { using (BinaryWriter binaryWriter = new BinaryWriter(fileStream)) { binaryWriter.Write(sim.Index); binaryWriter.Write(outputs.TimeSeries.Count); binaryWriter.Write(outputs.StartDate.DateInt); binaryWriter.Write(outputs.EndDate.DateInt); foreach (var output in outputs.TimeSeries) { binaryWriter.Write(output.OutputDefn.Name); foreach (var data in output.DailyValues) { binaryWriter.Write(data.Value); } } } } return(true); } } catch (Exception ex) { throw ErrorLogger.CreateException(ex); } return(false); }