/// <summary> /// обработать ряд и получить характеристики по всему ряду /// </summary> /// <param name="range"></param> /// <param name="totalRange"></param> /// <returns></returns> public static EnergyInfo ProcessRange(RawRange range, RawRange totalRange = null) { double density = range.AirDensity; totalRange = totalRange ?? range; if (range.Count == 0) { return(null); } EnergyInfo res = new EnergyInfo(); res.FromDate = range[0].Date; res.ToDate = range.Last().Date; res.PowerDensity = getAveragePower(range, density); res.V0 = getAverageSpeed(range); res.StandardDeviationSpeed = getSigmV(res.V0, range); res.Vmax = getMaxSpeed(range); res.Vmin = getMinSpeed(range); res.EnergyDensity = res.PowerDensity * 8760d; res.Cv = res.StandardDeviationSpeed / res.V0; res.VeybullGamma = getVeybullGamma(res.Cv); res.VeybullBeta = getVeybullBeta(res.V0, res.VeybullGamma); res.ExtremalSpeed = getExtremalSpeed(res.V0, res.VeybullGamma); res.ExpectancyDeviation = getExpectancyDeviation(range, totalRange); return(res); }
private void buttonOpenRange_Click(object sender, EventArgs e) { RawRange tempr = range.GetRange( radioButtonSelectPeriod.Checked, radioButtonSelectYearMonth.Checked, dateTimePickerFrom.Value, dateTimePickerTo.Value, comboBoxYear.SelectedItem, comboBoxMonth.SelectedItem ); if (tempr == null) { throw new Exception("что-то совсем не так!!"); } tempr.Name = range.Name + $" {tempr.First().Date:dd.MM.yyyy} - {tempr.Last().Date:dd.MM.yyyy}"; _ = Program.winMain.mainTabControl.OpenNewTab(tempr, tempr.Name).Focus(); Close(); }