public string EnsureFolderExists(TestSeries testSeries) { string folder = GetLdFolderPath(testSeries.LiftToDragCoefficient); EnsureFolderExists(folder); folder += testSeries.EntryAngle.ToString(CultureInfo.InvariantCulture) + "\\"; EnsureFolderExists(folder); folder += testSeries.EntrySpeed + "\\"; EnsureFolderExists(folder); return(folder); }
public PlotModel PrepareGChart(TestSeries testSeries) { var bottom = new LinearAxis { Position = AxisPosition.Bottom, Title = "Zeit (s)", Minimum = 0, Maximum = testSeries.LastTimeStamp }; var left = new LinearAxis { Position = AxisPosition.Left, Title = "Beschleunigung (g)", Minimum = 0, Maximum = 70 }; var xAxis = testSeries.EnumerateTimeValues(); var yAxis = testSeries.Acceleration.EnumerateAll(); var dataPoints = CreateDataPoints(xAxis, yAxis); return(PrepareLineChart("Atmosphärendruck", dataPoints, bottom, left, OxyColor.FromArgb(0xff, 0x00, 0x70, 0xff))); }
public PlotModel PrepareTrajectoryDiagram(TestSeries testSeries) { var bottom = new LinearAxis { Position = AxisPosition.Bottom, Title = "Horizontale Distanz (km)", Minimum = 0, Maximum = 1000 }; var left = new LinearAxis { Position = AxisPosition.Left, Title = "Höhe (km)", Minimum = 0, Maximum = 125 }; var xAxis = testSeries.Position.EnumerateOdd().Select(s => s / 1000); var yAxis = testSeries.Position.EnumerateEven().Select(s => s / 1000); var dataPoints = CreateDataPoints(xAxis, yAxis); return(PrepareLineChart("Trajektor", dataPoints, bottom, left, OxyColor.FromArgb(0xff, 0x00, 0x70, 0xff))); }
public PlotModel PrepareSpeedHeightDiagram(TestSeries testSeries) { var bottom = new LinearAxis { Position = AxisPosition.Bottom, Title = "Geschwindigkeit (km/s)", Minimum = 0, Maximum = 8.0 }; var left = new LinearAxis { Position = AxisPosition.Left, Title = "Höhe (km)", Minimum = 0, Maximum = 150 }; var xAxis = testSeries.AirSpeed.EnumerateAll().Select(s => s / 1000); var yAxis = testSeries.Position.EnumerateEven().Select(s => s / 1000); var dataPoints = CreateDataPoints(xAxis, yAxis); return(PrepareLineChart("Höhe/Geschwindigkeit", dataPoints, bottom, left, OxyColor.FromArgb(0xff, 0x00, 0x70, 0xff))); }
private void UpdateSelectedSeries() { double delta = 0.00001; var series = TestSeries.SingleOrDefault( s => Math.Abs(s.LiftToDragCoefficient - SelectedLD) < delta && Math.Abs(s.EntryAngle - SelectedAngle) < delta && s.EntrySpeed == SelectedSpeed); if (series != null) { CurrentSeries = series; } UpdateModels(); }
private TestSeries ParseSeriesFolder(string seriesPath) { string[] parts = seriesPath.Split('\\'); double ldRatio = double.Parse(parts[parts.Length - 3], CultureInfo.InvariantCulture); double angle = double.Parse(parts[parts.Length - 2], CultureInfo.InvariantCulture); int speed = int.Parse(parts[parts.Length - 1], CultureInfo.InvariantCulture); TestSeries series = new TestSeries(ldRatio, angle, speed, 0.5); series.MachSpeed = ParseData(seriesPath + "\\" + "machSpeed.out"); series.Speed = ParseData(seriesPath + "\\" + "speed.out", true); series.AirSpeed = ParseData(seriesPath + "\\" + "airSpeed.out"); series.Temperature = ParseData(seriesPath + "\\" + "temperature.out"); series.Position = ParseData(seriesPath + "\\" + "position.out", true); series.Acceleration = ParseData(seriesPath + "\\" + "acceleration.out"); series.Density = ParseData(seriesPath + "\\" + "density.out"); series.Throttle = ParseData(seriesPath + "\\" + "throttle.out"); series.Thrust = ParseData(seriesPath + "\\" + "thrust.out"); series.Fuel = ParseData(seriesPath + "\\" + "fuel.out"); return(series); }