From 9c0abc6f5fc321978434bbbaa696b5ff8beaaa66 Mon Sep 17 00:00:00 2001 From: sfregosi <22456126+sfregosi@users.noreply.github.com> Date: Wed, 21 Jul 2021 16:00:23 -0700 Subject: [PATCH 1/6] Update InstalledRemoras.cnf for PICSN28 --- Settings/InstalledRemoras.cnf | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Settings/InstalledRemoras.cnf b/Settings/InstalledRemoras.cnf index d28a8327..3e04a380 100644 --- a/Settings/InstalledRemoras.cnf +++ b/Settings/InstalledRemoras.cnf @@ -1,7 +1 @@ -C:\Users\selene\OneDrive\MATLAB\Triton\Remoras\Logger -C:\Users\selene\OneDrive\MATLAB\Triton\Remoras\Detector -C:\Users\selene\OneDrive\MATLAB\Triton\Remoras\SPICE-Detector -C:\Users\selene\OneDrive\MATLAB\Triton\Remoras\ClusterTool -C:\Users\selene\OneDrive\MATLAB\Triton\Remoras\ImageSet -C:\Users\selene\OneDrive\MATLAB\Triton\Remoras\LabelVis C:\Users\Selene.Fregosi\Documents\MATLAB\Triton\Remoras\Logger From e3ab9bf76c8e8c0f2fe0a2484b91e7c1725723e1 Mon Sep 17 00:00:00 2001 From: sfregosi <22456126+sfregosi@users.noreply.github.com> Date: Sun, 25 Jul 2021 18:19:56 -0700 Subject: [PATCH 2/6] commented reasoning of dispOn option --- wavname2dnum.m | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/wavname2dnum.m b/wavname2dnum.m index 8cb1bc40..9ce9b8a0 100644 --- a/wavname2dnum.m +++ b/wavname2dnum.m @@ -1,4 +1,4 @@ -function [ dnums ] = wavname2dnum( filenames ) +function [dnums] = wavname2dnum(filenames, dispOn) % Parses .wav file names and converts them to matlab datenums % Works on single or multiple file names % Supports 5 filename formats: @@ -12,6 +12,10 @@ % the datenum formatting...maybe useful later? % regexp(fname,'\d{4}[-_]\d{4}','match','split') +if nargin < 2 + dispOn = 1; % added to limit printing of dnum format during LTSA creation +end + % start with the default date format filenamesc = cellstr(filenames); @@ -55,6 +59,7 @@ disp('Using AMAR filename format yyyymmddTHHMMSS'); end end + if isempty(date_strs{1}) disp('Unknown filename date format. Please use one of the following:'); disp('*yymmdd-HHMMSS*.wav'); From b90cd7692ab241ac65e050d36778cf6e74ec8da2 Mon Sep 17 00:00:00 2001 From: sfregosi <22456126+sfregosi@users.noreply.github.com> Date: Tue, 1 Jun 2021 12:24:31 -0400 Subject: [PATCH 3/6] toggle disp message for wavname2dnum off when using get_headers because it would disp 1000s of lines and the original mk ltsa messages would get lost --- get_headers.m | 2 +- mk_ltsa_multidir.m | 319 +++++++++++++++++++++++---------------------- wavname2dnum.m | 20 +-- 3 files changed, 175 insertions(+), 166 deletions(-) diff --git a/get_headers.m b/get_headers.m index 6d2eba8d..6edd161a 100644 --- a/get_headers.m +++ b/get_headers.m @@ -54,7 +54,7 @@ PARAMS.ltsahd.rfileid(m) = 1; % raw file id / number in this xwav file % timing stuff: - dnums = wavname2dnum(PARAMS.ltsa.fname(k,:)); + dnums = wavname2dnum(PARAMS.ltsa.fname(k,:),0); if isempty(dnums) PARAMS.ltsahd.dnumStart(m) = datenum([0 1 1 0 0 0]); else diff --git a/mk_ltsa_multidir.m b/mk_ltsa_multidir.m index 09eda91a..1774975e 100644 --- a/mk_ltsa_multidir.m +++ b/mk_ltsa_multidir.m @@ -1,11 +1,11 @@ function mk_ltsa_multidir() -global PARAMS REMORA +global PARAMS REMORA PARAMS.ltsa.multidir = 1; % if we're coming from the processing code, just use the LTSA data from -% that. if not, use user input +% that. if not, use user input % also can be used with other predefined LTSA processing information if isfield(REMORA, 'hrp') indirs = {}; @@ -44,52 +44,59 @@ function mk_ltsa_multidir() % save output files in same locations outdirs = indirs; - + % LTSA parameters - ltsa_params(indirs); + ltsa_params(indirs); % set taves and dfreqs taves = PARAMS.ltsa.taves; dfreqs = PARAMS.ltsa.dfreqs; -% taves = 5; -% dfreqs = [100, 1, 10]; + % taves = 5; + % dfreqs = [100, 1, 10]; PARAMS.ltsa.ch = 1; % which channel do you want to process? -% PARAMS.ltsa.ftype = 2; % 2 for xwavs, 1 for wavs - PARAMS.ltsa.dtype = 1; % 1 for HRP data - + % PARAMS.ltsa.ftype = 2; % 2 for xwavs, 1 for wavs + if PARAMS.ltsa.ftype == 2 + % specify data type -1 HRP, 2 ARP, 3 OBS? Pulling these nums from + % ck_ltsaparams.m + PARAMS.ltsa.dtype = 1; % 1 for HRP data + else % all wav files? Maybe not...but leaving for now. + PARAMS.ltsa.dtype = 4; % standard wav/ishmael format? + end + % raw files to skip. leave this empty if no rfs wanted to skip %PARAMS.ltsa.rf_skip = [47957 47986 47989 48016 48019 48045 48048 48051 48081 48541]; - PARAMS.ltsa.rf_skip = [11716 11715]; + % PARAMS.ltsa.rf_skip = [11716 11715]; + PARAMS.ltsa.rf_skip = []; - % loop through each of the sets of directories for pre-check + % loop through each of the sets of directories for PRE-CHECK prefixes = {1, length(indirs)}; - outfiles = {1, length(indirs)}; + outfiles = {1, length(indirs)}; dirdata = {1, length(indirs)}; for k = 1:length(indirs) % if we have different parameters for each of the dirs, adjust % accordingly if length(dfreqs) > 1 dfreq = dfreqs(k); - else + else dfreq = dfreqs; end if length(taves) > 1 tave = taves(k); - else + else tave = taves; end - + PARAMS.ltsa.indir = char(indirs{k}); PARAMS.ltsa.outdir = char(outdirs{k}); PARAMS.ltsa.tave = tave; PARAMS.ltsa.dfreq = dfreq; - + % create the outfile and prefix [prefixes{k}, outfiles{k}, dirdata{k}] = gen_prefix(); - + % make sure filenames will work success = ck_names(prefixes{k}); - + % check to see if the ltsa file already exists PARAMS.ltsa.indir = indirs{k}; if exist(fullfile(PARAMS.ltsa.indir, outfiles{k}), 'file') @@ -98,7 +105,7 @@ function mk_ltsa_multidir() if strcmp(choice, 'Continue, don''t overwrite') outfiles{k} = sprintf('%s_copy.ltsa', PARAMS.ltsa.outfile(1:end-5)); ltsa_bools(k) = 1; - % remove parameters for this LTSA + % remove parameters for this LTSA elseif strcmp(choice, 'Skip') indirs(k) = []; outdirs(k) = []; @@ -106,11 +113,11 @@ function mk_ltsa_multidir() outfiles(k) = []; dirdata(k) = []; taves(k) = []; - dfreqs(k) = []; - end + dfreqs(k) = []; + end end -% if strcmp(ans, 'Skip') || ~success + % if strcmp(ans, 'Skip') || ~success if ~success disp_msg(sprintf('Skipping LTSA creation for %s\n', prefixes{k})); indirs(k) = []; @@ -119,14 +126,14 @@ function mk_ltsa_multidir() outfiles(k) = []; dirdata(k) = []; taves(k) = []; - dfreqs(k) = []; + dfreqs(k) = []; end end end % loop through each of the sets of directories for actual ltsa creation for k = 1:length(indirs) - + % if we have different parameters for each of the dirs, adjust % accordingly if length(taves) > 1 @@ -136,176 +143,178 @@ function mk_ltsa_multidir() end if length(dfreqs) > 1 dfreq = dfreqs(k); - else + else dfreq = dfreqs; end - + PARAMS.ltsa.indir = char(indirs{k}); PARAMS.ltsa.outdir = char(outdirs{k}); PARAMS.ltsa.outfile = char(outfiles{k}); PARAMS.ltsa.tave = tave; PARAMS.ltsa.dfreq = dfreq; - -% prefix = prefixes{k}; - + + % prefix = prefixes{k}; + % run from matlab command line if ~isfield(REMORA, 'hrp') d = dirdata{k}; - if ~isfield(d, 'dataID') + if ~isfield(d, 'dataID') % non xwav/typical dir fprintf('\nMaking LTSA for directory %s\n', PARAMS.ltsa.indir) else fprintf('\nMaking LTSA for %s disk %s df %i\n', d.dataID, d.disk, d.df); end - % run from procFun + % run from procFun else - fprintf('\nMaking LTSA for %s disk %s df %i\n', REMORA.hrp.dataID, REMORA.hrp.disk, REMORA.hrp.dfs(k)); + fprintf('\nMaking LTSA for %s disk %s df %i\n', REMORA.hrp.dataID, REMORA.hrp.disk, REMORA.hrp.dfs(k)); end - + % make the ltsa! mk_ltsa_dir; -end + fprintf('\nFinished LTSA for directory %s\n Press any key to continue...\n', PARAMS.ltsa.indir) + pause +end % all directories end % check to see if the xwav/wav names are compatible with ltsa format function success = ck_names(prefix) - global PARAMS +global PARAMS + +success = 1; + +% find filenames for xwav/wav +if PARAMS.ltsa.ftype == 1 + files = dir(fullfile(PARAMS.ltsa.indir, '*.wav')); +elseif PARAMS.ltsa.ftype == 2 + files = dir(fullfile(PARAMS.ltsa.indir, '*.x.wav')); +end + +% check to see if filenames are the same length +prev_fname = files(1).name; +for x = 1:length(files) + curr_fname = files(x).name; + if length(prev_fname) ~= length(curr_fname) + success = 0; + break; + end +end + +% check to see if filenames contain timestamps (wavs only! xwavs have +% timing info in headers) +if PARAMS.ltsa.ftype == 1 + fname = files(1).name; + dnum = wavname2dnum(fname); - success = 1; + % datenumber isn't in filenames + if isempty(dnum); success = 0; end +end + +% if we don't like the format, offer to change wav/xwav filenames +if ~success; success = rename_wavs(prefix); end + +% either continue with ltsa creation or return +if success; success = 1; return; end; +end + +% create a prefix and an outfile name for ltsas generated +function [prefix,ltsa_file,dirdat] = gen_prefix() +global PARAMS + +% struct to hold dataID, disk #, and df of this indir +dirdat = struct; + +% check for typical xwav header format +[~, dirname, ~] = fileparts(PARAMS.ltsa.indir); +exp = '^[\w-_]+(?=_disk)'; +dataID = regexp(dirname, exp, 'match'); + +% traditional xwav/wav filename format +if ~isempty(dataID) + dataID = char(dataID(1,:)); - % find filenames for xwav/wav - if PARAMS.ltsa.ftype == 1 - files = dir(fullfile(PARAMS.ltsa.indir, '*.wav')); - elseif PARAMS.ltsa.ftype == 2 - files = dir(fullfile(PARAMS.ltsa.indir, '*.x.wav')); - end - - % check to see if filenames are the same length - prev_fname = files(1).name; - for x = 1:length(files) - curr_fname = files(x).name; - if length(prev_fname) ~= length(curr_fname) - success = 0; - break; - end - end + exp = 'disk(\d{2})[_df]*([0-9]*)'; + tokens = regexp(dirname, exp, 'tokens'); + tokens = tokens{1}; - % check to see if filenames contain timestamps (wavs only! xwavs have - % timing info in headers) - if PARAMS.ltsa.ftype == 1 - fname = files(1).name; - dnum = wavname2dnum(fname); + disk = tokens{1}; - % datenumber isn't in filenames - if isempty(dnum); success = 0; end + % create the prefix + if ~isempty(tokens{2}) + df = str2num(tokens{2}); + prefix = ... + sprintf('%s_disk%s',dataID,disk); + ltsa_file = ... + sprintf('%s_%ds_%dHz.ltsa',prefix,PARAMS.ltsa.tave,PARAMS.ltsa.dfreq,df); + else + df = 1; + prefix = ... + sprintf('%s_disk%s',dataID,disk); end - % if we don't like the format, offer to change wav/xwav filenames - if ~success; success = rename_wavs(prefix); end + dirdat.dataID = dataID; + dirdat.disk = disk; + dirdat.df = df; - % either continue with ltsa creation or return - if success; success = 1; return; end; + % if non-traditional format, use directory name to create prefix and + % ltsa name +else + % get parent directory name + prefix = strsplit(PARAMS.ltsa.indir, '\'); % TODO issue between running on windows and mac? + prefix = prefix{end}; + prefix = strrep(prefix, ' ', '_'); + exp = '[^\w]+'; + prefix = regexprep(prefix, exp, ''); + prefix = strrep(prefix, '__', '_'); end -% create a prefix and an outfile name for ltsas generated -function [prefix,ltsa_file,dirdat] = gen_prefix() - global PARAMS +% make sure that prefix isn't too long to fit into ltsa metadata +% (80 characters!) +if PARAMS.ltsa.ftype == 2 % xwavs + lim = 60; +elseif PARAMS.ltsa.ftype == 1 % wavs + lim = 62; +end - % struct to hold dataID, disk #, and df of this indir - dirdat = struct; - - % check for typical xwav header format - [~, dirname, ~] = fileparts(PARAMS.ltsa.indir); - exp = '^[\w-_]+(?=_disk)'; - dataID = regexp(dirname, exp, 'match'); - - % traditional xwav/wav filename format - if ~isempty(dataID) - dataID = char(dataID(1,:)); +if length(prefix) > lim + prefix = prefix(1:lim); +end - exp = 'disk(\d{2})[_df]*([0-9]*)'; - tokens = regexp(dirname, exp, 'tokens'); - tokens = tokens{1}; +% create the outfile name +if ~strcmp(prefix(end), '_') + prefix = [prefix, '_']; +end - disk = tokens{1}; - - % create the prefix - if ~isempty(tokens{2}) - df = str2num(tokens{2}); - prefix = ... - sprintf('%s_disk%s',dataID,disk); - ltsa_file = ... - sprintf('%s_%ds_%dHz.ltsa',prefix,PARAMS.ltsa.tave,PARAMS.ltsa.dfreq,df); - else - df = 1; - prefix = ... - sprintf('%s_disk%s',dataID,disk); - end - - dirdat.dataID = dataID; - dirdat.disk = disk; - dirdat.df = df; - - % if non-traditional format, use directory name to create prefix and - % ltsa name - else - % get parent directory name - prefix = strsplit(PARAMS.ltsa.indir, '\'); % TODO issue between running on windows and mac? - prefix = prefix{end}; - prefix = strrep(prefix, ' ', '_'); - exp = '[^\w]+'; - prefix = regexprep(prefix, exp, ''); - prefix = strrep(prefix, '__', '_'); - end - - % make sure that prefix isn't too long to fit into ltsa metadata - % (80 characters!) - if PARAMS.ltsa.ftype == 2 % xwavs - lim = 60; - elseif PARAMS.ltsa.ftype == 1 % wavs - lim = 62; - end - - if length(prefix) > lim - prefix = prefix(1:lim); - end - - % create the outfile name - if ~strcmp(prefix(end), '_') - prefix = [prefix, '_']; - end - - ltsa_file = ... - sprintf('%s%ds_%dHz.ltsa',prefix,PARAMS.ltsa.tave,PARAMS.ltsa.dfreq); +ltsa_file = ... + sprintf('%s%ds_%dHz.ltsa',prefix,PARAMS.ltsa.tave,PARAMS.ltsa.dfreq); end function dirs = find_dirs(d, ftype) - cd(d); - dirs = {}; - - % find each of the subdirectories - files = dir; - inds = find(vertcat(files.isdir)); - subdirs = {}; - subdirs_xwav = {}; - for k = 1:length(inds) - ind = inds(k); - if ~strcmp(files(ind).name, '.') && ~strcmp(files(ind).name, '..') - subdirs{end+1} = fullfile(d, files(ind).name); - end - end - - % for each subdirectory, check for xwavs and append to list of indirs - for k = 1:size(subdirs, 2) - subdirs_xwav = find_dirs(subdirs{k}, ftype); - dirs = cat_cell(dirs, subdirs_xwav); +cd(d); +dirs = {}; + +% find each of the subdirectories +files = dir; +inds = find(vertcat(files.isdir)); +subdirs = {}; +subdirs_xwav = {}; +for k = 1:length(inds) + ind = inds(k); + if ~strcmp(files(ind).name, '.') && ~strcmp(files(ind).name, '..') + subdirs{end+1} = fullfile(d, files(ind).name); end - cd(d); - if ~isempty(dir(ftype)) - dirs{end+1} = d; - end - +end + +% for each subdirectory, check for xwavs and append to list of indirs +for k = 1:size(subdirs, 2) + subdirs_xwav = find_dirs(subdirs{k}, ftype); + dirs = cat_cell(dirs, subdirs_xwav); +end +cd(d); +if ~isempty(dir(ftype)) + dirs{end+1} = d; +end + end % concatenate two cell arrays cause APPARENTLY THIS ISN'T EASY IN MATLAB @@ -316,7 +325,7 @@ function mk_ltsa_multidir() end end -function ltsa_params(dirs) +function ltsa_params(dirs) % creates gui window to define ltsa settings mycolor = [.8,.8,.8]; r = length(dirs) + 2; c = 3; diff --git a/wavname2dnum.m b/wavname2dnum.m index 9ce9b8a0..ddcd379d 100644 --- a/wavname2dnum.m +++ b/wavname2dnum.m @@ -6,18 +6,17 @@ % 2. yymmdd_HHMMSS % 3. yyyymmdd_HHMMSS % 4. yymmddHHMMSS -% 5. yyyymmddTHHMMSS +% 5. yyyymmddTHHMMSS added for AMAR613.20190604T182000Z.wav % This matches both underscores and hyphens, but don't know how to handle % the datenum formatting...maybe useful later? % regexp(fname,'\d{4}[-_]\d{4}','match','split') -if nargin < 2 - dispOn = 1; % added to limit printing of dnum format during LTSA creation +if nargin <2 + dispOn = 1; end % start with the default date format - filenamesc = cellstr(filenames); date_strs = regexp(filenamesc,'\d{6}[-]\d{6}','match'); date_fmt = 'yymmdd-HHMMSS'; @@ -26,23 +25,23 @@ if isempty(date_strs{1}) date_fmt = 'yymmddTHHMMSSZ'; date_strs = regexp(filenamesc,'\d{6}[T]\d{6}[Z]','match' ); - if ~isempty(date_strs{1}) + if ~isempty(date_strs{1}) && dispOn == 1 disp('Using ISO8601 date format yymmddTHHMMSSZ in filename'); end end -if isempty(date_strs{1}) % not a PAMguard file, try avisoft or Soundtrap filename +if isempty(date_strs{1}) % not a PAMguard file, try avisoft filename date_fmt = 'yymmddHHMMSS'; date_strs = regexp(filenamesc,'\d{12}','match' ); - if ~isempty(date_strs{1}) + if ~isempty(date_strs{1}) && dispOn == 1 disp('Using avisoft and SoundTrap filename format yymmddHHMMSS'); end end -if isempty(date_strs{1}) % not just an underscore problem, try PAMGuard filename +if isempty(date_strs{1}) % not just and underscore problem, try PAMGuard filename date_fmt = 'yyyymmdd_HHMMSS'; % PAMGuard default file format date_strs = regexp(filenamesc,'\d{8}[_]\d{6}','match'); - if ~isempty(date_strs{1}) + if ~isempty(date_strs{1}) && dispOn == 1 disp('Using PAMGuard filename format yyyymmdd_HHMMSS'); end end @@ -52,10 +51,11 @@ date_strs = regexp(filenamesc,'\d{6}[_]\d{6}','match'); end +% added 2020 06 26 by S. Fregosi if isempty(date_strs{1}) % try AMAR filename - e.g., AMAR613.20190604T182000Z.wav date_fmt = 'yyyymmddTHHMMSS'; date_strs = regexp(filenamesc,'\d{8}[T]\d{6}','match'); - if ~isempty(date_strs{1}) + if ~isempty(date_strs{1}) && dispOn == 1 disp('Using AMAR filename format yyyymmddTHHMMSS'); end end From fafde976f22592b9a6f093504dbcd2772aa7e3b7 Mon Sep 17 00:00:00 2001 From: sfregosi <22456126+sfregosi@users.noreply.github.com> Date: Sun, 25 Jul 2021 18:39:51 -0700 Subject: [PATCH 4/6] standardizing across branches --- wavname2dnum.m | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/wavname2dnum.m b/wavname2dnum.m index ddcd379d..4524a95c 100644 --- a/wavname2dnum.m +++ b/wavname2dnum.m @@ -6,14 +6,14 @@ % 2. yymmdd_HHMMSS % 3. yyyymmdd_HHMMSS % 4. yymmddHHMMSS -% 5. yyyymmddTHHMMSS added for AMAR613.20190604T182000Z.wav +% 5. yyyymmddTHHMMSS % This matches both underscores and hyphens, but don't know how to handle % the datenum formatting...maybe useful later? % regexp(fname,'\d{4}[-_]\d{4}','match','split') if nargin <2 - dispOn = 1; + dispOn = 1; % added to limit printing of dnum format during LTSA creation end % start with the default date format @@ -30,7 +30,7 @@ end end -if isempty(date_strs{1}) % not a PAMguard file, try avisoft filename +if isempty(date_strs{1}) % not a PAMguard file, try avisoft or Soundtrap filename date_fmt = 'yymmddHHMMSS'; date_strs = regexp(filenamesc,'\d{12}','match' ); if ~isempty(date_strs{1}) && dispOn == 1 @@ -38,7 +38,7 @@ end end -if isempty(date_strs{1}) % not just and underscore problem, try PAMGuard filename +if isempty(date_strs{1}) % not just an underscore problem, try PAMGuard filename date_fmt = 'yyyymmdd_HHMMSS'; % PAMGuard default file format date_strs = regexp(filenamesc,'\d{8}[_]\d{6}','match'); if ~isempty(date_strs{1}) && dispOn == 1 @@ -51,11 +51,10 @@ date_strs = regexp(filenamesc,'\d{6}[_]\d{6}','match'); end -% added 2020 06 26 by S. Fregosi if isempty(date_strs{1}) % try AMAR filename - e.g., AMAR613.20190604T182000Z.wav date_fmt = 'yyyymmddTHHMMSS'; date_strs = regexp(filenamesc,'\d{8}[T]\d{6}','match'); - if ~isempty(date_strs{1}) && dispOn == 1 + if ~isempty(date_strs{1}) disp('Using AMAR filename format yyyymmddTHHMMSS'); end end From d0d68def371ed232c1acfeee0a8eb66970adea98 Mon Sep 17 00:00:00 2001 From: sfregosi <22456126+sfregosi@users.noreply.github.com> Date: Tue, 17 Aug 2021 10:59:55 -1000 Subject: [PATCH 5/6] removed multidir ltsa stuff --- mk_ltsa_dir.m | 309 --------------------------------- mk_ltsa_multidir.m | 415 --------------------------------------------- 2 files changed, 724 deletions(-) delete mode 100644 mk_ltsa_dir.m delete mode 100644 mk_ltsa_multidir.m diff --git a/mk_ltsa_dir.m b/mk_ltsa_dir.m deleted file mode 100644 index b1966257..00000000 --- a/mk_ltsa_dir.m +++ /dev/null @@ -1,309 +0,0 @@ -function mk_ltsa_dir() -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% mk_ltsa.m -% -% make long-term spectral averages from XWAV files in a directory -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -global PARAMS %REMORA - -% wav data -if PARAMS.ltsa.ftype == 1 - d = dir(fullfile(PARAMS.ltsa.indir, '*.wav')); % wav files -elseif PARAMS.ltsa.ftype == 2 - d = dir(fullfile(PARAMS.ltsa.indir,'*.x.wav')); % xwav files -end - -PARAMS.ltsa.fname = char(d.name); % file names in directory - -% % read data file headers -% get_headers; - -success = get_headers; -if ~success - disp_msg('Issue with headers'); - return -end - -success = ck_ltsaparams; -if ~success - disp_msg('Issue with LTSA parameters'); - return -end - -% ltsa parameters from user input earlier -% PARAMS.ltsa.dfreq = REMORA.hrp.dfreq(k); -% PARAMS.ltsa.tave = REMORA.hrp.tave(k); - -info = audioinfo(fullfile(PARAMS.ltsa.indir,PARAMS.ltsa.fname(1,:))); -PARAMS.ltsa.fs = info.SampleRate; -PARAMS.ltsa.nfft = PARAMS.ltsa.fs / PARAMS.ltsa.dfreq; -% compression factor (cfact = 1000 for tave=5sec,fs=200000Hz,dfreq=200) -PARAMS.ltsa.cfact = PARAMS.ltsa.tave * PARAMS.ltsa.fs / PARAMS.ltsa.nfft; - -% number of frequencies in each spectral average: -if mod(PARAMS.ltsa.nfft,2) % odd - PARAMS.ltsa.nfreq = (PARAMS.ltsa.nfft + 1)/2; -else % even - PARAMS.ltsa.nfreq = PARAMS.ltsa.nfft/2 + 1; -end - -% % write header portion of ltsa -% write_ltsahead - -% loop over xwavs and raw files -PARAMS.ltsa.window = hanning(PARAMS.ltsa.nfft); -PARAMS.ltsa.overlap = 0; -PARAMS.ltsa.noverlap = round((PARAMS.ltsa.overlap/100)*PARAMS.ltsa.nfft); - -PARAMS.ltsa.sampPerAve = PARAMS.ltsa.tave * PARAMS.ltsa.fs; - -% open output file -% PARAMS.ltsa.fod = fopen(fullfile(PARAMS.ltsa.outdir,PARAMS.ltsa.outfile),'r+'); -total = PARAMS.ltsa.nxwav; -PARAMS.ltsa.rfNum = 0; % total number of raw file counter -count = 0; % total number of averages counter for output display - -% if there is more than 1 channel, need new filenames for each of the -% channels -% open output file - -% PARAMS.ltsa.fod = fopen(fullfile(PARAMS.ltsa.outdir,PARAMS.ltsa.outfile),'r+'); -nch = PARAMS.ltsa.nch(1); -PARAMS.ltsa.fods = zeros(nch, 1); -curr_ofile = PARAMS.ltsa.outfile; -PARAMS.ltsa.outfiles = []; - -for ch = 1:nch - if nch ~= 1 - new_ofile = sprintf('%s_ch%d.ltsa',strrep(curr_ofile,'.ltsa',''),ch); - else - new_ofile = curr_ofile; - end - - PARAMS.ltsa.outfiles = [PARAMS.ltsa.outfiles; new_ofile]; - PARAMS.ltsa.fods(ch) = fopen(fullfile(PARAMS.ltsa.outdir, new_ofile),'w'); - - % write header portion of ltsa for each ltsa - PARAMS.ltsa.outfile = new_ofile; - PARAMS.ltsa.ch = ch; - write_ltsahead -end - -% loop over all xwavs -for k = 1:PARAMS.ltsa.nxwav - - % globalize xwav # we're on so can access in calc_ltsa - PARAMS.ltsa.currxwav = k; - - % HARP and ARP & OBS data - if PARAMS.ltsa.ftype == 2 - % open xwav file - PARAMS.ltsa.fid = fopen(fullfile(PARAMS.ltsa.indir,PARAMS.ltsa.fname(k,:)),'r'); - fseek(PARAMS.ltsa.fid,80,'bof'); - nrf = fread(PARAMS.ltsa.fid,1,'uint16'); % Number of RawFiles in XWAV file (80 bytes from bof) - % wav/Ishmael data - else - nrf = 1; - PARAMS.ltsa.fid = fopen(fullfile(PARAMS.ltsa.indir,PARAMS.ltsa.fname(k,:)), 'r'); - end - - % loop over each raw file in xwav - for r = 1:nrf - PARAMS.ltsa.rfNum = PARAMS.ltsa.rfNum + 1; % total # of raw files processed - - % skip rfs we want to skip - if ismember(PARAMS.ltsa.rfNum, PARAMS.ltsa.rf_skip) - continue; - end - - if PARAMS.ltsa.ftype ~= 1 % xwavs - nave1 = (PARAMS.ltsahd.nsectPerRawFile(PARAMS.ltsa.rfNum) * ... - PARAMS.ltsa.blksz / PARAMS.ltsa.nch)/(PARAMS.ltsa.nfft * PARAMS.ltsa.cfact); - else % wavs - nave1 = PARAMS.ltsahd.nsamp(PARAMS.ltsa.rfNum)/... - (PARAMS.ltsa.nfft * PARAMS.ltsa.cfact); - end - - % difference the number of averages and size of raw file - dnave = PARAMS.ltsa.nave(PARAMS.ltsa.rfNum) - nave1; - - % loop over channels - for ch = 1:nch - PARAMS.ltsa.fod = PARAMS.ltsa.fods(ch); - PARAMS.ltsa.ch = ch; - - % jump to correct place in output file to put spectral averages - fseek(PARAMS.ltsa.fod,PARAMS.ltsa.byteloc(PARAMS.ltsa.rfNum),'bof'); - xi = 0; - - % loop over averages - for n = 1:PARAMS.ltsa.nave(PARAMS.ltsa.rfNum) - - % globalize for use in calc_ltsa - PARAMS.ltsa.currNave = n; - - % increment ltsa count from mk_ltsa - count = count + 1; - - % number of samples to grab - if dnave == 0 % number of averages divide evenly into size of raw file - nsamp = PARAMS.ltsa.sampPerAve; - else - if n == PARAMS.ltsa.nave(PARAMS.ltsa.rfNum) % last average, data not full number of samples - % nsamp = (PARAMS.ltsahd.nsectPerRawFile(r) * 250) - ((PARAMS.ltsa.nave(r) - 1) * PARAMS.ltsa.sampPerAve); - if PARAMS.ltsa.ftype ~= 1 % xwavs - nsamp = (PARAMS.ltsahd.nsectPerRawFile(PARAMS.ltsa.rfNum)... - * PARAMS.ltsa.blksz / PARAMS.ltsa.nch) - ... - ((PARAMS.ltsa.nave(PARAMS.ltsa.rfNum) - 1) * PARAMS.ltsa.sampPerAve); - else - nsamp = PARAMS.ltsahd.nsamp(PARAMS.ltsa.rfNum) - ... - ((PARAMS.ltsa.nave(PARAMS.ltsa.rfNum) - 1) * PARAMS.ltsa.sampPerAve); - end % wav - PARAMS.ltsa.dur = nsamp / PARAMS.ltsa.fs; - else - nsamp = PARAMS.ltsa.sampPerAve; - end - end - - % disp([num2str(k),' ',num2str(r),' ',num2str(n),' ',num2str(nsamp)]) % for debugging - - if PARAMS.ltsa.ftype ~= 1 % xwavs (count bytes) - % start Byte location in xwav file of spectral average - if n == 1 - xi = PARAMS.ltsahd.byte_loc(PARAMS.ltsa.rfNum); - else - % xi = xi + (bytesPerAve * PARAMS.ltsa.nch); - xi = xi + (nsamp * (PARAMS.ltsa.nBits/8) * PARAMS.ltsa.nch); - end - else % wav files (count samples) - if n == 1 - yi = 1; - else - % yi = yi + PARAMS.ltsa.sampPerAve; - yi = yi + nsamp; - end - end - - % hold on to number of samples to calculate next byte location - prev_nsamp = nsamp; - - % clear data vector - data = []; - - % jump to correct location in xwav file - if PARAMS.ltsa.ftype == 2 - fseek(PARAMS.ltsa.fid,xi,'bof'); - data = fread(PARAMS.ltsa.fid,[PARAMS.ltsa.nch,nsamp],PARAMS.ltsa.dbtype); - else - [dall,Fs] = audioread( fullfile(PARAMS.ltsa.indir,PARAMS.ltsa.fname(k,:)), [yi yi-1+nsamp], 'native' ); - dall = double(dall); - data = dall(:,PARAMS.ltsa.ch); - end - - % no data - error message - if ~isempty(data) - % data = data(PARAMS.ltsa.ch,:); - data = data'; - else - disp_msg(['Error: No data read, # of samples = ',num2str(nsamp)]) - disp_msg(['xi = ',num2str(xi)]) - disp_msg(['k,r,n = ',num2str(k),' ',num2str(r),' ',num2str(n)]) - data = zeros(1,nsamp); - end - - % write ltsa values - calc_ltsa(data); - end - end - end -% -% % jump to correct place in output file to put spectral averages -% fseek(PARAMS.ltsa.fod,PARAMS.ltsa.byteloc(PARAMS.ltsa.rfNum),'bof'); -% xi = 0; -% -% % loop over averages -% for n = 1:PARAMS.ltsa.nave(PARAMS.ltsa.rfNum) -% -% % increment ltsa count from mk_ltsa -% count = count + 1; -% -% % number of samples to grab -% if dnave == 0 % number of averages divide evenly into size of raw file -% nsamp = PARAMS.ltsa.sampPerAve; -% else -% if n == PARAMS.ltsa.nave(PARAMS.ltsa.rfNum) % last average, data not full number of samples -% % nsamp = (PARAMS.ltsahd.nsectPerRawFile(r) * 250) - ((PARAMS.ltsa.nave(r) - 1) * PARAMS.ltsa.sampPerAve); -% if PARAMS.ltsa.ftype ~= 1 % xwavs -% nsamp = (PARAMS.ltsahd.nsectPerRawFile(PARAMS.ltsa.rfNum)... -% * PARAMS.ltsa.blksz / PARAMS.ltsa.nch) - ... -% ((PARAMS.ltsa.nave(PARAMS.ltsa.rfNum) - 1) * PARAMS.ltsa.sampPerAve); -% else -% nsamp = PARAMS.ltsahd.nsamp(PARAMS.ltsa.rfNum) - ... -% ((PARAMS.ltsa.nave(PARAMS.ltsa.rfNum) - 1) * PARAMS.ltsa.sampPerAve); -% end % wav -% PARAMS.ltsa.dur = nsamp / PARAMS.ltsa.fs; -% else -% nsamp = PARAMS.ltsa.sampPerAve; -% end -% end -% -% % disp([num2str(k),' ',num2str(r),' ',num2str(n),' ',num2str(nsamp)]) % for debugging -% -% if PARAMS.ltsa.ftype ~= 1 % xwavs (count bytes) -% % start Byte location in xwav file of spectral average -% if n == 1 -% xi = PARAMS.ltsahd.byte_loc(PARAMS.ltsa.rfNum); -% else -% % xi = xi + (bytesPerAve * PARAMS.ltsa.nch); -% xi = xi + (nsamp * (PARAMS.ltsa.nBits/8) * PARAMS.ltsa.nch); -% end -% else % wav files (count samples) -% if n == 1 -% yi = 1; -% else -% % yi = yi + PARAMS.ltsa.sampPerAve; -% yi = yi + nsamp; -% end -% end -% -% % hold on to number of samples to calculate next byte location -% prev_nsamp = nsamp; -% -% % clear data vector -% data = []; -% -% % jump to correct location in xwav file -% if PARAMS.ltsa.ftype == 2 -% fseek(PARAMS.ltsa.fid,xi,'bof'); -% data = fread(PARAMS.ltsa.fid,[PARAMS.ltsa.nch,nsamp],PARAMS.ltsa.dbtype); -% else -% [dall,Fs] = audioread( fullfile(PARAMS.ltsa.indir,PARAMS.ltsa.fname(k,:)), [yi yi-1+nsamp], 'native' ); -% dall = double(dall); -% data = dall(:,PARAMS.ltsa.ch); -% end -% -% % no data - error message -% if ~isempty(data) -% % data = data(PARAMS.ltsa.ch,:); -% data = data'; -% else -% disp_msg(['Error: No data read, # of samples = ',num2str(nsamp)]) -% disp_msg(['xi = ',num2str(xi)]) -% disp_msg(['k,r,n = ',num2str(k),' ',num2str(r),' ',num2str(n)]) -% data = zeros(1,nsamp); -% end -% -% % write ltsa values -% calc_ltsa(data); -% end -% end - - fclose(PARAMS.ltsa.fid); - fprintf('Completed Processing XWAV file %d\n', k); - disp_msg(sprintf('Completed Processing XWAV file %d', k)); -end - -% close output ltsa file -fclose all; \ No newline at end of file diff --git a/mk_ltsa_multidir.m b/mk_ltsa_multidir.m deleted file mode 100644 index 1774975e..00000000 --- a/mk_ltsa_multidir.m +++ /dev/null @@ -1,415 +0,0 @@ -function mk_ltsa_multidir() - -global PARAMS REMORA - -PARAMS.ltsa.multidir = 1; - -% if we're coming from the processing code, just use the LTSA data from -% that. if not, use user input -% also can be used with other predefined LTSA processing information -if isfield(REMORA, 'hrp') - indirs = {}; - outdirs = {}; - outfiles = {}; - dfreqs = []; - taves = []; - for k = 1:size(REMORA.hrp.xwavPaths, 2) - if REMORA.hrp.ltsas(k) - % only populate if we're making an ltsa for this - indirs{end+1} = REMORA.hrp.xwavPaths{1,k}; - outdirs{end+1} = REMORA.hrp.xwavPaths{1,k}; - outfiles{end+1} = REMORA.hrp.ltsaNames(k, :); - dfreqs = [dfreqs, REMORA.hrp.dfreq(k)]; - taves = [taves, REMORA.hrp.tave(k)]; - end - end - PARAMS.ltsa.rf_skip = []; -else - % manual entry - pick a directory that contains the xwav dirs where - % LTSA creation is desired - dir_name = uigetdir('D:\'); - if dir_name == 0; disp_msg('Window closed. Exiting.'); return; end; - - a = questdlg('WAV or XWAV?', 'File type', 'WAV', 'XWAV', 'XWAV'); - if strcmp(a, 'WAV') - PARAMS.ltsa.ftype = 1; - indirs = find_dirs(dir_name, '*.wav'); - elseif strcmp(a, 'XWAV') - PARAMS.ltsa.ftype = 2; - indirs = find_dirs(dir_name, '*.x.wav'); - else - disp_msg('Window closed. Exiting.'); - return - end - - % save output files in same locations - outdirs = indirs; - - % LTSA parameters - ltsa_params(indirs); % set taves and dfreqs - taves = PARAMS.ltsa.taves; - dfreqs = PARAMS.ltsa.dfreqs; - - % taves = 5; - % dfreqs = [100, 1, 10]; - - PARAMS.ltsa.ch = 1; % which channel do you want to process? - % PARAMS.ltsa.ftype = 2; % 2 for xwavs, 1 for wavs - if PARAMS.ltsa.ftype == 2 - % specify data type -1 HRP, 2 ARP, 3 OBS? Pulling these nums from - % ck_ltsaparams.m - PARAMS.ltsa.dtype = 1; % 1 for HRP data - else % all wav files? Maybe not...but leaving for now. - PARAMS.ltsa.dtype = 4; % standard wav/ishmael format? - end - - % raw files to skip. leave this empty if no rfs wanted to skip - %PARAMS.ltsa.rf_skip = [47957 47986 47989 48016 48019 48045 48048 48051 48081 48541]; - % PARAMS.ltsa.rf_skip = [11716 11715]; - PARAMS.ltsa.rf_skip = []; - - % loop through each of the sets of directories for PRE-CHECK - prefixes = {1, length(indirs)}; - outfiles = {1, length(indirs)}; - dirdata = {1, length(indirs)}; - for k = 1:length(indirs) - % if we have different parameters for each of the dirs, adjust - % accordingly - if length(dfreqs) > 1 - dfreq = dfreqs(k); - else - dfreq = dfreqs; - end - if length(taves) > 1 - tave = taves(k); - else - tave = taves; - end - - PARAMS.ltsa.indir = char(indirs{k}); - PARAMS.ltsa.outdir = char(outdirs{k}); - PARAMS.ltsa.tave = tave; - PARAMS.ltsa.dfreq = dfreq; - - % create the outfile and prefix - [prefixes{k}, outfiles{k}, dirdata{k}] = gen_prefix(); - - % make sure filenames will work - success = ck_names(prefixes{k}); - - % check to see if the ltsa file already exists - PARAMS.ltsa.indir = indirs{k}; - if exist(fullfile(PARAMS.ltsa.indir, outfiles{k}), 'file') - choice = questdlg('LTSA file already found', 'LTSA creation', ... - 'Overwrite', 'Continue, don''t overwrite', 'Skip', 'Skip'); - if strcmp(choice, 'Continue, don''t overwrite') - outfiles{k} = sprintf('%s_copy.ltsa', PARAMS.ltsa.outfile(1:end-5)); - ltsa_bools(k) = 1; - % remove parameters for this LTSA - elseif strcmp(choice, 'Skip') - indirs(k) = []; - outdirs(k) = []; - prefixes(k) = []; - outfiles(k) = []; - dirdata(k) = []; - taves(k) = []; - dfreqs(k) = []; - end - end - - % if strcmp(ans, 'Skip') || ~success - if ~success - disp_msg(sprintf('Skipping LTSA creation for %s\n', prefixes{k})); - indirs(k) = []; - outdirs(k) = []; - prefixes(k) = []; - outfiles(k) = []; - dirdata(k) = []; - taves(k) = []; - dfreqs(k) = []; - end - end -end - -% loop through each of the sets of directories for actual ltsa creation -for k = 1:length(indirs) - - % if we have different parameters for each of the dirs, adjust - % accordingly - if length(taves) > 1 - tave = taves(k); - else - tave = taves; - end - if length(dfreqs) > 1 - dfreq = dfreqs(k); - else - dfreq = dfreqs; - end - - PARAMS.ltsa.indir = char(indirs{k}); - PARAMS.ltsa.outdir = char(outdirs{k}); - PARAMS.ltsa.outfile = char(outfiles{k}); - PARAMS.ltsa.tave = tave; - PARAMS.ltsa.dfreq = dfreq; - - % prefix = prefixes{k}; - - % run from matlab command line - if ~isfield(REMORA, 'hrp') - d = dirdata{k}; - if ~isfield(d, 'dataID') % non xwav/typical dir - fprintf('\nMaking LTSA for directory %s\n', PARAMS.ltsa.indir) - else - fprintf('\nMaking LTSA for %s disk %s df %i\n', d.dataID, d.disk, d.df); - end - % run from procFun - else - fprintf('\nMaking LTSA for %s disk %s df %i\n', REMORA.hrp.dataID, REMORA.hrp.disk, REMORA.hrp.dfs(k)); - end - - % make the ltsa! - mk_ltsa_dir; - fprintf('\nFinished LTSA for directory %s\n Press any key to continue...\n', PARAMS.ltsa.indir) - pause -end % all directories - -end - -% check to see if the xwav/wav names are compatible with ltsa format -function success = ck_names(prefix) - -global PARAMS - -success = 1; - -% find filenames for xwav/wav -if PARAMS.ltsa.ftype == 1 - files = dir(fullfile(PARAMS.ltsa.indir, '*.wav')); -elseif PARAMS.ltsa.ftype == 2 - files = dir(fullfile(PARAMS.ltsa.indir, '*.x.wav')); -end - -% check to see if filenames are the same length -prev_fname = files(1).name; -for x = 1:length(files) - curr_fname = files(x).name; - if length(prev_fname) ~= length(curr_fname) - success = 0; - break; - end -end - -% check to see if filenames contain timestamps (wavs only! xwavs have -% timing info in headers) -if PARAMS.ltsa.ftype == 1 - fname = files(1).name; - dnum = wavname2dnum(fname); - - % datenumber isn't in filenames - if isempty(dnum); success = 0; end -end - -% if we don't like the format, offer to change wav/xwav filenames -if ~success; success = rename_wavs(prefix); end - -% either continue with ltsa creation or return -if success; success = 1; return; end; -end - -% create a prefix and an outfile name for ltsas generated -function [prefix,ltsa_file,dirdat] = gen_prefix() -global PARAMS - -% struct to hold dataID, disk #, and df of this indir -dirdat = struct; - -% check for typical xwav header format -[~, dirname, ~] = fileparts(PARAMS.ltsa.indir); -exp = '^[\w-_]+(?=_disk)'; -dataID = regexp(dirname, exp, 'match'); - -% traditional xwav/wav filename format -if ~isempty(dataID) - dataID = char(dataID(1,:)); - - exp = 'disk(\d{2})[_df]*([0-9]*)'; - tokens = regexp(dirname, exp, 'tokens'); - tokens = tokens{1}; - - disk = tokens{1}; - - % create the prefix - if ~isempty(tokens{2}) - df = str2num(tokens{2}); - prefix = ... - sprintf('%s_disk%s',dataID,disk); - ltsa_file = ... - sprintf('%s_%ds_%dHz.ltsa',prefix,PARAMS.ltsa.tave,PARAMS.ltsa.dfreq,df); - else - df = 1; - prefix = ... - sprintf('%s_disk%s',dataID,disk); - end - - dirdat.dataID = dataID; - dirdat.disk = disk; - dirdat.df = df; - - % if non-traditional format, use directory name to create prefix and - % ltsa name -else - % get parent directory name - prefix = strsplit(PARAMS.ltsa.indir, '\'); % TODO issue between running on windows and mac? - prefix = prefix{end}; - prefix = strrep(prefix, ' ', '_'); - exp = '[^\w]+'; - prefix = regexprep(prefix, exp, ''); - prefix = strrep(prefix, '__', '_'); -end - -% make sure that prefix isn't too long to fit into ltsa metadata -% (80 characters!) -if PARAMS.ltsa.ftype == 2 % xwavs - lim = 60; -elseif PARAMS.ltsa.ftype == 1 % wavs - lim = 62; -end - -if length(prefix) > lim - prefix = prefix(1:lim); -end - -% create the outfile name -if ~strcmp(prefix(end), '_') - prefix = [prefix, '_']; -end - -ltsa_file = ... - sprintf('%s%ds_%dHz.ltsa',prefix,PARAMS.ltsa.tave,PARAMS.ltsa.dfreq); -end - -function dirs = find_dirs(d, ftype) -cd(d); -dirs = {}; - -% find each of the subdirectories -files = dir; -inds = find(vertcat(files.isdir)); -subdirs = {}; -subdirs_xwav = {}; -for k = 1:length(inds) - ind = inds(k); - if ~strcmp(files(ind).name, '.') && ~strcmp(files(ind).name, '..') - subdirs{end+1} = fullfile(d, files(ind).name); - end -end - -% for each subdirectory, check for xwavs and append to list of indirs -for k = 1:size(subdirs, 2) - subdirs_xwav = find_dirs(subdirs{k}, ftype); - dirs = cat_cell(dirs, subdirs_xwav); -end -cd(d); -if ~isempty(dir(ftype)) - dirs{end+1} = d; -end - -end - -% concatenate two cell arrays cause APPARENTLY THIS ISN'T EASY IN MATLAB -function c1 = cat_cell(c1, c2) - -for k = 1:size(c2, 2) - c1{end+1} = c2{k}; -end -end - -function ltsa_params(dirs) % creates gui window to define ltsa settings -mycolor = [.8,.8,.8]; -r = length(dirs) + 2; -c = 3; -h = 0.025*r; -w = 0.09*c; - -bh = 1/r; -bw = 1/c; - -y = zeros(1, r); -for ri = 2:r - y(ri) = 1/r + y(ri-1); -end - -x = zeros(1, r); -for ci = 2:c - x(ci) = 1/c + x(ci-1); -end - -btnPos = [0,0,w,h]; -fig = figure('Name', 'Choose taves & dfreqs', 'Units', 'normalized', ... - 'Position', btnPos, 'MenuBar', 'none', 'NumberTitle', 'off'); -movegui(gcf, 'center'); - -% entry labels -labelStr = 'Directory Name'; -btnPos = [x(1), y(end), 2*bw, bh]; -uicontrol(fig, 'Units', 'normalized', 'BackgroundColor', mycolor,... - 'Position', btnPos, 'Style', 'text', 'String', labelStr); - -labelStr = 'tave'; -btnPos = [x(3), y(end), 0.5*bw, bh]; -uicontrol(fig, 'Units', 'normalized', 'BackgroundColor', mycolor,... - 'Position', btnPos, 'Style', 'text', 'String', labelStr); - -labelStr = 'dfreq'; -btnPos = [x(3)+x(2)*0.5, y(end), 0.5*bw, bh]; -uicontrol(fig, 'Units', 'normalized', 'BackgroundColor', mycolor,... - 'Position', btnPos, 'Style', 'text', 'String', labelStr); - -fig_taves = {}; -fig_dfreqs = {}; - -% directory names and ed txt -for d = 1:length(dirs) - labelStr = dirs(d); - btnPos = [x(1), y(end-d), 2*bw, bh]; - uicontrol(fig, 'Units', 'normalized', 'BackgroundColor', mycolor,... - 'Position', btnPos, 'Style', 'text', 'String', labelStr,... - 'HorizontalAlign', 'left'); - - % tave - labelStr = '5'; - btnPos = [x(3), y(end-d), 0.5*bw, bh]; - fig_taves{end+1} = uicontrol(fig, 'Units', 'normalized', 'Position', btnPos,... - 'Style', 'edit', 'String', labelStr); - - % dfreq - labelStr = '100'; - btnPos = [x(3)+x(2)*0.5, y(end-d), 0.5*bw, bh]; - fig_dfreqs{end+1} = uicontrol(fig, 'Units', 'normalized', 'Position', btnPos,... - 'Style', 'edit', 'String', labelStr); -end - -% go button -labelStr = 'Okay'; -btnPos = [x(3), y(1), bw, bh]; -uicontrol(fig, 'Units', 'normalized', 'Position', btnPos,... - 'Style', 'push', 'String', labelStr, 'Callback', {@okay, fig, fig_taves, fig_dfreqs}); -uiwait; -end - -function okay(~, ~, fig, fig_taves, fig_dfreqs) - -global PARAMS - -% close figure and assign values -PARAMS.ltsa.taves = zeros(length(fig_taves), 1); -PARAMS.ltsa.dfreqs = zeros(length(fig_dfreqs), 1); -for d = 1:length(fig_taves) - PARAMS.ltsa.taves(d) = str2num(get(fig_taves{d}, 'String')); - PARAMS.ltsa.dfreqs(d) = str2num(get(fig_dfreqs{d}, 'String')); -end -close(fig); -end - - From 392cc9ed4388c36294c0e4609f8925668753f09b Mon Sep 17 00:00:00 2001 From: sfregosi <22456126+sfregosi@users.noreply.github.com> Date: Tue, 17 Aug 2021 11:09:01 -1000 Subject: [PATCH 6/6] Delete InstalledRemoras.cnf --- Settings/InstalledRemoras.cnf | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Settings/InstalledRemoras.cnf diff --git a/Settings/InstalledRemoras.cnf b/Settings/InstalledRemoras.cnf deleted file mode 100644 index 3e04a380..00000000 --- a/Settings/InstalledRemoras.cnf +++ /dev/null @@ -1 +0,0 @@ -C:\Users\Selene.Fregosi\Documents\MATLAB\Triton\Remoras\Logger