From ae6cdcf81a1f5617441694feecda347cc6555aea Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Mon, 18 Mar 2024 12:26:12 +0000 Subject: [PATCH 01/14] Allow cropping of `mag.Science` with negative duration (filters from the end) --- resources/ReleaseNotes.md | 7 +------ src/data/+mag/Science.m | 7 ++++++- tests/unit/data/tScience.m | 24 +++++++++++++++++++++--- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/resources/ReleaseNotes.md b/resources/ReleaseNotes.md index 25f82806..4229c118 100644 --- a/resources/ReleaseNotes.md +++ b/resources/ReleaseNotes.md @@ -1,8 +1,3 @@ # Software -- Make dependence on Parallel Computing Toolbox optional -- Convert addition of missing row at end of file data into a processing step (`mag.process.Separate`) -- Add `mag.process.Separate` to HK processing -- Add export of whole science data -- Fix issue with processing data ready time in `mag.process.Units` when not enough digits are present -- Fix issue with plotting last event mode and range in `mag.graphics.view.HK` when data is cropped +- Allow cropping of `mag.Science` with negative duration (filters from the end) diff --git a/src/data/+mag/Science.m b/src/data/+mag/Science.m index 91fd9aa2..e51b4246 100644 --- a/src/data/+mag/Science.m +++ b/src/data/+mag/Science.m @@ -116,7 +116,12 @@ function crop(this, timeFilter) end if isa(timeFilter, "duration") - timePeriod = timerange(this.Time(1) + timeFilter, this.Time(end), "closed"); + + if timeFilter >= 0 + timePeriod = timerange(this.Time(1) + timeFilter, this.Time(end), "closed"); + else + timePeriod = timerange(this.Time(1), this.Time(end) - timeFilter, "closed"); + end elseif isa(timeFilter, "timerange") || isa(timeFilter, "withtol") timePeriod = timeFilter; end diff --git a/tests/unit/data/tScience.m b/tests/unit/data/tScience.m index 2f7749f7..f46cd63f 100644 --- a/tests/unit/data/tScience.m +++ b/tests/unit/data/tScience.m @@ -73,8 +73,9 @@ function derivative_nonEmpty(testCase, DerivativeVariable) testCase.verifyTrue(ismissing(actualDerivative(end)), "Last element in derivative should be missing."); end - % Test that "crop" method crops data based on a "duration" object. - function cropMethod_duration(testCase) + % Test that "crop" method crops data based on a positive "duration" + % object. + function cropMethod_duration_positive(testCase) % Set up. science = testCase.createTestData(); @@ -88,6 +89,22 @@ function cropMethod_duration(testCase) testCase.cropAndVerify(science, timeFilter, expectedTimes, expectedData); end + % Test that "crop" method crops data based on a negative "duration" + % object. + function cropMethod_duration_negative(testCase) + + % Set up. + science = testCase.createTestData(); + + expectedTimes = science.Time(1:end-1); + expectedData = science.DependentVariables(1:end-1, :); + + timeFilter = minutes(-1); + + % Exercise and verify. + testCase.cropAndVerify(science, timeFilter, expectedTimes, expectedData); + end + % Test that "crop" method crops data based on a "timerange" object. function cropMethod_timerange(testCase) @@ -198,7 +215,8 @@ function resampleMethod_error(testCase) testCase.verifyError(@() science.resample(0.12345), "", "Resampling should error when frequencies do not match."); end - % Test that "downsample" method can downsample to a lower frequency. + % Test that "downsample" method can downsample to a lower + % frequency. function downsampleMethod_lowerFrequency(testCase) % Set up. From 839f7741807a50ddeadbe585b2dbe5d73c2935d4 Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Mon, 18 Mar 2024 13:39:09 +0000 Subject: [PATCH 02/14] Allow cropping of I-ALiRT with separate filter for primary and secondary --- resources/ReleaseNotes.md | 1 + src/data/+mag/IALiRT.m | 12 +++++++++--- src/data/+mag/Instrument.m | 2 +- tests/unit/data/tIALiRT.m | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/resources/ReleaseNotes.md b/resources/ReleaseNotes.md index 4229c118..e6c8677b 100644 --- a/resources/ReleaseNotes.md +++ b/resources/ReleaseNotes.md @@ -1,3 +1,4 @@ # Software - Allow cropping of `mag.Science` with negative duration (filters from the end) +- Allow cropping of I-ALiRT with separate filter for primary and secondary diff --git a/src/data/+mag/IALiRT.m b/src/data/+mag/IALiRT.m index 5c22479e..ba45ad81 100644 --- a/src/data/+mag/IALiRT.m +++ b/src/data/+mag/IALiRT.m @@ -21,10 +21,16 @@ this.Secondary = secondaryData; end - function crop(this, timeFilter) + function crop(this, primaryFilter, secondaryFilter) - this.Primary.crop(timeFilter); - this.Secondary.crop(timeFilter); + arguments + this (1, 1) mag.IALiRT + primaryFilter + secondaryFilter = primaryFilter + end + + this.Primary.crop(primaryFilter); + this.Secondary.crop(secondaryFilter); end end diff --git a/src/data/+mag/Instrument.m b/src/data/+mag/Instrument.m index 33c2a28e..f8657dcd 100644 --- a/src/data/+mag/Instrument.m +++ b/src/data/+mag/Instrument.m @@ -144,7 +144,7 @@ function cropScience(this, primaryFilter, secondaryFilter) % Filter I-ALiRT. if this.HasIALiRT - this.IALiRT.crop(timerange(this.TimeRange(1), this.TimeRange(2), "closed")); + this.IALiRT.crop(primaryFilter, secondaryFilter); end end diff --git a/tests/unit/data/tIALiRT.m b/tests/unit/data/tIALiRT.m index 6bef1c13..398fb1e0 100644 --- a/tests/unit/data/tIALiRT.m +++ b/tests/unit/data/tIALiRT.m @@ -12,7 +12,7 @@ function cropMethod(testCase) timeFilter = timerange(datetime("-Inf"), datetime("Inf")); % Exercise. - iALiRT.crop(timeFilter); + iALiRT.crop(timeFilter, timeFilter); % Verify. testCase.verifyCalled(primaryBehavior.crop(timeFilter), "Primary data should be cropped with same filter."); From 5104cd9da38c781b5be937ec4006c1576baad932 Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Mon, 18 Mar 2024 14:00:51 +0000 Subject: [PATCH 03/14] Fix issue with cropping with negative durations --- src/data/+mag/Science.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/+mag/Science.m b/src/data/+mag/Science.m index e51b4246..9fc2bba5 100644 --- a/src/data/+mag/Science.m +++ b/src/data/+mag/Science.m @@ -120,7 +120,7 @@ function crop(this, timeFilter) if timeFilter >= 0 timePeriod = timerange(this.Time(1) + timeFilter, this.Time(end), "closed"); else - timePeriod = timerange(this.Time(1), this.Time(end) - timeFilter, "closed"); + timePeriod = timerange(this.Time(1), this.Time(end) + timeFilter, "closed"); end elseif isa(timeFilter, "timerange") || isa(timeFilter, "withtol") timePeriod = timeFilter; From 000687c70ec262a04a167f0e35a996e98a17b90b Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Tue, 19 Mar 2024 10:08:20 +0000 Subject: [PATCH 04/14] Fix failing `tInstrument` tests --- tests/unit/data/tInstrument.m | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/unit/data/tInstrument.m b/tests/unit/data/tInstrument.m index 0205af64..765818e9 100644 --- a/tests/unit/data/tInstrument.m +++ b/tests/unit/data/tInstrument.m @@ -96,7 +96,6 @@ function cropScienceMethod(testCase) [instrument, primaryBehavior, secondaryBehavior, iALiRTBehavior] = testCase.createTestData(); timeFilter = timerange(datetime("-Inf", TimeZone = "UTC"), datetime("Inf", TimeZone = "UTC")); - expectedTimeFilter = timerange(instrument.TimeRange(1), instrument.TimeRange(2), "closed"); % Exercise. instrument.cropScience(timeFilter); @@ -104,7 +103,7 @@ function cropScienceMethod(testCase) % Verify. testCase.verifyCalled(primaryBehavior.crop(timeFilter), "Primary data should be cropped with same filter."); testCase.verifyCalled(secondaryBehavior.crop(timeFilter), "Secondary data should be cropped with same filter."); - testCase.verifyCalled(iALiRTBehavior.crop(expectedTimeFilter), "I-ALiRT data should be cropped with expected filter."); + testCase.verifyCalled(iALiRTBehavior.crop(timeFilter, timeFilter), "I-ALiRT data should be cropped with expected filter."); end % Test that "crop" method calls method of underlying science data. @@ -114,7 +113,6 @@ function cropMethod(testCase) [instrument, primaryBehavior, secondaryBehavior, iALiRTBehavior] = testCase.createTestData(); timeFilter = timerange(datetime("-Inf", TimeZone = "UTC"), datetime("Inf", TimeZone = "UTC")); - expectedTimeFilter = timerange(instrument.TimeRange(1), instrument.TimeRange(2), "closed"); % Exercise. instrument.crop(timeFilter); @@ -122,7 +120,7 @@ function cropMethod(testCase) % Verify. testCase.verifyCalled(primaryBehavior.crop(timeFilter), "Primary data should be cropped with same filter."); testCase.verifyCalled(secondaryBehavior.crop(timeFilter), "Secondary data should be cropped with same filter."); - testCase.verifyCalled(iALiRTBehavior.crop(expectedTimeFilter), "I-ALiRT data should be cropped with same filter."); + testCase.verifyCalled(iALiRTBehavior.crop(timeFilter, timeFilter), "I-ALiRT data should be cropped with same filter."); testCase.verifyTrue(all(isbetween(instrument.HK.Time, instrument.TimeRange(1), instrument.TimeRange(2), "closed")), "HK data should be cropped with same filter."); end From 4b9dc96dae8f8e745a7f529db55dc7c10e3097b0 Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Tue, 19 Mar 2024 13:35:00 +0000 Subject: [PATCH 05/14] Add conversion method `eventtable` in `mag.event.Event` to simplify logic in science analysis --- resources/ReleaseNotes.md | 1 + .../@IMAPTestingAnalysis/generateEventTable.m | 25 ---------------- .../@IMAPTestingAnalysis/loadIALiRTData.m | 3 +- .../@IMAPTestingAnalysis/loadScienceData.m | 2 +- src/data/+mag/+event/Event.m | 30 +++++++++++++++++++ 5 files changed, 34 insertions(+), 27 deletions(-) diff --git a/resources/ReleaseNotes.md b/resources/ReleaseNotes.md index e6c8677b..82a55952 100644 --- a/resources/ReleaseNotes.md +++ b/resources/ReleaseNotes.md @@ -2,3 +2,4 @@ - Allow cropping of `mag.Science` with negative duration (filters from the end) - Allow cropping of I-ALiRT with separate filter for primary and secondary +- Add conversion method `eventtable` in `mag.event.Event` to simplify logic in science analysis diff --git a/src/analyze/+mag/@IMAPTestingAnalysis/generateEventTable.m b/src/analyze/+mag/@IMAPTestingAnalysis/generateEventTable.m index 9f271283..c85e9210 100644 --- a/src/analyze/+mag/@IMAPTestingAnalysis/generateEventTable.m +++ b/src/analyze/+mag/@IMAPTestingAnalysis/generateEventTable.m @@ -17,8 +17,6 @@ sensor = string(this.Results.getSensor(primaryOrSecondary)); % Adapt existing event properties. - sensorEvents.Reason = repmat("Command", height(sensorEvents), 1); - if contains("Sensor", sensorEvents.Properties.VariableNames) sensorEvents = sensorEvents(ismissing([sensorEvents.Sensor]) | ([sensorEvents.Sensor] == sensor), :); @@ -30,29 +28,6 @@ % Improve ramp mode timestamp estimates. sensorEvents = updateRampModeTimestamps(sensorEvents, data); - % Add automatic transitions. - locTimedCommand = ~ismissing(sensorEvents.Duration) & (sensorEvents.Duration ~= 0); - - idxTimedCommand = find(locTimedCommand); - idxBaselineCommand = find(~locTimedCommand); - - for i = idxTimedCommand(:)' - - idx = idxBaselineCommand(idxBaselineCommand < i); - - if isempty(idx) - error("Cannot determine initial event."); - end - - autoEvent = sensorEvents(idx(end), :); - autoEvent.Time = sensorEvents.Time(i) + seconds(sensorEvents.Duration(i)); - autoEvent.Reason = "Auto"; - - sensorEvents = [sensorEvents; autoEvent]; %#ok - end - - sensorEvents = sortrows(sensorEvents); - % Improve estimates of mode changes. sensorEvents = findModeChanges(data, sensorEvents); diff --git a/src/analyze/+mag/@IMAPTestingAnalysis/loadIALiRTData.m b/src/analyze/+mag/@IMAPTestingAnalysis/loadIALiRTData.m index 6260e009..6d7f51b0 100644 --- a/src/analyze/+mag/@IMAPTestingAnalysis/loadIALiRTData.m +++ b/src/analyze/+mag/@IMAPTestingAnalysis/loadIALiRTData.m @@ -90,7 +90,8 @@ function loadIALiRTData(this, primaryMetaData, secondaryMetaData) Duration = double.empty(0, 1), ... Range = double.empty(0, 1), ... Sensor = string.empty(0, 1), ... - Label = string.empty(0, 1))); + Label = string.empty(0, 1), ... + Reason = string.empty(0, 1))); sensorEvents = table2timetable(sensorEvents, RowTimes = "Time"); primaryData.Properties.Events = this.generateEventTable("Primary", sensorEvents, primaryData); diff --git a/src/analyze/+mag/@IMAPTestingAnalysis/loadScienceData.m b/src/analyze/+mag/@IMAPTestingAnalysis/loadScienceData.m index 0470113c..3f7b646b 100644 --- a/src/analyze/+mag/@IMAPTestingAnalysis/loadScienceData.m +++ b/src/analyze/+mag/@IMAPTestingAnalysis/loadScienceData.m @@ -75,7 +75,7 @@ function loadScienceData(this, primaryMetaData, secondaryMetaData) %% Add Mode and Range Change Events - sensorEvents = timetable(this.Results.Events); + sensorEvents = eventtable(this.Results.Events); sensorEvents = sensorEvents(timerange(startTime - seconds(1), endTime, "closed"), :); primaryData.Properties.Events = this.generateEventTable("Primary", sensorEvents, primaryData); diff --git a/src/data/+mag/+event/Event.m b/src/data/+mag/+event/Event.m index d4349544..e06ab9bc 100644 --- a/src/data/+mag/+event/Event.m +++ b/src/data/+mag/+event/Event.m @@ -70,6 +70,36 @@ timetableThis{contains(timetableThis.Label, "Config"), ["PrimaryNormalRate", "SecondaryNormalRate", "PacketNormalFrequency", "PrimaryBurstRate", "SecondaryBurstRate", "PacketBurstFrequency", "Duration"]} = missing(); timetableThis{contains(timetableThis.Label, "Ramp"), "Range"} = missing(); end + + function eventtableThis = eventtable(this) + % EVENTTABLE Convert evnets to eventtable. + + eventtableThis = this.timetable(); + eventtableThis.Reason = repmat("Command", height(eventtableThis), 1); + + locTimedCommand = ~ismissing(eventtableThis.Duration) & (eventtableThis.Duration ~= 0); + + idxTimedCommand = find(locTimedCommand); + idxBaselineCommand = find(~locTimedCommand); + + for i = idxTimedCommand(:)' + + idx = idxBaselineCommand(idxBaselineCommand < i); + + if isempty(idx) + error("Cannot determine initial event."); + end + + autoEvent = eventtableThis(idx(end), :); + autoEvent.Time = eventtableThis.Time(i) + seconds(eventtableThis.Duration(i)); + autoEvent.Reason = "Auto"; + + eventtableThis = [eventtableThis; autoEvent]; %#ok + end + + eventtableThis = sortrows(eventtableThis); + eventtableThis = eventtable(eventtableThis, EventLabelsVariable = "Label"); + end end methods (Abstract, Access = protected) From cced6948f9c0776b28821a59ddaf48d123ac3194 Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Tue, 19 Mar 2024 14:46:58 +0000 Subject: [PATCH 06/14] Add tests for `mag.event.Event`, `mag.event.ModeChange`, `mag.event.RangeChange` and `mag.event.RampMode` --- resources/ReleaseNotes.md | 1 + tests/unit/data/tEvent.m | 257 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 258 insertions(+) create mode 100644 tests/unit/data/tEvent.m diff --git a/resources/ReleaseNotes.md b/resources/ReleaseNotes.md index 82a55952..5e5a867e 100644 --- a/resources/ReleaseNotes.md +++ b/resources/ReleaseNotes.md @@ -3,3 +3,4 @@ - Allow cropping of `mag.Science` with negative duration (filters from the end) - Allow cropping of I-ALiRT with separate filter for primary and secondary - Add conversion method `eventtable` in `mag.event.Event` to simplify logic in science analysis +- Add tests for `mag.event.Event`, `mag.event.ModeChange`, `mag.event.RangeChange` and `mag.event.RampMode` diff --git a/tests/unit/data/tEvent.m b/tests/unit/data/tEvent.m new file mode 100644 index 00000000..1fd521b6 --- /dev/null +++ b/tests/unit/data/tEvent.m @@ -0,0 +1,257 @@ +classdef tEvent < matlab.unittest.TestCase +% TEVENT Unit tests for "mag.event.Event" classes. + + properties (TestParameter) + ModeChangeEventData + end + + methods (Static, TestParameterDefinition) + + function ModeChangeEventData = initializeModeChangeEventData() + + events(1) = mag.event.ModeChange(Mode = "Normal", ... + PrimaryNormalRate = 4, ... + SecondaryNormalRate = 1, ... + PrimaryBurstRate = 128, ... + SecondaryBurstRate = 64, ... + PacketNormalFrequency = 8, ... + PacketBurstFrequency = 2); + events(2) = mag.event.ModeChange(Mode = "Burst", ... + PrimaryNormalRate = 2, ... + SecondaryNormalRate = 2, ... + PrimaryBurstRate = 64, ... + SecondaryBurstRate = 64, ... + PacketNormalFrequency = 8, ... + PacketBurstFrequency = 4); + events(3) = mag.event.ModeChange(Mode = "Config"); + + ModeChangeEventData{1} = struct(Event = events(1), ... + ActivePrimaryRate = 4, ... + ActiveSecondaryRate = 1, ... + ActivePacketFrequency = 8); + ModeChangeEventData{2} = struct(Event = events(2), ... + ActivePrimaryRate = 64, ... + ActiveSecondaryRate = 64, ... + ActivePacketFrequency = 4); + ModeChangeEventData{3} = struct(Event = events(3), ... + ActivePrimaryRate = NaN, ... + ActiveSecondaryRate = NaN, ... + ActivePacketFrequency = NaN); + end + end + + methods (Test) + + % Test that events are sorted based on completion time. + function sort(testCase) + + % Set up. + events = [mag.event.ModeChange(CompleteTimestamp = datetime("today", TimeZone = "UTC")), ... + mag.event.RampMode(CompleteTimestamp = datetime("tomorrow", TimeZone = "UTC")), ... + mag.event.RangeChange(CompleteTimestamp = datetime("yesterday", TimeZone = "UTC"))]; + + expectedEvents = events([3, 1, 2]); + + % Exercise. + sortedEvents = sort(events); + + % Verify. + testCase.verifyEqual(sortedEvents, expectedEvents, "Sorting should return the expected order."); + end + + % Test that "ModeChange" events are converted to "timetable" + % correctly. + function timetable_modeChange(testCase) + + % Set up. + events = testCase.createModeChangeEvents(); + + % Exercise. + tt = events.timetable(); + + % Verify. + testCase.assertClass(tt, "timetable", "Timetable should be of correct class."); + testCase.assertSize(tt, [3, 11], "Timetable should be of correct size."); + + for v = ["Mode", "PrimaryNormalRate", "SecondaryNormalRate", "PacketNormalFrequency", "PrimaryBurstRate", "SecondaryBurstRate", "PacketBurstFrequency", "Duration"] + testCase.verifyEqual(tt.(v)', [events.(v)], compose("Timetable property ""%s"" should match event.", v)); + end + + for v = ["Range", "Sensor"] + testCase.verifyTrue(all(ismissing(tt.(v))), compose("Timetable property ""%s"" should be missing.", v)); + end + + testCase.verifyEqual(tt.Label(1), "Normal (4, 1)", "Label of first event should match expectation."); + testCase.verifyEqual(tt.Label(2), "Burst (128, 128)", "Label of second event should match expectation."); + testCase.verifyEqual(tt.Label(3), "Normal (4, 4)", "Label of third event should match expectation."); + + testCase.verifyEqual(tt.Time', [events(1).CompleteTimestamp, events(2).AcknowledgeTimestamp, events(3).CommandTimestamp], ... + "Event timestamps should match expected ones."); + end + + % Test that "RangeChange" events are converted to "timetable" + % correctly. + function timetable_rangeChange(testCase) + + % Set up. + events = testCase.createRangeChangeEvents(); + + % Exercise. + tt = events.timetable(); + + % Verify. + testCase.assertClass(tt, "timetable", "Timetable should be of correct class."); + testCase.assertSize(tt, [3, 11], "Timetable should be of correct size."); + + for v = ["Range", "Sensor"] + testCase.verifyEqual(tt.(v)', [events.(v)], compose("Timetable property ""%s"" should match event.", v)); + end + + for v = ["Mode", "PrimaryNormalRate", "SecondaryNormalRate", "PacketNormalFrequency", "PrimaryBurstRate", "SecondaryBurstRate", "PacketBurstFrequency", "Duration"] + testCase.verifyTrue(all(ismissing(tt.(v))), compose("Timetable property ""%s"" should be missing.", v)); + end + + testCase.verifyEqual(tt.Label(1), "FOB Range 2", "Label of first event should match expectation."); + testCase.verifyEqual(tt.Label(2), "FIB Range 1", "Label of second event should match expectation."); + testCase.verifyEqual(tt.Label(3), "FOB Range 3", "Label of third event should match expectation."); + + testCase.verifyEqual(tt.Time', [events(1).CompleteTimestamp, events(2).AcknowledgeTimestamp, events(3).CommandTimestamp], ... + "Event timestamps should match expected ones."); + end + + % Test that "RampMode" events are converted to "timetable" + % correctly. + function timetable_rampMode(testCase) + + % Set up. + events = testCase.createRampModeEvents(); + + % Exercise. + tt = events.timetable(); + + % Verify. + testCase.assertClass(tt, "timetable", "Timetable should be of correct class."); + testCase.assertSize(tt, [3, 11], "Timetable should be of correct size."); + + for v = "Sensor" + testCase.verifyEqual(tt.(v)', [events.(v)], compose("Timetable property ""%s"" should match event.", v)); + end + + for v = ["Mode", "PrimaryNormalRate", "SecondaryNormalRate", "PacketNormalFrequency", "PrimaryBurstRate", "SecondaryBurstRate", "PacketBurstFrequency", "Duration", "Range"] + testCase.verifyTrue(all(ismissing(tt.(v))), compose("Timetable property ""%s"" should be missing.", v)); + end + + testCase.verifyEqual(tt.Label(1), "FOB Ramp", "Label of first event should match expectation."); + testCase.verifyEqual(tt.Label(2), "FIB Ramp", "Label of second event should match expectation."); + testCase.verifyEqual(tt.Label(3), "FOB Ramp", "Label of third event should match expectation."); + + testCase.verifyEqual(tt.Time', [events(1).CompleteTimestamp, events(2).AcknowledgeTimestamp, events(3).CommandTimestamp], ... + "Event timestamps should match expected ones."); + end + + % Test that "ModeChange" events are converted to "eventtable" + % correctly. + function eventtable_modeChange(testCase) + + % Set up. + events = testCase.createModeChangeEvents(); + + % Exercise. + et = events.eventtable(); + + % Verify. + testCase.assertClass(et, "eventtable", "Event table should be of correct class."); + testCase.assertSize(et, [4, 12], "Eventtable should be of correct size."); + + for v = ["PrimaryNormalRate", "SecondaryNormalRate", "PacketNormalFrequency", "PrimaryBurstRate", "SecondaryBurstRate", "PacketBurstFrequency"] + testCase.verifyEqual(et{3, v}, events(2).(v), compose("Timetable property ""%s"" should match event.", v)); + end + + for v = ["Range", "Sensor"] + testCase.verifyTrue(ismissing(et{3, v}), compose("Timetable property ""%s"" should be missing.", v)); + end + + testCase.verifyEqual(et.Mode(3), "Normal", "Mode of auto event should match expectation."); + testCase.verifyEqual(et.Duration(3), 0, "Duration of auto event should match expectation."); + testCase.verifyEqual(et.Label(3), "Normal (2, 2)", "Label of auto event should match expectation."); + testCase.verifyEqual(et.Time(3), events(2).AcknowledgeTimestamp + seconds(events(2).Duration), "Auto event timestamps should match expectation."); + end + + % Test that dependent "active" properties of "ModeChange" select + % correct active value. + function modeChange_dependentProperties(testCase, ModeChangeEventData) + + % Exercise and verify. + for v = ["ActivePrimaryRate", "ActiveSecondaryRate", "ActivePacketFrequency"] + testCase.verifyEqual(ModeChangeEventData.Event.(v), ModeChangeEventData.(v), "Event active property ""%s"" should match expectation."); + end + end + end + + methods (Static, Access = private) + + function events = createModeChangeEvents() + + events(1) = mag.event.ModeChange(CompleteTimestamp = datetime("yesterday", TimeZone = "UTC"), ... + Type = 1, SubType = 2, ... + Mode = "Normal", ... + PrimaryNormalRate = 4, ... + SecondaryNormalRate = 1, ... + PrimaryBurstRate = 128, ... + SecondaryBurstRate = 64, ... + PacketNormalFrequency = 8, ... + PacketBurstFrequency = 2); + + events(2) = mag.event.ModeChange(AcknowledgeTimestamp = datetime("today", TimeZone = "UTC"), ... + Type = 3, SubType = 4, ... + Mode = "Burst", ... + PrimaryNormalRate = 2, ... + SecondaryNormalRate = 2, ... + PrimaryBurstRate = 128, ... + SecondaryBurstRate = 128, ... + PacketNormalFrequency = 8, ... + PacketBurstFrequency = 2, ... + Duration = 3600); + + events(3) = mag.event.ModeChange(CommandTimestamp = datetime("tomorrow", TimeZone = "UTC"), ... + Type = 5, SubType = 6, ... + Mode = "Normal", ... + PrimaryNormalRate = 4, ... + SecondaryNormalRate = 4, ... + PrimaryBurstRate = 64, ... + SecondaryBurstRate = 8, ... + PacketNormalFrequency = 8, ... + PacketBurstFrequency = 4); + end + + function events = createRangeChangeEvents() + + events(1) = mag.event.RangeChange(CompleteTimestamp = datetime("yesterday", TimeZone = "UTC"), ... + Type = 1, SubType = 2, ... + Range = 2, Sensor = "FOB"); + + events(2) = mag.event.RangeChange(AcknowledgeTimestamp = datetime("today", TimeZone = "UTC"), ... + Type = 3, SubType = 4, ... + Range = 1, Sensor = "FIB"); + + events(3) = mag.event.RangeChange(CommandTimestamp = datetime("tomorrow", TimeZone = "UTC"), ... + Type = 5, SubType = 6, ... + Range = 3, Sensor = "FOB"); + end + + function events = createRampModeEvents() + + events(1) = mag.event.RampMode(CompleteTimestamp = datetime("yesterday", TimeZone = "UTC"), ... + Type = 1, SubType = 2, ... + Sensor = "FOB"); + + events(2) = mag.event.RampMode(AcknowledgeTimestamp = datetime("today", TimeZone = "UTC"), ... + Type = 3, SubType = 4, ... + Sensor = "FIB"); + + events(3) = mag.event.RampMode(CommandTimestamp = datetime("tomorrow", TimeZone = "UTC"), ... + Type = 5, SubType = 6, ... + Sensor = "FOB"); + end + end +end From f0b433e88f747b375bf63eb5fb03aae0fe19437f Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Tue, 19 Mar 2024 14:47:21 +0000 Subject: [PATCH 07/14] Fix bugs in conversion to `eventtable` for `mag.event.Event`s --- src/data/+mag/+event/Event.m | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/data/+mag/+event/Event.m b/src/data/+mag/+event/Event.m index e06ab9bc..60d3160e 100644 --- a/src/data/+mag/+event/Event.m +++ b/src/data/+mag/+event/Event.m @@ -85,15 +85,20 @@ for i = idxTimedCommand(:)' idx = idxBaselineCommand(idxBaselineCommand < i); + assert(~isempty(idx), "Cannot determine initial event."); - if isempty(idx) - error("Cannot determine initial event."); - end - - autoEvent = eventtableThis(idx(end), :); + autoEvent = eventtableThis(i, :); autoEvent.Time = eventtableThis.Time(i) + seconds(eventtableThis.Duration(i)); + autoEvent.Mode = eventtableThis.Mode(idx(end)); + autoEvent.Duration = 0; autoEvent.Reason = "Auto"; + if isequal(autoEvent.Mode, "Normal") + autoEvent.Label = compose("Normal (%d, %d)", autoEvent.PrimaryNormalRate, autoEvent.SecondaryNormalRate); + else + autoEvent.Label = compose("Burst (%d, %d)", autoEvent.PrimaryBurstRate, autoEvent.SecondaryBurstRate); + end + eventtableThis = [eventtableThis; autoEvent]; %#ok end From a14e590037354437bc7dfb0d0a29f66054ee8fd8 Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Tue, 19 Mar 2024 14:48:46 +0000 Subject: [PATCH 08/14] Update version to 3.5.1 --- .github/workflows/matlab.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/matlab.yml b/.github/workflows/matlab.yml index 837f07b7..51f8b199 100644 --- a/.github/workflows/matlab.yml +++ b/.github/workflows/matlab.yml @@ -38,7 +38,7 @@ jobs: if: github.ref == 'refs/heads/main' needs: test env: - VERSION: "3.5.0" + VERSION: "3.5.1" steps: - name: Check out repository uses: actions/checkout@v3 From a00d6bd8034de52bad20640e4d1f1f818959ee21 Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Tue, 19 Mar 2024 17:16:15 +0000 Subject: [PATCH 09/14] Make `OriginalVersion` get-public but hidden --- src/utility/+mag/+mixin/SaveLoad.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utility/+mag/+mixin/SaveLoad.m b/src/utility/+mag/+mixin/SaveLoad.m index 6b7e78a0..b2fe74b8 100644 --- a/src/utility/+mag/+mixin/SaveLoad.m +++ b/src/utility/+mag/+mixin/SaveLoad.m @@ -7,7 +7,7 @@ Version (1, 1) string end - properties (GetAccess = protected, SetAccess = private) + properties (Hidden, SetAccess = private) % ORIGINALVERSION Original version for save/load compatibility. OriginalVersion (1, 1) string end From 4887ba8f24851f865ac6ee91b11e4df1c0605df1 Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Tue, 19 Mar 2024 17:19:17 +0000 Subject: [PATCH 10/14] Many small improvements to app --- app/DataVisualization.mlapp | Bin 115213 -> 122401 bytes resources/ReleaseNotes.md | 6 ++++++ 2 files changed, 6 insertions(+) diff --git a/app/DataVisualization.mlapp b/app/DataVisualization.mlapp index 121386fedcde20afb53b536c9744eb6fb9127839..2054728556b9d97adb61d78ad3185727fa8766d0 100644 GIT binary patch delta 120754 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 delta 113546 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

