Skip to content
Snippets Groups Projects
  • leprob001's avatar
    3d42b326
    Various fixes and improvements to the TOA and main window. · 3d42b326
    leprob001 authored
    Main window additions:
      - The "Reload artoa.ini" button has been introduced.
    
    TOA window modifications:
      - The colormap of TOA now matches the nemo2profile colormap.
      - The colors of the sound sources can now be configured in artoa.ini.
      - The soundsources now are displayed as ring and in the configured color.
      - The TOA descriptions are now displayed in every third occurrence.
      - A legend with colors for the soundsources has been added to the window.
    3d42b326
    History
    Various fixes and improvements to the TOA and main window.
    leprob001 authored
    Main window additions:
      - The "Reload artoa.ini" button has been introduced.
    
    TOA window modifications:
      - The colormap of TOA now matches the nemo2profile colormap.
      - The colors of the sound sources can now be configured in artoa.ini.
      - The soundsources now are displayed as ring and in the configured color.
      - The TOA descriptions are now displayed in every third occurrence.
      - A legend with colors for the soundsources has been added to the window.
copyRfbToWorkspace.m 3.09 KiB
function [] = copyRfbToWorkspace()
%COPYRFBTOWORKSPACE Copies rfb input data to the workspace.
%   

global artoaDataInput artoaWorkspace;

%% Generate workspace

%% RAFOS DATE
artoaWorkspace.rafosDate = artoa.convert.dmy2rd( ...
    artoaDataInput.rfb.DATA(:, artoaDataInput.rfb.VARIABLE_LIST.start_listen_day), ...
    artoaDataInput.rfb.DATA(:, artoaDataInput.rfb.VARIABLE_LIST.start_listen_mon), ...
    artoaDataInput.rfb.DATA(:, artoaDataInput.rfb.VARIABLE_LIST.start_listen_yr) ...
) ...
+ ...
artoa.convert.hms2rd( ...
    artoaDataInput.rfb.DATA(:, artoaDataInput.rfb.VARIABLE_LIST.start_listen_hr), ...
    artoaDataInput.rfb.DATA(:, artoaDataInput.rfb.VARIABLE_LIST.start_listen_min), ...
    artoaDataInput.rfb.DATA(:, artoaDataInput.rfb.VARIABLE_LIST.start_listen_sec) ...
);

%% TOA
artoaWorkspace.toaData = struct();
artoaWorkspace.toaData.status = zeros( ...
    size(artoaDataInput.rfb.DATA, 1) * length(artoaDataInput.rfb.VARIABLE_LIST.time_of_arrival), ...
    1 ...
);

artoaWorkspace.toaData.toa = [];
toaColumns = artoaDataInput.rfb.VARIABLE_LIST.time_of_arrival;
for i = 1:length(toaColumns)
    artoaWorkspace.toaData.toa = [ ...
        artoaWorkspace.toaData.toa; ...
        artoaDataInput.rfb.DATA(:, toaColumns(i)) ...
    ];
end

artoaWorkspace.toaData.correlationHeight = [];
correleationHeightColumns = artoaDataInput.rfb.VARIABLE_LIST.correlation_height;
for i = 1:length(correleationHeightColumns)
    artoaWorkspace.toaData.correlationHeight = [ ...
        artoaWorkspace.toaData.correlationHeight; ...
        artoaDataInput.rfb.DATA(:, correleationHeightColumns(i)) ...
    ];
end

artoaWorkspace.toaData.toaDate = repmat( ...
    artoaWorkspace.rafosDate, ...
    length(artoaDataInput.rfb.VARIABLE_LIST.time_of_arrival), ...
    1 ...
);

artoaWorkspace.toaData.soundSource = cell( ...
    size(artoaDataInput.rfb.DATA, 1) * length(artoaDataInput.rfb.VARIABLE_LIST.time_of_arrival), ...
    1 ...
);

% Copy the original toaData object to the input, so that it easily can be
% restored later on
artoaDataInput.toaData = artoaWorkspace.toaData;

%% TEMPERATURE
artoaWorkspace.temperature = artoaDataInput.rfb.DATA(:, artoaDataInput.rfb.VARIABLE_LIST.temperature);
artoaWorkspace.statusTemperature = zeros(size(artoaDataInput.rfb.DATA, 1), 1);

%% PRESSURE
artoaWorkspace.pressure = artoaDataInput.rfb.DATA(:, artoaDataInput.rfb.VARIABLE_LIST.pressure);
artoaWorkspace.statusPressure = zeros(size(artoaDataInput.rfb.DATA, 1), 1);

%% SET DEFAULTS TO NaN
% toa
artoa.data.replaceValuesWithNaN( ...
    artoaWorkspace.toaData.toa, artoaDataInput.ini.defaults.toa ...
);
% temperature
artoa.data.replaceValuesWithNaN( ...
    artoaWorkspace.temperature, artoaDataInput.ini.defaults.temperature ...
);
% pressure
artoa.data.replaceValuesWithNaN( ...
    artoaWorkspace.pressure, artoaDataInput.ini.defaults.pressure ...
);

%% FLOAT DETAILS
artoaWorkspace.float = artoaDataInput.rfb.FLOAT;

%% GET SOUNDSOURCES THAT ARE ALIVE DURING THE FLOAT MISSION
artoaWorkspace.filteredSoundsources = artoa.soundsources.filter( ...
    artoaDataInput.soundsources, min(artoaWorkspace.rafosDate), max(artoaWorkspace.rafosDate) ...
);

end