Skip to content
Snippets Groups Projects
Commit 6d8d7044 authored by leprob001's avatar leprob001
Browse files

Bugfix, the launch position TOA is now being returned as separate parameter to...

Bugfix, the launch position TOA is now being returned as separate parameter to not disturb the program.
parent 53935457
No related branches found
No related tags found
No related merge requests found
172
\ No newline at end of file
173
\ No newline at end of file
......@@ -27,7 +27,7 @@ for o = 1:length(fnames)
% get soundspeed
soundvelocity = artoa.controller.selectSoundspeed();
[gpsDates, predictedToas] = artoa.toa.predictFromGps( ...
[gpsDates, predictedToas, launchDateToa] = artoa.toa.predictFromGps( ...
artoaDataInput.rfb, artoaWorkspace.filteredSoundsources.(fnames{o}), ...
soundvelocity{fnames{o}, 1}, ...
artoa.data.getMember(artoaDataInput, {'ini', 'leapseconds'}) ...
......@@ -53,6 +53,12 @@ for o = 1:length(fnames)
drift, ...
floor(gpsDates - soundSourceBegin) ...
);
% add offset and drift to launch toa
launchDateToa(2) = artoa.toa.addDrift( ...
launchDateToa(2), ...
offset, ...
drift ...
);
end
% remove gps dates that are past end mission of sound source
......@@ -68,6 +74,7 @@ for o = 1:length(fnames)
% save to workspace
artoaWorkspace.editTimeOfArrival.satToa.(fnames{o}).gpsDate = gpsDates;
artoaWorkspace.editTimeOfArrival.satToa.(fnames{o}).gpsToa = predictedToas;
artoaWorkspace.editTimeOfArrival.satToa.(fnames{o}).gpsLaunchDateToa = launchDateToa;
end
......
......@@ -32,8 +32,8 @@ if isfield(artoaGui.editTimeOfArrival, 'axesToaFromGps') ...
% update scatter
artoaGui.editTimeOfArrival.scatterToaFromGps.(fnames{o}).MarkerEdgeColor = soundsourceColor;
artoaGui.editTimeOfArrival.scatterToaFromGps.(fnames{o}).XData = xData(2:end)';
artoaGui.editTimeOfArrival.scatterToaFromGps.(fnames{o}).YData = yData(2:end)';
artoaGui.editTimeOfArrival.scatterToaFromGps.(fnames{o}).XData = xData';
artoaGui.editTimeOfArrival.scatterToaFromGps.(fnames{o}).YData = yData';
% only update the color of the launch position
artoaGui.editTimeOfArrival.textToaFromGps.(fnames{o})(1).Color = soundsourceColor;
......@@ -84,12 +84,13 @@ for o = 1:length(fnames)
% get values, first value is always the launch position toa
xData = artoaWorkspace.editTimeOfArrival.satToa.(fnames{o}).gpsDate;
yData = artoaWorkspace.editTimeOfArrival.satToa.(fnames{o}).gpsToa;
gpsLaunchDateToa = artoaWorkspace.editTimeOfArrival.satToa.(fnames{o}).gpsLaunchDateToa;
% plot launch position toa
artoaGui.editTimeOfArrival.scatterLaunchToa.(fnames{o}) = scatter( ...
artoaGui.editTimeOfArrival.axesToaFromGps, ...
xData(1), ...
yData(1), ...
gpsLaunchDateToa(1), ...
gpsLaunchDateToa(2), ...
50, ...
'MarkerFaceColor', soundsourceColor, ...
'MarkerEdgeColor', soundsourceColor ...
......@@ -98,23 +99,21 @@ for o = 1:length(fnames)
% plot TOAs
artoaGui.editTimeOfArrival.scatterToaFromGps.(fnames{o}) = scatter( ...
artoaGui.editTimeOfArrival.axesToaFromGps, ...
xData(2:end), ...
yData(2:end), ...
xData, ...
yData, ...
50, ...
'MarkerEdgeColor', soundsourceColor ...
);
% filter NaN values for text display
tmpIndex = ~isnan(xData(2:end));
tmpNanFilteredXData = xData(2:end);
tmpNanFilteredYData = yData(2:end);
tmpNanFilteredXData = tmpNanFilteredXData(tmpIndex);
tmpNanFilteredYData = tmpNanFilteredYData(tmpIndex);
tmpIndex = ~isnan(xData);
tmpNanFilteredXData = xData(tmpIndex);
tmpNanFilteredYData = yData(tmpIndex);
% use only every third gps date for text
artoaGui.editTimeOfArrival.textToaFromGps.(fnames{o}) = text( ...
artoaGui.editTimeOfArrival.axesToaFromGps, ...
[xData(1); tmpNanFilteredXData(1:3:end)], ...
[yData(1); tmpNanFilteredYData(1:3:end)], ...
[gpsLaunchDateToa(1); tmpNanFilteredXData(1:3:end)], ...
[gpsLaunchDateToa(2); tmpNanFilteredYData(1:3:end)], ...
[' ' fnames{o}], ...
'HorizontalAlignment', 'left', ...
'VerticalAlignment', 'top', ...
......
......@@ -32,7 +32,7 @@ for i = 1:length(fnames)
soundvelocity = pSoundvelocity{1, 1};
end
[date, toa] = artoa.toa.predictFromGps( ...
[date, toa, ~] = artoa.toa.predictFromGps( ...
pRfb, ...
pSoundsources.(fnames{i}), ...
soundvelocity, ...
......
function [gpsRafosDates, predictedToa] = predictFromGps(pRfb, pSoundSource, pSoundspeed, pLeapsecondsMatrix)
function [gpsRafosDates, predictedToa, launchDateToa] = predictFromGps(pRfb, pSoundSource, pSoundspeed, pLeapsecondsMatrix)
%ESTIMATETOAFROMGPS Summary of this function goes here
% Detailed explanation goes here
......@@ -48,27 +48,28 @@ clear maxTime minTime indicesInRange;
%% Predict toa for every gps position
gpsMeasurementCount = size(gpsData, 1) + 1;
gpsMeasurementCount = size(gpsData, 1);
predictedToa = NaN(gpsMeasurementCount, 1);
gpsRafosDates = NaN(gpsMeasurementCount, 1);
launchDateToa = NaN(2, 1);
if (isempty(windowStartTime))
return;
end
% predict launch position
predictedToa(1) = predictToa(pRfb.FLOAT.launchpos);
gpsRafosDates(1) = artoa.convert.dmy2rd( ...
launchDateToa(1) = artoa.convert.dmy2rd( ...
pRfb.FLOAT.launchtime(3), ...
pRfb.FLOAT.launchtime(2), ...
pRfb.FLOAT.launchtime(1) ...
);
launchDateToa(2) = predictToa(pRfb.FLOAT.launchpos);
for o = 2:gpsMeasurementCount
currentGpsPosition = [gpsData(o - 1, pRfb.SAT_FORMAT.lat_sat), gpsData(o - 1, pRfb.SAT_FORMAT.lon_sat)];
for o = 1:gpsMeasurementCount
currentGpsPosition = [gpsData(o, pRfb.SAT_FORMAT.lat_sat), gpsData(o, pRfb.SAT_FORMAT.lon_sat)];
gpsRafosDates(o) = artoa.convert.dmy2rd( ...
gpsData(o - 1, pRfb.SAT_FORMAT.day_sat), ...
gpsData(o - 1, pRfb.SAT_FORMAT.month_sat), ...
gpsData(o - 1, pRfb.SAT_FORMAT.year_sat) ...
gpsData(o, pRfb.SAT_FORMAT.day_sat), ...
gpsData(o, pRfb.SAT_FORMAT.month_sat), ...
gpsData(o, pRfb.SAT_FORMAT.year_sat) ...
);
% calculate distance between sound source and gps
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment