Loading INAF.Apps.Uwp.SLabDataManager/App.xaml.cs +2 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ using INAF.Apps.Uwp.SLabDataManager.ViewModels.ContentDialogsViewModel; using INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels; using INAF.Libraries.NetStandard.Math.Fit.Linear; using INAF.Libraries.NetStandard.Math.Fit.Spline; using INAF.Libraries.NetStandard.Math.Smoothing; using INAF.Libraries.Uwp.Logging; using INAF.Libraries.Uwp.RemoteAuthentication; using INAF.Libraries.Uwp.Settings; Loading Loading @@ -160,10 +161,9 @@ namespace INAF.Apps.Uwp.SLabDataManager .AddTransient<SplineProcessingHelper>() .AddTransient<RemoteOperationsManager>() .AddTransient<RemoteOperationsXmlReader>() .AddTransient<SavitzkyGolayHelper>() .AddTransient<SmoothingDefaultBoundariesReader>() .AddTransient<SmoothingProcessingHelper>() .AddTransient<SpectraFactory>() .AddTransient<SpectrumProcessingHelper>() .AddTransient<SpectrumReader>() .AddTransient<SplineFitHelper>() .AddTransient<ZoomHelper>() Loading INAF.Apps.Uwp.SLabDataManager/Charts/Containers/SpectraContainer.cs +0 −22 Original line number Diff line number Diff line Loading @@ -287,28 +287,6 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers raiseIsAnySpectrumLoaded(); } #region clone public IChartSpectrumModel getClonedEmptySpectrum(SpectrumType srcType, SpectrumType destType) { IChartSpectrumModel clonedSpectrum = getClonedSpectrum(srcType, destType); clonedSpectrum.initPoints(); return clonedSpectrum; } public IChartSpectrumModel getClonedSpectrum(SpectrumType srcType, SpectrumType destType) { if (!isAnySpectrumOfType(srcType)) return null; var clonedSpectrum = (IChartSpectrumModel)tryGetSpectrumOfType(srcType).Clone(); clonedSpectrum.setType(destType); clonedSpectrum.setColor(); clonedSpectrum.updateTitle(); return clonedSpectrum; } #endregion #region boundaries & axis public async Task setBoundariesAsync() { Loading INAF.Apps.Uwp.SLabDataManager/Constants/Constants.cs +8 −5 Original line number Diff line number Diff line Loading @@ -38,21 +38,24 @@ public static readonly string XML_CONTINUUM_REMOVAL_SETTINGS = "ContinuumRemovalSettings"; public static readonly string XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENT_FIT_METHOD_NAME = "FitMethodName"; public static readonly string XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENT_PARAMETER_VALUE = "ParameterValue"; public static readonly string XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENT = "Segment"; public static readonly string XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENTS = "Segments"; public static readonly string XML_ELEMENTS = "Elements"; public static readonly string XML_ELEMENT = "Element"; public static readonly string XML_FILE_IDS = "FileIds"; public static readonly string XML_MAX = "Max"; public static readonly string XML_MIN = "Min"; public static readonly string XML_NUM_OF_POINTS = "NumOfPoints"; public static readonly string XML_RAW_FILENAME = "RawFilename"; public static readonly string XML_INFO = "Info"; public static readonly string XML_RAW_FILE_ID = "RawFileId"; public static readonly string XML_PARENT_FILES = "ParentFiles"; public static readonly string XML_PARENT_FILE_ID = "ParentFileId"; public static readonly string XML_REF_FILE_ID = "RefFileId"; public static readonly string XML_REF_WHITE_FILE_ID = "RefWiteFileId"; public static readonly string XML_REF_WHITE_FILE_ID = "RefWhiteFileId"; public static readonly string XML_SEGMENT_END = "SegmentEnd"; public static readonly string XML_SEGMENT_START = "SegmentStart"; public static readonly string XML_SETTINGS_SEGMENT = "Segment"; public static readonly string XML_SETTINGS_SEGMENTS = "Segments"; public static readonly string XML_SMOOTHING_POLYNOMIAL_ORDER = "PolynomialOrder"; public static readonly string XML_SMOOTHING_SETTINGS = "SmoothingSettings"; public static readonly string XML_SMOOTHING_WINDOW_SIZE = "WindowSize"; public static readonly string XML_SPECTRUM = "Spectrum"; public static readonly string XML_TYPE = "Type"; public static readonly string XML_WAVELENGTH = "Wavelength"; Loading INAF.Apps.Uwp.SLabDataManager/Extensions/Extensions.cs +140 −38 Original line number Diff line number Diff line using INAF.Apps.Uwp.SLabDataManager.Charts.Smoothing; using INAF.Apps.Uwp.SLabDataManager.Models.Chart; using INAF.Apps.Uwp.SLabDataManager.Models.Fit; using INAF.Libraries.NetStandard.Extensions; using INAF.Libraries.NetStandard.Math.Models; using INAF.Libraries.NetStandard.Math.Stats; using INAF.Libraries.NetStandard.ScienceModels.Spectra; using INAF.Libraries.NetStandard.SLabCommonModels.Models.Files; using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum; using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpectraInfo; using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpectraInfo.Alignment; using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpectraInfo.ContinuumRemoval; using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpectraInfo.Smoothing; using System; using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Linq; using System.Text; using System.Xml.Serialization; using Telerik.UI.Xaml.Controls.Chart; using Windows.Data.Xml.Dom; using Windows.UI; Loading Loading @@ -214,7 +214,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions Filename = model.Filename, ParentId = model.ParentId, Type = model.Type, Xml = model.ToXml().GetXml() Xml = model.ToXmlString() }; } Loading Loading @@ -265,6 +265,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions } } #region local files public static string ToTxt(this ISpectrumModel spectrum) { if (spectrum == null || spectrum.Elements == null || spectrum.Elements.Count == 0) Loading @@ -279,7 +280,36 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions return sb.ToString(); } public static XmlDocument ToXml(this IChartSpectrumModel spectrum) private static XmlElement AppendParentFilesXml(XmlDocument dom, ParentFilesModel parentFiles) { var xmlalignmentsettings = dom.CreateElement(Constants.Constants.XML_PARENT_FILES); /* raw file id */ var xmlrawfileid = dom.CreateElement(Constants.Constants.XML_PARENT_FILE_ID); xmlrawfileid.InnerText = parentFiles.ParentFile.Id.ToString(); xmlalignmentsettings.AppendChild(xmlrawfileid); /* ref file id */ if (parentFiles.RefFile != null) { var xmlreffileid = dom.CreateElement(Constants.Constants.XML_REF_FILE_ID); xmlreffileid.InnerText = parentFiles.RefFile.Id.ToString(); xmlalignmentsettings.AppendChild(xmlreffileid); } /* raw file id */ if (parentFiles.RefWhiteFile != null) { var xmlrefwhitefileid = dom.CreateElement(Constants.Constants.XML_REF_WHITE_FILE_ID); xmlrefwhitefileid.InnerText = parentFiles.RefWhiteFile.Id.ToString(); xmlalignmentsettings.AppendChild(xmlrefwhitefileid); } return xmlalignmentsettings; } private static XmlDocument GetCommonXml(IChartSpectrumModel spectrum) { if (spectrum == null || spectrum.Elements == null || spectrum.Elements.Count == 0) return null; Loading @@ -302,6 +332,49 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions xmlspectrum.AppendChild(xmlinfo); return dom; } private static XmlElement GetElements(IChartSpectrumModel spectrum, XmlDocument dom) { /* append spectrum data (wavelength, value) */ var xmlelements = dom.CreateElement(Constants.Constants.XML_ELEMENTS); foreach (var element in spectrum.Elements) xmlelements.AppendChild(element.ToXmlNode(dom)); return xmlelements; } /* used for 'ToSpectrumFile' extension method */ public static string ToXmlString(this IChartSpectrumModel spectrum) { if (spectrum == null || spectrum.Elements == null || spectrum.Elements.Count == 0) return null; XmlDocument dom = GetCommonXml(spectrum); var xmlspectrum = dom.SelectSingleNode(Constants.Constants.XML_SPECTRUM); /* append spectrum data (wavelength, value) */ var xmlelements = GetElements(spectrum, dom); xmlspectrum.AppendChild(xmlelements); return dom.GetXml(); } /* used for 'saveSpectrumOfTypeAsLocalFileAsync' method in BaseUserControlViewModel */ public static XmlDocument ToXml(this IChartSpectrumOfTypeProcessedModel spectrum) { if (spectrum == null || spectrum.Elements == null || spectrum.Elements.Count == 0) return null; XmlDocument dom = GetCommonXml(spectrum); var xmlspectrum = dom.SelectSingleNode(Constants.Constants.XML_SPECTRUM); xmlspectrum.AppendChild(AppendParentFilesXml(dom, spectrum.ParentFiles)); /* type specific actions */ if (spectrum.GetType() == typeof(ChartSpectrumOfTypeAlignedModel)) { Loading @@ -313,17 +386,16 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions } else if (spectrum.GetType() == typeof(ChartSpectrumOfTypeSmoothedModel)) { xmlspectrum.AppendChild(GetSmoothingSettingsXml(dom, ((ChartSpectrumOfTypeSmoothedModel)spectrum).SmoothingSettings)); } /* append spectrum data (wavelength, value) */ var xmlelements = dom.CreateElement(Constants.Constants.XML_ELEMENTS); foreach (var element in spectrum.Elements) xmlelements.AppendChild(element.ToXmlNode(dom)); var xmlelements = GetElements(spectrum, dom); xmlspectrum.AppendChild(xmlelements); return dom; } #endregion #region elements public static XmlElement ToXmlNode(this ElementModel element, XmlDocument dom) Loading Loading @@ -384,7 +456,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions } #endregion #region aligned #region settings private static XmlElement GetAlignmentSettingsXml(XmlDocument dom, AlignmentSettingsModel alignmentSettings) { Loading @@ -409,33 +481,9 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions xmlalignmentsettings.AppendChild(xmlsegmentboundaries); /* file ids */ var xmlfileids = dom.CreateElement(Constants.Constants.XML_FILE_IDS); /* raw file id */ var xmlrawfileid = dom.CreateElement(Constants.Constants.XML_RAW_FILE_ID); xmlrawfileid.InnerText = alignmentSettings.RawFile.Id.ToString(); xmlfileids.AppendChild(xmlrawfileid); /* ref file id */ var xmlreffileid = dom.CreateElement(Constants.Constants.XML_REF_FILE_ID); xmlreffileid.InnerText = alignmentSettings.RefFile.Id.ToString(); xmlfileids.AppendChild(xmlreffileid); /* raw file id */ var xmlrefwhitefileid = dom.CreateElement(Constants.Constants.XML_REF_WHITE_FILE_ID); xmlrefwhitefileid.InnerText = alignmentSettings.RefWhiteFile.Id.ToString(); xmlfileids.AppendChild(xmlrefwhitefileid); xmlalignmentsettings.AppendChild(xmlfileids); xmlalignmentsettings.AppendChild(xmlsegmentboundaries); return xmlalignmentsettings; } #endregion #region segments fit private static XmlElement GetSegmentsFitSettingsXml(XmlDocument dom, ContinuumRemovalSettingsModel continuumRemovalSettings) { Loading @@ -447,20 +495,22 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions xmlcontinuumremovalsettings.AppendChild(xmlnumofpoints); /* segments */ var xmlsegments = dom.CreateElement(Constants.Constants.XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENTS); var xmlsegments = dom.CreateElement(Constants.Constants.XML_SETTINGS_SEGMENTS); foreach (var segment in continuumRemovalSettings.Segments) { var xmlsegment = dom.CreateElement(Constants.Constants.XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENT); var xmlsegment = dom.CreateElement(Constants.Constants.XML_SETTINGS_SEGMENT); /* fit method name */ var xmlfitmethodname = dom.CreateElement(Constants.Constants.XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENT_FIT_METHOD_NAME); xmlfitmethodname.InnerText = segment.FitMethodName; xmlsegment.AppendChild(xmlfitmethodname); /* start */ var xmlsegmentstart = dom.CreateElement(Constants.Constants.XML_SEGMENT_START); xmlsegmentstart.InnerText = segment.XStart.ToDoubleInvariantString(); xmlsegment.AppendChild(xmlsegmentstart); /* end */ var xmlsegmentend = dom.CreateElement(Constants.Constants.XML_SEGMENT_END); xmlsegmentend.InnerText = segment.XEnd.ToDoubleInvariantString(); xmlsegment.AppendChild(xmlsegmentend); Loading @@ -469,15 +519,67 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions if (segment.FitParamValue.HasValue) { var xmlfitparamvalue = dom.CreateElement(Constants.Constants.XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENT_PARAMETER_VALUE); xmlfitmethodname.InnerText = segment.FitParamValue.Value.ToDoubleInvariantString(); xmlfitparamvalue.InnerText = segment.FitParamValue.Value.ToDoubleInvariantString(); xmlsegment.AppendChild(xmlfitparamvalue); } xmlsegments.AppendChild(xmlsegment); } xmlcontinuumremovalsettings.AppendChild(xmlsegments); return xmlcontinuumremovalsettings; } private static XmlElement GetSmoothingSettingsXml(XmlDocument dom, SmoothingSettingsModel smoothingSettings) { var xmlsmoothingsettings = dom.CreateElement(Constants.Constants.XML_SMOOTHING_SETTINGS); var xmlsegments = dom.CreateElement(Constants.Constants.XML_SETTINGS_SEGMENTS); foreach (var segment in smoothingSettings.Segments) { var xmlsegment = dom.CreateElement(Constants.Constants.XML_SETTINGS_SEGMENT); /* start */ var xmlsegmentstart = dom.CreateElement(Constants.Constants.XML_SEGMENT_START); xmlsegmentstart.InnerText = segment.XStart.ToDoubleInvariantString(); xmlsegment.AppendChild(xmlsegmentstart); /* end */ var xmlsegmentend = dom.CreateElement(Constants.Constants.XML_SEGMENT_END); xmlsegmentend.InnerText = segment.XEnd.ToDoubleInvariantString(); xmlsegment.AppendChild(xmlsegmentend); /* polynomial order */ var xmlpolynomialorder = dom.CreateElement(Constants.Constants.XML_SMOOTHING_POLYNOMIAL_ORDER); xmlpolynomialorder.InnerText = segment.PolynomialOrder.ToString(); xmlsegment.AppendChild(xmlpolynomialorder); /* window size */ var xmlwindowsize = dom.CreateElement(Constants.Constants.XML_SMOOTHING_WINDOW_SIZE); xmlwindowsize.InnerText = segment.WindowSize.ToString(); xmlsegment.AppendChild(xmlwindowsize); xmlsegments.AppendChild(xmlsegment); } xmlsmoothingsettings.AppendChild(xmlsegments); return xmlsmoothingsettings; } public static SegmentFitSettingsModel ToSegmentFitSettingsModel(this SegmentFitModel model) { return new SegmentFitSettingsModel() { Name = model.SelectedFitMethod.Name, FitMethodName = model.SelectedFitMethod.MethodName, FitParamValue = model.SelectedFitMethod.Parameter, XStart = model.P1.X, XEnd = model.P2.X }; } #endregion #endregion Loading @@ -495,9 +597,9 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions return string.Join(string.Empty, "color", type.ToString().ToLowerInvariant()); } public static FitSegmentModel ToFitSegmentModel(this Models.Fit.SegmentFitModel segment) public static SegmentFitSettingsModel ToFitSegmentModel(this Models.Fit.SegmentFitModel segment) { return new FitSegmentModel(segment.Id, return new SegmentFitSettingsModel(segment.Id, segment.SelectedFitMethod.MethodName, segment.P1.X, segment.P2.X, Loading INAF.Apps.Uwp.SLabDataManager/Helpers/UI/Chart/ProcessingHelpers/LinearProcessingHelper.cs +1 −1 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart.ProcessingHelpers catch (Exception ex) { exMsg = ex.Message; logger.Write<SpectrumProcessingHelper>($"{nameof(fitSpectrumProcedureAsync)} - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); logger.Write<LinearProcessingHelper>($"{nameof(fitSpectrumProcedureAsync)} - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); } }); Loading Loading
INAF.Apps.Uwp.SLabDataManager/App.xaml.cs +2 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ using INAF.Apps.Uwp.SLabDataManager.ViewModels.ContentDialogsViewModel; using INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels; using INAF.Libraries.NetStandard.Math.Fit.Linear; using INAF.Libraries.NetStandard.Math.Fit.Spline; using INAF.Libraries.NetStandard.Math.Smoothing; using INAF.Libraries.Uwp.Logging; using INAF.Libraries.Uwp.RemoteAuthentication; using INAF.Libraries.Uwp.Settings; Loading Loading @@ -160,10 +161,9 @@ namespace INAF.Apps.Uwp.SLabDataManager .AddTransient<SplineProcessingHelper>() .AddTransient<RemoteOperationsManager>() .AddTransient<RemoteOperationsXmlReader>() .AddTransient<SavitzkyGolayHelper>() .AddTransient<SmoothingDefaultBoundariesReader>() .AddTransient<SmoothingProcessingHelper>() .AddTransient<SpectraFactory>() .AddTransient<SpectrumProcessingHelper>() .AddTransient<SpectrumReader>() .AddTransient<SplineFitHelper>() .AddTransient<ZoomHelper>() Loading
INAF.Apps.Uwp.SLabDataManager/Charts/Containers/SpectraContainer.cs +0 −22 Original line number Diff line number Diff line Loading @@ -287,28 +287,6 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers raiseIsAnySpectrumLoaded(); } #region clone public IChartSpectrumModel getClonedEmptySpectrum(SpectrumType srcType, SpectrumType destType) { IChartSpectrumModel clonedSpectrum = getClonedSpectrum(srcType, destType); clonedSpectrum.initPoints(); return clonedSpectrum; } public IChartSpectrumModel getClonedSpectrum(SpectrumType srcType, SpectrumType destType) { if (!isAnySpectrumOfType(srcType)) return null; var clonedSpectrum = (IChartSpectrumModel)tryGetSpectrumOfType(srcType).Clone(); clonedSpectrum.setType(destType); clonedSpectrum.setColor(); clonedSpectrum.updateTitle(); return clonedSpectrum; } #endregion #region boundaries & axis public async Task setBoundariesAsync() { Loading
INAF.Apps.Uwp.SLabDataManager/Constants/Constants.cs +8 −5 Original line number Diff line number Diff line Loading @@ -38,21 +38,24 @@ public static readonly string XML_CONTINUUM_REMOVAL_SETTINGS = "ContinuumRemovalSettings"; public static readonly string XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENT_FIT_METHOD_NAME = "FitMethodName"; public static readonly string XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENT_PARAMETER_VALUE = "ParameterValue"; public static readonly string XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENT = "Segment"; public static readonly string XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENTS = "Segments"; public static readonly string XML_ELEMENTS = "Elements"; public static readonly string XML_ELEMENT = "Element"; public static readonly string XML_FILE_IDS = "FileIds"; public static readonly string XML_MAX = "Max"; public static readonly string XML_MIN = "Min"; public static readonly string XML_NUM_OF_POINTS = "NumOfPoints"; public static readonly string XML_RAW_FILENAME = "RawFilename"; public static readonly string XML_INFO = "Info"; public static readonly string XML_RAW_FILE_ID = "RawFileId"; public static readonly string XML_PARENT_FILES = "ParentFiles"; public static readonly string XML_PARENT_FILE_ID = "ParentFileId"; public static readonly string XML_REF_FILE_ID = "RefFileId"; public static readonly string XML_REF_WHITE_FILE_ID = "RefWiteFileId"; public static readonly string XML_REF_WHITE_FILE_ID = "RefWhiteFileId"; public static readonly string XML_SEGMENT_END = "SegmentEnd"; public static readonly string XML_SEGMENT_START = "SegmentStart"; public static readonly string XML_SETTINGS_SEGMENT = "Segment"; public static readonly string XML_SETTINGS_SEGMENTS = "Segments"; public static readonly string XML_SMOOTHING_POLYNOMIAL_ORDER = "PolynomialOrder"; public static readonly string XML_SMOOTHING_SETTINGS = "SmoothingSettings"; public static readonly string XML_SMOOTHING_WINDOW_SIZE = "WindowSize"; public static readonly string XML_SPECTRUM = "Spectrum"; public static readonly string XML_TYPE = "Type"; public static readonly string XML_WAVELENGTH = "Wavelength"; Loading
INAF.Apps.Uwp.SLabDataManager/Extensions/Extensions.cs +140 −38 Original line number Diff line number Diff line using INAF.Apps.Uwp.SLabDataManager.Charts.Smoothing; using INAF.Apps.Uwp.SLabDataManager.Models.Chart; using INAF.Apps.Uwp.SLabDataManager.Models.Fit; using INAF.Libraries.NetStandard.Extensions; using INAF.Libraries.NetStandard.Math.Models; using INAF.Libraries.NetStandard.Math.Stats; using INAF.Libraries.NetStandard.ScienceModels.Spectra; using INAF.Libraries.NetStandard.SLabCommonModels.Models.Files; using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum; using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpectraInfo; using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpectraInfo.Alignment; using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpectraInfo.ContinuumRemoval; using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpectraInfo.Smoothing; using System; using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Linq; using System.Text; using System.Xml.Serialization; using Telerik.UI.Xaml.Controls.Chart; using Windows.Data.Xml.Dom; using Windows.UI; Loading Loading @@ -214,7 +214,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions Filename = model.Filename, ParentId = model.ParentId, Type = model.Type, Xml = model.ToXml().GetXml() Xml = model.ToXmlString() }; } Loading Loading @@ -265,6 +265,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions } } #region local files public static string ToTxt(this ISpectrumModel spectrum) { if (spectrum == null || spectrum.Elements == null || spectrum.Elements.Count == 0) Loading @@ -279,7 +280,36 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions return sb.ToString(); } public static XmlDocument ToXml(this IChartSpectrumModel spectrum) private static XmlElement AppendParentFilesXml(XmlDocument dom, ParentFilesModel parentFiles) { var xmlalignmentsettings = dom.CreateElement(Constants.Constants.XML_PARENT_FILES); /* raw file id */ var xmlrawfileid = dom.CreateElement(Constants.Constants.XML_PARENT_FILE_ID); xmlrawfileid.InnerText = parentFiles.ParentFile.Id.ToString(); xmlalignmentsettings.AppendChild(xmlrawfileid); /* ref file id */ if (parentFiles.RefFile != null) { var xmlreffileid = dom.CreateElement(Constants.Constants.XML_REF_FILE_ID); xmlreffileid.InnerText = parentFiles.RefFile.Id.ToString(); xmlalignmentsettings.AppendChild(xmlreffileid); } /* raw file id */ if (parentFiles.RefWhiteFile != null) { var xmlrefwhitefileid = dom.CreateElement(Constants.Constants.XML_REF_WHITE_FILE_ID); xmlrefwhitefileid.InnerText = parentFiles.RefWhiteFile.Id.ToString(); xmlalignmentsettings.AppendChild(xmlrefwhitefileid); } return xmlalignmentsettings; } private static XmlDocument GetCommonXml(IChartSpectrumModel spectrum) { if (spectrum == null || spectrum.Elements == null || spectrum.Elements.Count == 0) return null; Loading @@ -302,6 +332,49 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions xmlspectrum.AppendChild(xmlinfo); return dom; } private static XmlElement GetElements(IChartSpectrumModel spectrum, XmlDocument dom) { /* append spectrum data (wavelength, value) */ var xmlelements = dom.CreateElement(Constants.Constants.XML_ELEMENTS); foreach (var element in spectrum.Elements) xmlelements.AppendChild(element.ToXmlNode(dom)); return xmlelements; } /* used for 'ToSpectrumFile' extension method */ public static string ToXmlString(this IChartSpectrumModel spectrum) { if (spectrum == null || spectrum.Elements == null || spectrum.Elements.Count == 0) return null; XmlDocument dom = GetCommonXml(spectrum); var xmlspectrum = dom.SelectSingleNode(Constants.Constants.XML_SPECTRUM); /* append spectrum data (wavelength, value) */ var xmlelements = GetElements(spectrum, dom); xmlspectrum.AppendChild(xmlelements); return dom.GetXml(); } /* used for 'saveSpectrumOfTypeAsLocalFileAsync' method in BaseUserControlViewModel */ public static XmlDocument ToXml(this IChartSpectrumOfTypeProcessedModel spectrum) { if (spectrum == null || spectrum.Elements == null || spectrum.Elements.Count == 0) return null; XmlDocument dom = GetCommonXml(spectrum); var xmlspectrum = dom.SelectSingleNode(Constants.Constants.XML_SPECTRUM); xmlspectrum.AppendChild(AppendParentFilesXml(dom, spectrum.ParentFiles)); /* type specific actions */ if (spectrum.GetType() == typeof(ChartSpectrumOfTypeAlignedModel)) { Loading @@ -313,17 +386,16 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions } else if (spectrum.GetType() == typeof(ChartSpectrumOfTypeSmoothedModel)) { xmlspectrum.AppendChild(GetSmoothingSettingsXml(dom, ((ChartSpectrumOfTypeSmoothedModel)spectrum).SmoothingSettings)); } /* append spectrum data (wavelength, value) */ var xmlelements = dom.CreateElement(Constants.Constants.XML_ELEMENTS); foreach (var element in spectrum.Elements) xmlelements.AppendChild(element.ToXmlNode(dom)); var xmlelements = GetElements(spectrum, dom); xmlspectrum.AppendChild(xmlelements); return dom; } #endregion #region elements public static XmlElement ToXmlNode(this ElementModel element, XmlDocument dom) Loading Loading @@ -384,7 +456,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions } #endregion #region aligned #region settings private static XmlElement GetAlignmentSettingsXml(XmlDocument dom, AlignmentSettingsModel alignmentSettings) { Loading @@ -409,33 +481,9 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions xmlalignmentsettings.AppendChild(xmlsegmentboundaries); /* file ids */ var xmlfileids = dom.CreateElement(Constants.Constants.XML_FILE_IDS); /* raw file id */ var xmlrawfileid = dom.CreateElement(Constants.Constants.XML_RAW_FILE_ID); xmlrawfileid.InnerText = alignmentSettings.RawFile.Id.ToString(); xmlfileids.AppendChild(xmlrawfileid); /* ref file id */ var xmlreffileid = dom.CreateElement(Constants.Constants.XML_REF_FILE_ID); xmlreffileid.InnerText = alignmentSettings.RefFile.Id.ToString(); xmlfileids.AppendChild(xmlreffileid); /* raw file id */ var xmlrefwhitefileid = dom.CreateElement(Constants.Constants.XML_REF_WHITE_FILE_ID); xmlrefwhitefileid.InnerText = alignmentSettings.RefWhiteFile.Id.ToString(); xmlfileids.AppendChild(xmlrefwhitefileid); xmlalignmentsettings.AppendChild(xmlfileids); xmlalignmentsettings.AppendChild(xmlsegmentboundaries); return xmlalignmentsettings; } #endregion #region segments fit private static XmlElement GetSegmentsFitSettingsXml(XmlDocument dom, ContinuumRemovalSettingsModel continuumRemovalSettings) { Loading @@ -447,20 +495,22 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions xmlcontinuumremovalsettings.AppendChild(xmlnumofpoints); /* segments */ var xmlsegments = dom.CreateElement(Constants.Constants.XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENTS); var xmlsegments = dom.CreateElement(Constants.Constants.XML_SETTINGS_SEGMENTS); foreach (var segment in continuumRemovalSettings.Segments) { var xmlsegment = dom.CreateElement(Constants.Constants.XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENT); var xmlsegment = dom.CreateElement(Constants.Constants.XML_SETTINGS_SEGMENT); /* fit method name */ var xmlfitmethodname = dom.CreateElement(Constants.Constants.XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENT_FIT_METHOD_NAME); xmlfitmethodname.InnerText = segment.FitMethodName; xmlsegment.AppendChild(xmlfitmethodname); /* start */ var xmlsegmentstart = dom.CreateElement(Constants.Constants.XML_SEGMENT_START); xmlsegmentstart.InnerText = segment.XStart.ToDoubleInvariantString(); xmlsegment.AppendChild(xmlsegmentstart); /* end */ var xmlsegmentend = dom.CreateElement(Constants.Constants.XML_SEGMENT_END); xmlsegmentend.InnerText = segment.XEnd.ToDoubleInvariantString(); xmlsegment.AppendChild(xmlsegmentend); Loading @@ -469,15 +519,67 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions if (segment.FitParamValue.HasValue) { var xmlfitparamvalue = dom.CreateElement(Constants.Constants.XML_CONTINUUM_REMOVAL_SETTINGS_SEGMENT_PARAMETER_VALUE); xmlfitmethodname.InnerText = segment.FitParamValue.Value.ToDoubleInvariantString(); xmlfitparamvalue.InnerText = segment.FitParamValue.Value.ToDoubleInvariantString(); xmlsegment.AppendChild(xmlfitparamvalue); } xmlsegments.AppendChild(xmlsegment); } xmlcontinuumremovalsettings.AppendChild(xmlsegments); return xmlcontinuumremovalsettings; } private static XmlElement GetSmoothingSettingsXml(XmlDocument dom, SmoothingSettingsModel smoothingSettings) { var xmlsmoothingsettings = dom.CreateElement(Constants.Constants.XML_SMOOTHING_SETTINGS); var xmlsegments = dom.CreateElement(Constants.Constants.XML_SETTINGS_SEGMENTS); foreach (var segment in smoothingSettings.Segments) { var xmlsegment = dom.CreateElement(Constants.Constants.XML_SETTINGS_SEGMENT); /* start */ var xmlsegmentstart = dom.CreateElement(Constants.Constants.XML_SEGMENT_START); xmlsegmentstart.InnerText = segment.XStart.ToDoubleInvariantString(); xmlsegment.AppendChild(xmlsegmentstart); /* end */ var xmlsegmentend = dom.CreateElement(Constants.Constants.XML_SEGMENT_END); xmlsegmentend.InnerText = segment.XEnd.ToDoubleInvariantString(); xmlsegment.AppendChild(xmlsegmentend); /* polynomial order */ var xmlpolynomialorder = dom.CreateElement(Constants.Constants.XML_SMOOTHING_POLYNOMIAL_ORDER); xmlpolynomialorder.InnerText = segment.PolynomialOrder.ToString(); xmlsegment.AppendChild(xmlpolynomialorder); /* window size */ var xmlwindowsize = dom.CreateElement(Constants.Constants.XML_SMOOTHING_WINDOW_SIZE); xmlwindowsize.InnerText = segment.WindowSize.ToString(); xmlsegment.AppendChild(xmlwindowsize); xmlsegments.AppendChild(xmlsegment); } xmlsmoothingsettings.AppendChild(xmlsegments); return xmlsmoothingsettings; } public static SegmentFitSettingsModel ToSegmentFitSettingsModel(this SegmentFitModel model) { return new SegmentFitSettingsModel() { Name = model.SelectedFitMethod.Name, FitMethodName = model.SelectedFitMethod.MethodName, FitParamValue = model.SelectedFitMethod.Parameter, XStart = model.P1.X, XEnd = model.P2.X }; } #endregion #endregion Loading @@ -495,9 +597,9 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions return string.Join(string.Empty, "color", type.ToString().ToLowerInvariant()); } public static FitSegmentModel ToFitSegmentModel(this Models.Fit.SegmentFitModel segment) public static SegmentFitSettingsModel ToFitSegmentModel(this Models.Fit.SegmentFitModel segment) { return new FitSegmentModel(segment.Id, return new SegmentFitSettingsModel(segment.Id, segment.SelectedFitMethod.MethodName, segment.P1.X, segment.P2.X, Loading
INAF.Apps.Uwp.SLabDataManager/Helpers/UI/Chart/ProcessingHelpers/LinearProcessingHelper.cs +1 −1 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart.ProcessingHelpers catch (Exception ex) { exMsg = ex.Message; logger.Write<SpectrumProcessingHelper>($"{nameof(fitSpectrumProcedureAsync)} - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); logger.Write<LinearProcessingHelper>($"{nameof(fitSpectrumProcedureAsync)} - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); } }); Loading