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();
        }
Ejemplo n.º 6
0
        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);
        }