Files
paper_2025/python/collect_inv_data_full.py
j-hartling e70d100655 Added loads of units in nearly all graphs.
Overhauled fig_invariance_full.pdf.
Added some legends, somewhere.
2026-04-28 19:43:05 +02:00

57 lines
1.7 KiB
Python

import numpy as np
from thunderhopper.filetools import search_files
from thunderhopper.modeltools import load_data, save_data
from IPython import embed
# GENERAL SETTINGS:
target_species = [
# 'Chorthippus_biguttulus',
# 'Chorthippus_mollis',
# 'Chrysochraon_dispar',
# 'Euchorthippus_declivus',
# 'Gomphocerippus_rufus',
'Omocestus_rufipes',
# 'Pseudochorthippus_parallelus',
]
stages = ['filt', 'env', 'log', 'inv', 'conv', 'feat']
search_path = '../data/inv/full/'
save_path = '../data/inv/full/collected/'
# EXECUTION:
for i, species in enumerate(target_species):
print(f'Processing {species}')
# Fetch all species-specific song files:
all_paths = search_files(species, ext='npz', dir=search_path)
if not all_paths:
continue
# Run through files:
for j, path in enumerate(all_paths):
# Load invariance data:
data, config = load_data(path, 'scales', ['measure', 'thresh'])
if j == 0:
# Prepare species-specific storage:
species_data = dict(
scales=data['scales'],
thresh_rel=data['thresh_rel'],
thresh_abs=data['thresh_abs']
)
for stage in stages:
mkey = f'measure_{stage}'
shape = data[mkey].shape + (len(all_paths),)
species_data[mkey] = np.zeros(shape, dtype=float)
# Log species data:
for stage in stages:
mkey = f'measure_{stage}'
species_data[mkey][..., j] = data[mkey]
# Save collected file data:
save_name = save_path + species
save_data(save_name, species_data, config, overwrite=True)
print('Done.')