U3sxh&C-~0=Gw)Q!Hx7k2 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 Date: Tue, 19 Mar 2024 17:19:33 +0000 Subject: [PATCH 11/14] Update version to 3.6.0 --- .github/workflows/matlab.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/matlab.yml b/.github/workflows/matlab.yml index 51f8b199..7f9ac098 100644 --- a/.github/workflows/matlab.yml +++ b/.github/workflows/matlab.yml @@ -38,7 +38,7 @@ jobs: if: github.ref == 'refs/heads/main' needs: test env: - VERSION: "3.5.1" + VERSION: "3.6.0" steps: - name: Check out repository uses: actions/checkout@v3 From 689127d670fca85bf56ab3fab8a37146f29fff19 Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Wed, 20 Mar 2024 10:40:00 +0000 Subject: [PATCH 12/14] Add fine-grained definitions of quality flags (see `mag.meta.Quality`) --- resources/ReleaseNotes.md | 2 + src/analyze/+mag/+process/Filter.m | 6 +-- src/analyze/+mag/+process/Separate.m | 7 +++ .../IMAPTestingAnalysis.m | 4 +- .../@IMAPTestingAnalysis/loadIALiRTData.m | 4 +- .../@IMAPTestingAnalysis/loadScienceData.m | 4 +- src/data/+mag/+meta/Quality.m | 29 +++++++++++++ src/data/+mag/Science.m | 3 +- src/visualize/+mag/+graphics/+view/Field.m | 8 ++-- src/visualize/+mag/+graphics/+view/IALiRT.m | 14 +++--- tests/unit/analyze/tSeparate.m | 17 ++++++++ tests/unit/data/tQuality.m | 43 +++++++++++++++++++ 12 files changed, 119 insertions(+), 22 deletions(-) create mode 100644 src/data/+mag/+meta/Quality.m create mode 100644 tests/unit/data/tQuality.m diff --git a/resources/ReleaseNotes.md b/resources/ReleaseNotes.md index 3a8115b5..cbe43126 100644 --- a/resources/ReleaseNotes.md +++ b/resources/ReleaseNotes.md @@ -6,6 +6,8 @@ # Software +- Add fine-grained definitions of quality flags (see `mag.meta.Quality`) +- Update previous uses of quality flag - Allow cropping of `mag.Science` with negative duration (filters from the end) - Allow cropping of I-ALiRT with separate filter for primary and secondary - Add conversion method `eventtable` in `mag.event.Event` to simplify logic in science analysis diff --git a/src/analyze/+mag/+process/Filter.m b/src/analyze/+mag/+process/Filter.m index 5a79221d..04f6a2eb 100644 --- a/src/analyze/+mag/+process/Filter.m +++ b/src/analyze/+mag/+process/Filter.m @@ -111,7 +111,7 @@ if (nnz(locConfig) == 2) && any(contains([events.Label(idxConfig(1):idxConfig(end))], "Ramp")) configRange = timerange(events.Time(idxConfig(1)), events.Time(idxConfig(end)), "closed"); - data{configRange, "quality"} = false; + data{configRange, "quality"} = mag.meta.Quality.Bad; end end end @@ -135,7 +135,7 @@ for t = times if isa(range, "duration") - data{timerange(t + range(1), t + range(2), "closed"), "quality"} = false; + data{timerange(t + range(1), t + range(2), "closed"), "quality"} = mag.meta.Quality.Bad; else tEvent = data(withtol(t, dt), :).Properties.RowTimes; @@ -155,7 +155,7 @@ idxRemove = idxTime + r; idxRemove(idxRemove < 1) = []; - data{idxRemove, "quality"} = false; + data{idxRemove, "quality"} = mag.meta.Quality.Bad; end end end diff --git a/src/analyze/+mag/+process/Separate.m b/src/analyze/+mag/+process/Separate.m index 45adef62..4b5f99ad 100644 --- a/src/analyze/+mag/+process/Separate.m +++ b/src/analyze/+mag/+process/Separate.m @@ -11,6 +11,8 @@ properties % DISCRIMINATIONVARIABLE Name of variable to increase in row. DiscriminationVariable (1, 1) string + % QUALITYVARIABLE Name of quality variable. + QualityVariable string {mustBeScalarOrEmpty} % VARIABLES Variables to be set to missing. Variables (1, :) string end @@ -57,9 +59,14 @@ end finalRow = data(end, :); + finalRow.(this.DiscriminationVariable) = finalRow.(this.DiscriminationVariable) + eps(); finalRow{:, variables} = missing(); + if ~isempty(this.QualityVariable) + finalRow.(this.QualityVariable) = mag.meta.Quality.Artificial; + end + data = [data; finalRow]; end end diff --git a/src/analyze/+mag/@IMAPTestingAnalysis/IMAPTestingAnalysis.m b/src/analyze/+mag/@IMAPTestingAnalysis/IMAPTestingAnalysis.m index e204f1bc..7c086a7c 100644 --- a/src/analyze/+mag/@IMAPTestingAnalysis/IMAPTestingAnalysis.m +++ b/src/analyze/+mag/@IMAPTestingAnalysis/IMAPTestingAnalysis.m @@ -28,7 +28,7 @@ mag.process.Timestamp(), ... mag.process.DateTime(), ... mag.process.SignedInteger(CompressionVariable = "compression", Variables = ["x", "y", "z"]), ... - mag.process.Separate(DiscriminationVariable = "t", Variables = ["x", "y", "z"])] + mag.process.Separate(DiscriminationVariable = "t", QualityVariable = "quality", Variables = ["x", "y", "z"])] % WHOLEDATAPROCESSING Steps needed to process all of imported data. WholeDataProcessing (1, :) mag.process.Step = [ ... mag.process.Sort(), ... @@ -54,7 +54,7 @@ HKProcessing (1, :) mag.process.Step = [ ... mag.process.DateTime(), ... mag.process.Units(), ... - mag.process.Separate(DiscriminationVariable = "t", Variables = "*")] + mag.process.Separate(DiscriminationVariable = "t", QualityVariable = string.empty(), Variables = "*")] end properties (Dependent) diff --git a/src/analyze/+mag/@IMAPTestingAnalysis/loadIALiRTData.m b/src/analyze/+mag/@IMAPTestingAnalysis/loadIALiRTData.m index 6d7f51b0..3b12dc7f 100644 --- a/src/analyze/+mag/@IMAPTestingAnalysis/loadIALiRTData.m +++ b/src/analyze/+mag/@IMAPTestingAnalysis/loadIALiRTData.m @@ -35,8 +35,8 @@ function loadIALiRTData(this, primaryMetaData, secondaryMetaData) primary.compression = false(height(primary), 1); secondary.compression = false(height(secondary), 1); - primary.quality = true(height(primary), 1); - secondary.quality = true(height(secondary), 1); + primary.quality = repmat(mag.meta.Quality.Regular, height(primary), 1); + secondary.quality = repmat(mag.meta.Quality.Regular, height(secondary), 1); % Current file meta data. pmd = primaryMetaData.copy(); diff --git a/src/analyze/+mag/@IMAPTestingAnalysis/loadScienceData.m b/src/analyze/+mag/@IMAPTestingAnalysis/loadScienceData.m index 3f7b646b..ea3922dc 100644 --- a/src/analyze/+mag/@IMAPTestingAnalysis/loadScienceData.m +++ b/src/analyze/+mag/@IMAPTestingAnalysis/loadScienceData.m @@ -29,8 +29,8 @@ function loadScienceData(this, primaryMetaData, secondaryMetaData) primary.compression = false(height(primary), 1); secondary.compression = false(height(secondary), 1); - primary.quality = true(height(primary), 1); - secondary.quality = true(height(secondary), 1); + primary.quality = repmat(mag.meta.Quality.Regular, height(primary), 1); + secondary.quality = repmat(mag.meta.Quality.Regular, height(secondary), 1); % Current file meta data. [mode, primaryFrequency, secondaryFrequency, packetFrequency] = extractFileMetaData(this.ScienceFileNames(i)); diff --git a/src/data/+mag/+meta/Quality.m b/src/data/+mag/+meta/Quality.m new file mode 100644 index 00000000..666361fd --- /dev/null +++ b/src/data/+mag/+meta/Quality.m @@ -0,0 +1,29 @@ +classdef Quality < uint8 +% QUALITY Enumeration for quality type. Used to remove data for plotting. + + enumeration + % BAD Data point of bad quality (do not plot). + Bad (0) + % ARTIFICIAL Artificial data point. + Artificial (1) + % REGULAR Regular data point quality. + Regular (2) + end + + methods + + function value = isPlottable(this) + % ISPLOTTABLE Determine whether data point can be plotted. + % Excludes data points of bad quality and artificial data. + + value = this >= mag.meta.Quality.Artificial; + end + + function value = isScience(this) + % ISSCIENCE Determine whether data point is science. + % Excludes bad science and artificial data. + + value = this == mag.meta.Quality.Regular; + end + end +end diff --git a/src/data/+mag/Science.m b/src/data/+mag/Science.m index 9fc2bba5..13342a93 100644 --- a/src/data/+mag/Science.m +++ b/src/data/+mag/Science.m @@ -26,8 +26,7 @@ % "true" stands for compressed. Compression (:, 1) logical % QUALITY Quality flag denoting whether data is of high quality. - % "true" stands for high quality. - Quality (:, 1) logical + Quality (:, 1) mag.meta.Quality % EVENTS Events detected. Events eventtable end diff --git a/src/visualize/+mag/+graphics/+view/Field.m b/src/visualize/+mag/+graphics/+view/Field.m index 0aa10d00..ffa459d7 100644 --- a/src/visualize/+mag/+graphics/+view/Field.m +++ b/src/visualize/+mag/+graphics/+view/Field.m @@ -35,8 +35,8 @@ function visualize(this) if isempty(hk) || isempty(hk.Data) this.Figures = mag.graphics.visualize( ... - primary, mag.graphics.style.Stackedplot(Title = this.getFieldTitle(primary), YLabels = ["x [nT]", "y [nT]", "z [nT]", "|B| [nT]"], Layout = [3, 1], Charts = mag.graphics.chart.Stackedplot(YVariables = ["X", "Y", "Z", "B"], Filter = primary.Quality)), ... - secondary, mag.graphics.style.Stackedplot(Title = this.getFieldTitle(secondary), YLabels = ["x [nT]", "y [nT]", "z [nT]", "|B| [nT]"], YAxisLocation = "right", Layout = [3, 1], Charts = mag.graphics.chart.Stackedplot(YVariables = ["X", "Y", "Z", "B"], Filter = secondary.Quality)), ... + primary, mag.graphics.style.Stackedplot(Title = this.getFieldTitle(primary), YLabels = ["x [nT]", "y [nT]", "z [nT]", "|B| [nT]"], Layout = [3, 1], Charts = mag.graphics.chart.Stackedplot(YVariables = ["X", "Y", "Z", "B"], Filter = primary.Quality.isPlottable())), ... + secondary, mag.graphics.style.Stackedplot(Title = this.getFieldTitle(secondary), YLabels = ["x [nT]", "y [nT]", "z [nT]", "|B| [nT]"], YAxisLocation = "right", Layout = [3, 1], Charts = mag.graphics.chart.Stackedplot(YVariables = ["X", "Y", "Z", "B"], Filter = secondary.Quality.isPlottable())), ... eventData{:}, ... Title = this.getFigureTitle(primary, secondary), ... Name = this.getFigureName(primary, secondary), ... @@ -46,8 +46,8 @@ function visualize(this) else this.Figures = mag.graphics.visualize( ... - primary, mag.graphics.style.Stackedplot(Title = this.getFieldTitle(primary), YLabels = ["x [nT]", "y [nT]", "z [nT]", "|B| [nT]"], Layout = [3, 1], Charts = mag.graphics.chart.Stackedplot(YVariables = ["X", "Y", "Z", "B"], Filter = primary.Quality)), ... - secondary, mag.graphics.style.Stackedplot(Title = this.getFieldTitle(secondary), YLabels = ["x [nT]", "y [nT]", "z [nT]", "|B| [nT]"], YAxisLocation = "right", Layout = [3, 1], Charts = mag.graphics.chart.Stackedplot(YVariables = ["X", "Y", "Z", "B"], Filter = secondary.Quality)), ... + primary, mag.graphics.style.Stackedplot(Title = this.getFieldTitle(primary), YLabels = ["x [nT]", "y [nT]", "z [nT]", "|B| [nT]"], Layout = [3, 1], Charts = mag.graphics.chart.Stackedplot(YVariables = ["X", "Y", "Z", "B"], Filter = primary.Quality.isPlottable())), ... + secondary, mag.graphics.style.Stackedplot(Title = this.getFieldTitle(secondary), YLabels = ["x [nT]", "y [nT]", "z [nT]", "|B| [nT]"], YAxisLocation = "right", Layout = [3, 1], Charts = mag.graphics.chart.Stackedplot(YVariables = ["X", "Y", "Z", "B"], Filter = secondary.Quality.isPlottable())), ... eventData{:}, ... hk, [mag.graphics.style.Default(Title = compose("%s & ICU Temperatures", primarySensor), YLabel = this.TLabel, Legend = [primarySensor, "ICU"], Charts = mag.graphics.chart.Plot(YVariables = [primarySensor, "ICU"] + "Temperature")), ... mag.graphics.style.Default(Title = compose("%s & ICU Temperatures", secondarySensor), YLabel = this.TLabel, YAxisLocation = "right", Legend = [secondarySensor, "ICU"], Charts = mag.graphics.chart.Plot(YVariables = [secondarySensor, "ICU"] + "Temperature"))], ... diff --git a/src/visualize/+mag/+graphics/+view/IALiRT.m b/src/visualize/+mag/+graphics/+view/IALiRT.m index 6ef2f3d0..8de7d4b8 100644 --- a/src/visualize/+mag/+graphics/+view/IALiRT.m +++ b/src/visualize/+mag/+graphics/+view/IALiRT.m @@ -24,8 +24,8 @@ function visualize(this) % Plot only I-ALiRT. this.Figures(1) = mag.graphics.visualize( ... - primaryIALiRT, mag.graphics.style.Stackedplot(Title = this.getFieldTitle(primaryIALiRT), YLabels = ["x [nT]", "y [nT]", "z [nT]", "|B| [nT]"], Charts = mag.graphics.chart.Stackedplot(YVariables = ["X", "Y", "Z", "B"], Filter = primaryIALiRT.Quality)), ... - secondaryIALiRT, mag.graphics.style.Stackedplot(Title = this.getFieldTitle(secondaryIALiRT), YLabels = ["x [nT]", "y [nT]", "z [nT]", "|B| [nT]"], YAxisLocation = "right", Charts = mag.graphics.chart.Stackedplot(YVariables = ["X", "Y", "Z", "B"], Filter = secondaryIALiRT.Quality)), ... + primaryIALiRT, mag.graphics.style.Stackedplot(Title = this.getFieldTitle(primaryIALiRT), YLabels = ["x [nT]", "y [nT]", "z [nT]", "|B| [nT]"], Charts = mag.graphics.chart.Stackedplot(YVariables = ["X", "Y", "Z", "B"], Filter = primaryIALiRT.Quality.isPlottable())), ... + secondaryIALiRT, mag.graphics.style.Stackedplot(Title = this.getFieldTitle(secondaryIALiRT), YLabels = ["x [nT]", "y [nT]", "z [nT]", "|B| [nT]"], YAxisLocation = "right", Charts = mag.graphics.chart.Stackedplot(YVariables = ["X", "Y", "Z", "B"], Filter = secondaryIALiRT.Quality.isPlottable())), ... Title = this.getFigureTitle(primaryIALiRT, secondaryIALiRT), ... Name = this.getFigureName(primaryIALiRT, secondaryIALiRT), ... Arrangement = [1, 2], ... @@ -51,10 +51,10 @@ function visualize(this) WindowState = "maximized"); % Plot I-ALiRT and science (closest vector). - primaryComparison = synchronize(timetable(primaryIALiRT.Time, primaryIALiRT.X, primaryIALiRT.Y, primaryIALiRT.Z, primaryIALiRT.Quality, VariableNames = ["xi", "yi", "zi", "qi"]), ... - timetable(primaryScience.Time, primaryScience.X, primaryScience.Y, primaryScience.Z, primaryScience.Quality, VariableNames = ["xs", "ys", "zs", "qs"]), "first", "nearest"); - secondaryComparison = synchronize(timetable(secondaryIALiRT.Time, secondaryIALiRT.X, secondaryIALiRT.Y, secondaryIALiRT.Z, secondaryIALiRT.Quality, VariableNames = ["xi", "yi", "zi", "qi"]), ... - timetable(secondaryScience.Time, secondaryScience.X, secondaryScience.Y, secondaryScience.Z, secondaryScience.Quality, VariableNames = ["xs", "ys", "zs", "qs"]), "first", "nearest"); + primaryComparison = synchronize(timetable(primaryIALiRT.Time, primaryIALiRT.X, primaryIALiRT.Y, primaryIALiRT.Z, primaryIALiRT.Quality.isPlottable(), VariableNames = ["xi", "yi", "zi", "qi"]), ... + timetable(primaryScience.Time, primaryScience.X, primaryScience.Y, primaryScience.Z, primaryScience.Quality.isPlottable(), VariableNames = ["xs", "ys", "zs", "qs"]), "first", "nearest"); + secondaryComparison = synchronize(timetable(secondaryIALiRT.Time, secondaryIALiRT.X, secondaryIALiRT.Y, secondaryIALiRT.Z, secondaryIALiRT.Quality.isPlottable(), VariableNames = ["xi", "yi", "zi", "qi"]), ... + timetable(secondaryScience.Time, secondaryScience.X, secondaryScience.Y, secondaryScience.Z, secondaryScience.Quality.isPlottable(), VariableNames = ["xs", "ys", "zs", "qs"]), "first", "nearest"); primaryGraphs = this.generateComparisonGraph(primaryIALiRT, primaryComparison); @@ -102,7 +102,7 @@ function visualize(this) function overlayGraphs = generateOverlayGraph(this, scienceData, iALiRTData) - combinedData = outerjoin(scienceData.Data(scienceData.Quality, :), iALiRTData.Data(iALiRTData.Quality, :)); + combinedData = outerjoin(scienceData.Data(scienceData.Quality.isPlottable(), :), iALiRTData.Data(iALiRTData.Quality.isPlottable(), :)); overlayGraphs = {combinedData, ... [mag.graphics.style.Default(Title = this.getFieldTitle(iALiRTData), YLabel = "x [nT]", Charts = [mag.graphics.chart.Plot(YVariables = "x_left", Filter = ~ismissing(combinedData.x_left)), mag.graphics.chart.Scatter(YVariables = "x_right", Filter = ~ismissing(combinedData.x_right), Marker = "x")]), ... diff --git a/tests/unit/analyze/tSeparate.m b/tests/unit/analyze/tSeparate.m index df9b5f43..7c34330c 100644 --- a/tests/unit/analyze/tSeparate.m +++ b/tests/unit/analyze/tSeparate.m @@ -48,6 +48,23 @@ function allVariables(testCase) testCase.verifyGreaterThanOrEqual(data{end, "Discriminator"}, processedData{end, "Discriminator"}, "Discrimination variable should be increased."); end + + % Test that quality flag is set to "Artificial" if quality variable + % name is provided. + function qualityFlag(testCase) + + % Set up. + data = testCase.createTestData(); + data.Quality = repmat(mag.meta.Quality.Regular, height(data), 1); + + % Exercise. + separateStep = mag.process.Separate(DiscriminationVariable = "Discriminator", QualityVariable = "Quality", Variables = ["Doubles", "Strings"]); + processedData = separateStep.apply(data); + + % Verify. + testCase.assertSize(processedData, [height(data) + 1, width(data)], "Separation row should have been added."); + testCase.verifyEqual(processedData{end, "Quality"}, mag.meta.Quality.Artificial, "Quality flag should be set."); + end end methods (Static, Access = protected) diff --git a/tests/unit/data/tQuality.m b/tests/unit/data/tQuality.m new file mode 100644 index 00000000..43e845a4 --- /dev/null +++ b/tests/unit/data/tQuality.m @@ -0,0 +1,43 @@ +classdef tQuality < matlab.unittest.TestCase +% TQUALITY Unit tests for "mag.meta.Quality" enumeration. + + methods (Test) + + % Test that "isPlottable" method returns the correct value. + function isPlottable(testCase) + + % Set up. + qualityFlags = testCase.createTestValues(); + + expectedValues = [true, false, true, true, true, false]; + + % Exercise. + actualValues = isPlottable(qualityFlags); + + % Verify. + testCase.verifyEqual(actualValues, expectedValues, "Plottable values should match expectation."); + end + + % Test that "isScience" method returns the correct value. + function isScience(testCase) + + % Set up. + qualityFlags = testCase.createTestValues(); + + expectedValues = [false, false, true, false, true, false]; + + % Exercise. + actualValues = isScience(qualityFlags); + + % Verify. + testCase.verifyEqual(actualValues, expectedValues, "Science values should match expectation."); + end + end + + methods (Static, Access = private) + + function qualityFlags = createTestValues() + qualityFlags = [mag.meta.Quality.Artificial, mag.meta.Quality.Bad, mag.meta.Quality.Regular, mag.meta.Quality.Artificial, mag.meta.Quality.Regular, mag.meta.Quality.Bad]; + end + end +end From 4af3aa2733f967f63e33936424b9c56582782515 Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Wed, 20 Mar 2024 10:51:22 +0000 Subject: [PATCH 13/14] Derivative of `mag.TimeSeries` variables now has missing value as first element --- resources/ReleaseNotes.md | 1 + src/data/+mag/TimeSeries.m | 2 +- tests/unit/data/tScience.m | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/resources/ReleaseNotes.md b/resources/ReleaseNotes.md index cbe43126..29b78167 100644 --- a/resources/ReleaseNotes.md +++ b/resources/ReleaseNotes.md @@ -11,4 +11,5 @@ - Allow cropping of `mag.Science` with negative duration (filters from the end) - Allow cropping of I-ALiRT with separate filter for primary and secondary - Add conversion method `eventtable` in `mag.event.Event` to simplify logic in science analysis +- Derivative of `mag.TimeSeries` variables now has missing value as first element instead of last - Add tests for `mag.event.Event`, `mag.event.ModeChange`, `mag.event.RangeChange` and `mag.event.RampMode` diff --git a/src/data/+mag/TimeSeries.m b/src/data/+mag/TimeSeries.m index 0dcd520a..82b76558 100644 --- a/src/data/+mag/TimeSeries.m +++ b/src/data/+mag/TimeSeries.m @@ -51,7 +51,7 @@ if isempty(x) dx = diff(x); else - dx = vertcat(diff(x), missing()); + dx = vertcat(missing(), diff(x)); end end end diff --git a/tests/unit/data/tScience.m b/tests/unit/data/tScience.m index f46cd63f..103ebbd9 100644 --- a/tests/unit/data/tScience.m +++ b/tests/unit/data/tScience.m @@ -69,8 +69,8 @@ function derivative_nonEmpty(testCase, DerivativeVariable) actualDerivative = science.(DerivativeVariable); % Verify. - testCase.verifyEqual(actualDerivative(1:end-1), expectedDerivative, "Derivative should match expected value."); - testCase.verifyTrue(ismissing(actualDerivative(end)), "Last element in derivative should be missing."); + testCase.verifyEqual(actualDerivative(2:end), expectedDerivative, "Derivative should match expected value."); + testCase.verifyTrue(ismissing(actualDerivative(1)), "First element in derivative should be missing."); end % Test that "crop" method crops data based on a positive "duration" From 277e57eea219423246487046b79d9b2593bd261f Mon Sep 17 00:00:00 2001 From: mfacchinelli Date: Wed, 20 Mar 2024 11:02:07 +0000 Subject: [PATCH 14/14] Delete unused processing steps --- resources/ReleaseNotes.md | 1 + src/analyze/+mag/+process/Derivative.m | 57 ------------------------- src/analyze/+mag/+process/Export.m | 56 ------------------------ src/analyze/+mag/+process/Magnitude.m | 59 -------------------------- tests/unit/analyze/tComputeMagnitude.m | 23 ---------- 5 files changed, 1 insertion(+), 195 deletions(-) delete mode 100644 src/analyze/+mag/+process/Derivative.m delete mode 100644 src/analyze/+mag/+process/Export.m delete mode 100644 src/analyze/+mag/+process/Magnitude.m delete mode 100644 tests/unit/analyze/tComputeMagnitude.m diff --git a/resources/ReleaseNotes.md b/resources/ReleaseNotes.md index 29b78167..2f3dd0f9 100644 --- a/resources/ReleaseNotes.md +++ b/resources/ReleaseNotes.md @@ -12,4 +12,5 @@ - Allow cropping of I-ALiRT with separate filter for primary and secondary - Add conversion method `eventtable` in `mag.event.Event` to simplify logic in science analysis - Derivative of `mag.TimeSeries` variables now has missing value as first element instead of last +- Delete unused processing steps - Add tests for `mag.event.Event`, `mag.event.ModeChange`, `mag.event.RangeChange` and `mag.event.RampMode` diff --git a/src/analyze/+mag/+process/Derivative.m b/src/analyze/+mag/+process/Derivative.m deleted file mode 100644 index 7ae47b06..00000000 --- a/src/analyze/+mag/+process/Derivative.m +++ /dev/null @@ -1,57 +0,0 @@ -classdef Derivative < mag.process.Step -% DERIVATIVE Approximate derivative of variable with "diff". - - properties (Dependent) - Name - Description - DetailedDescription - end - - properties - % VARIABLES Variables to compute derivative of. - Variables (1, :) string - % ORDER Derivative order. - Order (1, 1) double = 1 - % PADDING Where padding should be added. - Padding (1, 1) string {mustBeMember(Padding, ["pre", "post"])} = "post" - end - - methods - - function this = Derivative(options) - - arguments - options.?mag.process.Derivative - end - - this.assignProperties(options); - end - - function value = get.Name(~) - value = "Derivative Caluclation"; - end - - function value = get.Description(this) - value = "Compute the derivative of " + join(compose("""%s""", this.Variables), ", ") + " variables."; - end - - function value = get.DetailedDescription(this) - - value = this.Description + " Derivatives are stored as variables with the same name, " + ... - "preceded by prefix ""d""."; - end - - function data = apply(this, data, ~) - - arguments - this - data timetable - ~ - end - - for v = this.Variables - data.("d" + v) = padarray(diff(data.(v), this.Order), [this.Order, 0], NaN, this.Padding); - end - end - end -end diff --git a/src/analyze/+mag/+process/Export.m b/src/analyze/+mag/+process/Export.m deleted file mode 100644 index 755fdc1e..00000000 --- a/src/analyze/+mag/+process/Export.m +++ /dev/null @@ -1,56 +0,0 @@ -classdef Export < mag.process.Step -% EXPORT Export data with desired format during processing. -% -% Export sample data in between or at the end of the processing pipeline. -% Can be used to evaluate how data evolves during processing. - - properties (Dependent) - Name - Description - DetailedDescription - end - - properties - % EXPORTSTRATEGY Strategy providing format of exported data. - ExportStrategy (1, 1) mag.io.Type = mag.io.MAT() - % EXPORTFORMAT Export format for data. - ExportFormat (1, 1) mag.io.format.Data = mag.io.format.ScienceMAT() - % EXPORTNAMEFORMAT Function returning name of export file, based on - % meta data. - ExportNameFormat (1, 1) function_handle = @(metaData) "export" - end - - methods - - function this = Export(options) - - arguments - options.?mag.process.Export - end - - this.assignProperties(options); - end - - function value = get.Name(~) - value = "Export Data"; - end - - function value = get.Description(this) - value = "Export data to """ + this.ExportStrategy.Extension + """ format."; - end - - function value = get.DetailedDescription(this) - - value = this.Description + " Exported data can be used to " + ... - "analyze partial results during through the processing pipeline."; - end - - function data = apply(this, data, metaData) - - exportedData = this.ExportFormat.formatForExport(data, metaData); - - this.ExportStrategy.ExportFileName = this.ExportNameFormat(metaData); - this.ExportStrategy.export(exportedData); - end - end -end diff --git a/src/analyze/+mag/+process/Magnitude.m b/src/analyze/+mag/+process/Magnitude.m deleted file mode 100644 index fca8aacb..00000000 --- a/src/analyze/+mag/+process/Magnitude.m +++ /dev/null @@ -1,59 +0,0 @@ -classdef Magnitude < mag.process.Step -% MAGNITUDE Compute magnitude of 3-axis components. - - properties (Dependent) - Name - Description - DetailedDescription - end - - properties - % VARIABLES Variables to compute magnitude for. - Variables (1, :) string = ["x", "y", "z"] - end - - methods - - function this = Magnitude(options) - - arguments - options.?mag.process.Magnitude - end - - this.assignProperties(options); - end - - function value = get.Name(~) - value = "Compute Magnitude"; - end - - function value = get.Description(this) - value = "Compute magnitude of " + join(compose("""%s""", this.Variables), ", ") + " variables."; - end - - function value = get.DetailedDescription(this) - value = this.Description; - end - - function data = apply(this, data, ~) - data.B = this.computeMagnitude(data{:, this.Variables}); - end - end - - methods (Hidden) - - function magnitude = computeMagnitude(~, data) - - arguments (Input) - ~ - data (:, 3) double - end - - arguments (Output) - magnitude (:, 1) double - end - - magnitude = vecnorm(data, 2, 2); - end - end -end diff --git a/tests/unit/analyze/tComputeMagnitude.m b/tests/unit/analyze/tComputeMagnitude.m deleted file mode 100644 index 59a76156..00000000 --- a/tests/unit/analyze/tComputeMagnitude.m +++ /dev/null @@ -1,23 +0,0 @@ -classdef tComputeMagnitude < MAGAnalysisTestCase -% TCOMPUTEMAGNITUDE Unit tests for "computeMagnitude" function. - - properties (TestParameter) - Vector = {[0, 0, 0], [-1, -2, 3], [1, 2, 3; 4, 5, -6]} - Magnitude = {0, vecnorm([-1, -2, 3], 2, 2), vecnorm([1, 2, 3; 4, 5, -6], 2, 2)} - end - - methods (Test, ParameterCombination = "sequential") - - function computeMagnitude(testCase, Vector, Magnitude) - - % Set up. - magnitudeStep = mag.process.Magnitude(); - - % Exercise. - absoluteValue = magnitudeStep.computeMagnitude(Vector); - - % Verify. - testCase.verifyEqual(absoluteValue, Magnitude, "Magnitude of vector should match expectation."); - end - end -end