示例#1
0
        /// <summary>
        /// Calculates the densities for the dataset
        /// </summary>
        /// <param name="dataset">The dataset to calculate from</param>
        /// <returns>The list of densities</returns>
        public static IEnumerable<DensitySeries> CalculateDensity(Dataset dataset)
        {
            var densitySeries = new List<DensitySeries>();

            foreach (var sensor in dataset.Sensors.Where(x => x.SensorType == "Water_Temperature"))
            {
                var series = new DensitySeries(sensor.Elevation);
                foreach (var value in sensor.CurrentState.Values)
                {
                    var density = (1 - (((value.Value + 288.9414) / (508929.2 * (value.Value + 68.12963))) *
                                    Math.Pow((value.Value - 3.9863), 2))) * 1000;
                    series.AddValue(value.Key, density);
                }
                densitySeries.Add(series);
            }

            return densitySeries.ToArray();
        }
示例#2
0
        /// <summary>
        /// Calculates the densities for the dataset
        /// </summary>
        /// <param name="dataset">The dataset to calculate from</param>
        /// <returns>The list of densities</returns>
        public static IEnumerable <DensitySeries> CalculateDensity(Dataset dataset)
        {
            var densitySeries = new List <DensitySeries>();

            foreach (var sensor in dataset.Sensors.Where(x => x.SensorType == "Water_Temperature"))
            {
                var series = new DensitySeries(sensor.Elevation);
                foreach (var value in sensor.CurrentState.Values)
                {
                    var density = (1 - (((value.Value + 288.9414) / (508929.2 * (value.Value + 68.12963))) *
                                        Math.Pow((value.Value - 3.9863), 2))) * 1000;
                    series.AddValue(value.Key, density);
                }
                densitySeries.Add(series);
            }

            return(densitySeries.ToArray());
        }
示例#3
0
        private static Dictionary<DateTime, Dictionary<float, double>> GenerateDensityColumns(DensitySeries[] densities)
        {
            var densityColumns = new Dictionary<DateTime, Dictionary<float, double>>();

            var timestamps = densities.SelectMany(x => x.Density.Keys).Distinct().OrderBy(x => x).ToArray();

            foreach (var timestamp in timestamps)
            {
                var column = new Dictionary<float, double>();
                var t = timestamp;
                foreach (var series in densities.Where(x => x.Density.ContainsKey(t)))
                {
                    column[series.Depth] = series.Density[timestamp];
                }
                densityColumns[timestamp] = column;
            }

            return densityColumns;
        }