Commit 872c3bf2 authored by Francesco Carraro's avatar Francesco Carraro
Browse files

fixed alignment, added legend

parent bd73d4b3
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -41,8 +41,6 @@ namespace INAF.Apps.Uwp.Charts
                SelectedChartZoomMode = ChartPanZoomMode.Both;
        }

        public string Filename { get; set; }

        #region MajorLinesVisibility
        private List<GridLineVisibility> majorLinesVisibilityValues;
        public List<GridLineVisibility> MajorLinesVisibilityValues
+49 −26
Original line number Diff line number Diff line
@@ -28,27 +28,35 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers
        public async Task alignRawSpectrumAsync()
        {
            double level0 = 0d;
            double level1 = 0d;
            double level10 = 0d;
            double level11 = 0d;
            double level2 = 0d;

            List<Task> tasks = new List<Task>();
            tasks.Add(Task.Run(() =>
            {
                level0 = getSliceLevel(RawSpectrum.Elements,
                level0 = getSliceLevelAtEnd(RawSpectrum.Elements,
                                            SpectrumAlignmentConfig.SeparatorWavelength0.CurrentValue,
                                            SpectrumAlignmentConfig.SeparatorWavelength1.CurrentValue,
                                            SpectrumAlignmentConfig.NumOfPointsForAlignment);
            }));
            tasks.Add(Task.Run(() =>
            {
                level1 = getSliceLevel(RawSpectrum.Elements,
                level10 = getSliceLevelAtBeginning(RawSpectrum.Elements,
                                                   SpectrumAlignmentConfig.SeparatorWavelength1.CurrentValue,
                                                   SpectrumAlignmentConfig.SeparatorWavelength2.CurrentValue,
                                                   SpectrumAlignmentConfig.NumOfPointsForAlignment);
            }));
            tasks.Add(Task.Run(() =>
            {
                level2 = getSliceLevel(RawSpectrum.Elements,
                level11 = getSliceLevelAtEnd(RawSpectrum.Elements,
                                             SpectrumAlignmentConfig.SeparatorWavelength1.CurrentValue,
                                             SpectrumAlignmentConfig.SeparatorWavelength2.CurrentValue,
                                             SpectrumAlignmentConfig.NumOfPointsForAlignment);
            }));
            tasks.Add(Task.Run(() =>
            {
                level2 = getSliceLevelAtBeginning(RawSpectrum.Elements,
                                                  SpectrumAlignmentConfig.SeparatorWavelength2.CurrentValue,
                                                  SpectrumAlignmentConfig.SeparatorWavelength3.CurrentValue,
                                                  SpectrumAlignmentConfig.NumOfPointsForAlignment);
@@ -56,8 +64,8 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers

            await Task.WhenAll(tasks);

            double diff10 = level1 - level0;
            double diff12 = level1 - level2;
            double diff10 = level10 - level0;
            double diff12 = level11 - level2;

            UpdateUIHelper.UpdateUIAsync(() =>
            {
@@ -67,20 +75,35 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers
                                 diff10);

                fixSpectrumSlice(RawSpectrum.Elements,
                                 SpectrumAlignmentConfig.SeparatorWavelength1.CurrentValue,
                                 SpectrumAlignmentConfig.SeparatorWavelength2.CurrentValue,
                                 SpectrumAlignmentConfig.SeparatorWavelength3.CurrentValue,
                                 diff12);
            });
        }

        private double getSliceLevel(IEnumerable<ElementModel> source,
        private double getSliceLevelAtBeginning(IEnumerable<ElementModel> source,
                                                double lowLimit,
                                                double highLimit,
                                                int numOfPoints)
        {
            var slice = source.Where(x => x.X >= lowLimit && x.X <= highLimit);

            var points = slice
                            .Take(numOfPoints);

            return points.Average(x => x.Y);
        }

        private double getSliceLevelAtEnd(IEnumerable<ElementModel> source,
                                          double lowLimit,
                                          double highLimit,
                                          int numOfPoints)
        {
            var slice = source.Where(x => x.X >= lowLimit && x.X <= highLimit);

            var points = slice.Skip(slice.Count() - numOfPoints).Take(numOfPoints);
            var points = slice
                            .Skip(slice.Count() - numOfPoints)
                            .Take(numOfPoints);

            return points.Average(x => x.Y);
        }
@@ -90,8 +113,8 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers
                                      double highLimit,
                                      double diff)
        {
            RawSpectrum.Elements.
                            Where(x => x.X >= lowLimit && x.X <= highLimit)
            RawSpectrum.Elements
                            .Where(x => x.X >= lowLimit && x.X <= highLimit)
                            .All(x => { x.addToY(diff); return true; });
        }
    }
+1 −1
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers
                {
                    spectrum = new SpectrumModel(spectrumType)
                    {
                        Filename = file.DisplayName
                        Title = file.DisplayName
                    };

                    int linesNum = lines.Count;
+12 −0
Original line number Diff line number Diff line
using Telerik.UI.Xaml.Controls.Chart;

namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI
{
    public class CustomContainerVisualFactory : ContainerVisualsFactory
    {
        protected override bool CanDrawContainerVisual(PresenterBase visualElement)
        {
            return false;
        }
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -163,6 +163,7 @@
    <Compile Include="Helpers\SettingsStorageExtensions.cs" />
    <Compile Include="Helpers\SpectrumManipulationHelper.cs" />
    <Compile Include="Helpers\SpectrumReader.cs" />
    <Compile Include="Helpers\UI\CustomContainerVisualFactory.cs" />
    <Compile Include="Helpers\UI\TextBoxInputManager.cs" />
    <Compile Include="Helpers\UpdateUIHelper.cs" />
    <Compile Include="Charts\SpectrumAlignmentConfigModel.cs" />
Loading