Esempio n. 1
0
 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})");
         }
     }
 }
Esempio n. 2
0
        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>());
        }
Esempio n. 3
0
 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);
     }
 }
Esempio n. 4
0
        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);
        }