Added multi-thresh simulation to "full" and "short" (currently running).
Added complete "rect-lp" analysis except figure. Added multiple appendix figs. Overhauled normalization options across all condense scripts. Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
@@ -26,7 +26,21 @@ search_path = '../data/inv/log_hp/'
|
||||
save_path = '../data/inv/log_hp/condensed/'
|
||||
|
||||
# ANALYSIS SETTINGS:
|
||||
compute_ratios = True
|
||||
mode = 'noise'
|
||||
normalization = [
|
||||
'none',
|
||||
'min',
|
||||
'max',
|
||||
'base',
|
||||
'range',
|
||||
][3]
|
||||
suffix = dict(
|
||||
none='_unnormed',
|
||||
min='_norm-min',
|
||||
max='_norm-max',
|
||||
base='_norm-base',
|
||||
range='_norm-range'
|
||||
)[normalization]
|
||||
plot_overview = True
|
||||
|
||||
# PREPARATION:
|
||||
@@ -44,7 +58,7 @@ for i, species in enumerate(target_species):
|
||||
axes[0, i].set_title(shorten_species(species))
|
||||
|
||||
# Fetch all species-specific song files:
|
||||
all_paths = search_files(species, incl='noise', ext='npz', dir=search_path)
|
||||
all_paths = search_files(species, incl=mode, ext='npz', dir=search_path)
|
||||
|
||||
# Sort song files by recording (one or more per source):
|
||||
sorted_paths = sort_files_by_rec(all_paths, sources)
|
||||
@@ -57,10 +71,6 @@ for i, species in enumerate(target_species):
|
||||
data, config = load_data(path, ['scales', 'measure_inv'])
|
||||
scales, measure = data['scales'], data['measure_inv']
|
||||
|
||||
# Relate to noise:
|
||||
if compute_ratios:
|
||||
measure /= measure[0]
|
||||
|
||||
if k == 0:
|
||||
# Prepare song file-specific storage:
|
||||
file_data = np.zeros((scales.size, len(rec_paths)), dtype=float)
|
||||
@@ -70,6 +80,21 @@ for i, species in enumerate(target_species):
|
||||
rec_sd = np.zeros((scales.size, len(sorted_paths)), dtype=float)
|
||||
|
||||
# Log song file data:
|
||||
if normalization == 'min':
|
||||
# Minimum normalization:
|
||||
measure /= measure.min(axis=0, keepdims=True)
|
||||
elif normalization == 'max':
|
||||
# Maximum normalization:
|
||||
measure /= measure.max(axis=0, keepdims=True)
|
||||
elif normalization == 'base':
|
||||
# Noise baseline normalization:
|
||||
measure /= measure[0]
|
||||
elif normalization == 'range':
|
||||
# Min-max normalization:
|
||||
min_measure = measure.min(axis=0, keepdims=True)
|
||||
max_measure = measure.max(axis=0, keepdims=True)
|
||||
measure = (measure - min_measure) / (max_measure - min_measure)
|
||||
|
||||
file_data[:, k] = measure
|
||||
|
||||
if plot_overview:
|
||||
@@ -85,8 +110,9 @@ for i, species in enumerate(target_species):
|
||||
rec_mean[:, j] + rec_sd[:, j], color='k', alpha=0.2)
|
||||
|
||||
# Save condensed recording data for current species:
|
||||
save_name = save_path + species + '_' + mode + suffix
|
||||
archive = dict(scales=scales, mean_inv=rec_mean, sd_inv=rec_sd)
|
||||
save_data(save_path + species, archive, config, overwrite=True)
|
||||
save_data(save_name, archive, config, overwrite=True)
|
||||
|
||||
if plot_overview:
|
||||
spec_mean = rec_mean.mean(axis=1)
|
||||
|
||||
Reference in New Issue
Block a user