Captioned appendix figures.

Polished some figures.
Shortened existing figure captions.
This commit is contained in:
j-hartling
2026-05-21 18:21:33 +02:00
parent 7996a62bde
commit 59a37503ba
20 changed files with 438 additions and 375 deletions

View File

@@ -14,7 +14,8 @@ target_species = [
'Omocestus_rufipes',
'Pseudochorthippus_parallelus',
]
search_path = '../data/inv/log_hp/collected/'
collect_path = '../data/inv/log_hp/collected/'
condense_path = '../data/inv/log_hp/condensed/'
save_path = '../data/inv/log_hp/saturation/'
# ANALYSIS SETTINGS:
@@ -32,7 +33,7 @@ pad = 0.05
# PREPARATION:
if compute_hist:
species_scales = []
min_scale, max_scale = [], []
min_scale, max_scale = np.inf, -np.inf
archives = [{} for _ in target_species]
# EXECUTION:
@@ -40,31 +41,48 @@ for i, species in enumerate(target_species):
print(f'Processing {species}')
# Load accumulated invariance data:
path = search_files(species, dir=search_path)[0]
path = search_files(species, dir=collect_path)[0]
data, config = load_data(path, ['scales', 'measure_inv'])
# Find upper saturation point per song file:
crit_inds = np.array(get_saturation(data['measure_inv'], **plateau_settings)[1])
crit_scales = data['scales'][crit_inds]
# Load condensed invariance data:
path = search_files(species, incl=['noise', 'norm-base'], dir=condense_path)[0]
data, _ = load_data(path, ['scales', 'mean_inv'])
# Find single upper saturation point of condensed curve:
crit_ind = get_saturation(data['mean_inv'].mean(axis=-1), **plateau_settings)[1]
crit_scale = data['scales'][crit_ind]
# Output options:
if not compute_hist:
# Save species data immediately:
archive = dict(crit_inds=crit_inds, crit_scales=crit_scales, scales=data['scales'])
archive = dict(
scales=data['scales'],
crit_inds=crit_inds,
crit_scales=crit_scales,
crit_ind=crit_ind,
crit_scale=crit_scale,
)
save_data(save_path + species, archive, config, overwrite=True)
continue
# Log but don't save data yet:
archives[i]['crit_inds'] = crit_inds
archives[i]['crit_scales'] = crit_scales
archives[i]['scales'] = data['scales']
min_scale.append(crit_scales.min())
max_scale.append(crit_scales.max())
min_scale = min(crit_scales.min(), min_scale)
max_scale = max(crit_scales.max(), max_scale)
archives[i].update(
scales=data['scales'],
crit_inds=crit_inds,
crit_scales=crit_scales,
crit_ind=crit_ind,
crit_scale=crit_scale,
)
# Optional histogram:
if compute_hist:
# Generated shared histogram edges:
min_scale, max_scale = min(min_scale), max(max_scale)
# Generated shared bin edges:
pad *= (max_scale - min_scale)
edges = np.linspace(max(0, min_scale - pad), max_scale + pad, bins + 1)
centers = edges[:-1] + np.diff(edges) / 2