Fetched bunch of species-specific song snippets.

Worked those into LogHP analysis.
Worked results into fig_invariance_log-hp.pdf.
Put details into new fig_invariance_log-hp_species.pdf (appendix).
This commit is contained in:
j-hartling
2026-04-14 17:30:58 +02:00
parent 0b9264b1e1
commit 36ac504efa
17 changed files with 490 additions and 205 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -267,6 +267,8 @@
\abx@aux@page{73}{18} \abx@aux@page{73}{18}
\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces \textbf {} }}{20}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces \textbf {} }}{20}{}\protected@file@percent }
\newlabel{}{{8}{20}{}{}{}} \newlabel{}{{8}{20}{}{}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces \textbf {} }}{20}{}\protected@file@percent }
\newlabel{}{{9}{20}{}{}{}}
\gdef\svg@ink@ver@settings{{\m@ne }{inkscape}{\m@ne }} \gdef\svg@ink@ver@settings{{\m@ne }{inkscape}{\m@ne }}
\abx@aux@read@bbl@mdfivesum{1380DC8C93D2855FDB132CC5A40AD52F} \abx@aux@read@bbl@mdfivesum{1380DC8C93D2855FDB132CC5A40AD52F}
\gdef \@abspage@last{20} \gdef \@abspage@last{20}

138
main.blg
View File

@@ -1,71 +1,71 @@
[0] Config.pm:307> INFO - This is Biber 2.19 [0] Config.pm:307> INFO - This is Biber 2.19
[0] Config.pm:310> INFO - Logfile is 'main.blg' [0] Config.pm:310> INFO - Logfile is 'main.blg'
[36] biber:340> INFO - === Mi Mär 25, 2026, 15:53:59 [36] biber:340> INFO - === Di Apr 14, 2026, 17:23:24
[43] Biber.pm:419> INFO - Reading 'main.bcf' [45] Biber.pm:419> INFO - Reading 'main.bcf'
[71] Biber.pm:979> INFO - Found 55 citekeys in bib section 0 [74] Biber.pm:979> INFO - Found 55 citekeys in bib section 0
[77] Biber.pm:4419> INFO - Processing section 0 [79] Biber.pm:4419> INFO - Processing section 0
[81] Biber.pm:4610> INFO - Looking for bibtex file 'cite.bib' for section 0 [84] Biber.pm:4610> INFO - Looking for bibtex file 'cite.bib' for section 0
[83] bibtex.pm:1713> INFO - LaTeX decoding ... [86] bibtex.pm:1713> INFO - LaTeX decoding ...
[112] bibtex.pm:1519> INFO - Found BibTeX data source 'cite.bib' [115] bibtex.pm:1519> INFO - Found BibTeX data source 'cite.bib'
[287] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized' [289] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized'
[287] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable' [289] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable'
[287] Biber.pm:4239> INFO - Sorting list 'nyt/global//global/global' of type 'entry' with template 'nyt' and locale 'en-US' [289] Biber.pm:4239> INFO - Sorting list 'nyt/global//global/global' of type 'entry' with template 'nyt' and locale 'en-US'
[287] Biber.pm:4245> INFO - No sort tailoring available for locale 'en-US' [289] Biber.pm:4245> INFO - No sort tailoring available for locale 'en-US'
[310] bbl.pm:660> INFO - Writing 'main.bbl' with encoding 'UTF-8' [312] bbl.pm:660> INFO - Writing 'main.bbl' with encoding 'UTF-8'
[320] bbl.pm:763> INFO - Output to main.bbl [323] bbl.pm:763> INFO - Output to main.bbl
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 10, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 10, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 21, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 21, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 38, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 38, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 49, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 49, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 58, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 58, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 73, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 73, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 82, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 82, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 91, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 91, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 100, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 100, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 109, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 109, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 118, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 118, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 127, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 127, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 136, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 136, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 157, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 157, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 178, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 178, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 187, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 187, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 196, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 196, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 207, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 207, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 218, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 218, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 229, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 229, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 240, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 240, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 249, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 249, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 258, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 258, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 269, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 269, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 278, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 278, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 289, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 289, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 300, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 300, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 309, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 309, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 328, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 328, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 337, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 337, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 400, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 400, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 419, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 419, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 428, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 428, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 437, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 437, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 456, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 456, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 491, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 491, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 526, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 526, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 535, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 535, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 556, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 556, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 565, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 565, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 576, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 576, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 587, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 587, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 619, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 619, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 648, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 648, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 658, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 658, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 667, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 667, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 688, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 688, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 709, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 709, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 720, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 720, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 729, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 729, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 749, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 749, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 766, warning: 6 characters of junk seen at toplevel [324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 766, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 775, warning: 6 characters of junk seen at toplevel [325] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 775, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 800, warning: 6 characters of junk seen at toplevel [325] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 800, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.utf8, line 817, warning: 6 characters of junk seen at toplevel [325] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 817, warning: 6 characters of junk seen at toplevel
[321] Biber.pm:133> INFO - WARNINGS: 55 [325] Biber.pm:133> INFO - WARNINGS: 55

View File

@@ -1,14 +1,14 @@
# Fdb version 4 # Fdb version 4
["biber main"] 1774450439.36422 "main.bcf" "main.bbl" "main" 1774939289.27389 0 ["biber main"] 1776180204.48481 "main.bcf" "main.bbl" "main" 1776180220.70543 0
"cite.bib" 1770904753.08918 27483 4290db0c91f7b5055e25472ef913f6b4 "" "cite.bib" 1770904753.08918 27483 4290db0c91f7b5055e25472ef913f6b4 ""
"main.bcf" 1774939289.16212 112931 2a478116d80ebb1ada7083a24facd6e3 "pdflatex" "main.bcf" 1776180220.65176 112931 2a478116d80ebb1ada7083a24facd6e3 "pdflatex"
(generated) (generated)
"main.bbl" "main.bbl"
"main.blg" "main.blg"
(rewritten before read) (rewritten before read)
["pdflatex"] 1774939287.87141 "/home/hartling/phd/paper/paper_2025/main.tex" "main.pdf" "main" 1774939289.27409 0 ["pdflatex"] 1776180219.79356 "/home/hartling/phd/paper/paper_2025/main.tex" "main.pdf" "main" 1776180220.70564 0
"/etc/texmf/web2c/texmf.cnf" 1761560044.43676 475 c0e671620eb5563b2130f56340a5fde8 "" "/etc/texmf/web2c/texmf.cnf" 1761560044.43676 475 c0e671620eb5563b2130f56340a5fde8 ""
"/home/hartling/phd/paper/paper_2025/main.tex" 1774450464.03788 48022 de46789e7f0ca716a47759b334bfa10b "" "/home/hartling/phd/paper/paper_2025/main.tex" 1776180218.75477 48226 a69e6ee3ae074d48c75cb0bb31adebb7 ""
"/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" "/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1246382020 1004 54797486969f23fa377b128694d548df "" "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1246382020 1004 54797486969f23fa377b128694d548df ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex8.tfm" 1246382020 988 bdf658c3bfc2d96d3c8b02cfc1c94c20 "" "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex8.tfm" 1246382020 988 bdf658c3bfc2d96d3c8b02cfc1c94c20 ""
@@ -153,16 +153,17 @@
"/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1761648508 8213325 7fd20752ab46ff9aa583e4973d7433df "" "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1761648508 8213325 7fd20752ab46ff9aa583e4973d7433df ""
"figures/fig_auditory_pathway.pdf" 1771593904.14638 1153923 3df8539421fd21dc866cc8d320bd9b1d "" "figures/fig_auditory_pathway.pdf" 1771593904.14638 1153923 3df8539421fd21dc866cc8d320bd9b1d ""
"figures/fig_feat_stages.pdf" 1774002994.98767 11091006 565fe951f1255c121429a060082398f5 "" "figures/fig_feat_stages.pdf" 1774002994.98767 11091006 565fe951f1255c121429a060082398f5 ""
"figures/fig_invariance_full.pdf" 1774271483.89842 149796490 a2dd04969d8a98c63c3653d20848c0b6 "" "figures/fig_invariance_full.pdf" 1775044457.44326 51364 cdc2f94096a4ec98dd58b81315199213 ""
"figures/fig_invariance_log_hp.pdf" 1774862828.87982 837296 93dd5e5b25285f2b3d6c8e3c0d2fd5f1 "" "figures/fig_invariance_log-hp_species.pdf" 1776180090.89783 565762 9243d82b7795c23ce67cc60cc79852fe ""
"figures/fig_invariance_log_hp.pdf" 1776176630.23299 837853 77e94473c532de76ca2a152c8c1509f4 ""
"figures/fig_invariance_thresh_lp_single.pdf" 1774448531.93474 921028 cae18b62e262b42f630e219fcaa0ca09 "" "figures/fig_invariance_thresh_lp_single.pdf" 1774448531.93474 921028 cae18b62e262b42f630e219fcaa0ca09 ""
"figures/fig_invariance_thresh_lp_species.pdf" 1774881323.87307 397460 b03004b5f296b884384b46c1419a5edf "" "figures/fig_invariance_thresh_lp_species.pdf" 1774942339.01068 397460 09bf9690db00ef77c4a2faf0d4e2c8d7 ""
"figures/fig_noise_env_sd_conversion.pdf" 1774256952.42051 45466 671a2b8fbf72b4eba6b970b4421f2521 "" "figures/fig_noise_env_sd_conversion.pdf" 1774256952.42051 45466 671a2b8fbf72b4eba6b970b4421f2521 ""
"figures/fig_pre_stages.pdf" 1774002992.74268 449426 5762be15627fe5d8b6d108b7ea18db44 "" "figures/fig_pre_stages.pdf" 1774002992.74268 449426 5762be15627fe5d8b6d108b7ea18db44 ""
"main.aux" 1774939289.15612 15278 8ddadc678eacbeaae96061ab2907f0b9 "pdflatex" "main.aux" 1776180220.64576 15421 c52b01adcd46aa2ef82220b23727550f "pdflatex"
"main.bbl" 1774450439.97007 91039 1380dc8c93d2855fdb132cc5a40ad52f "biber main" "main.bbl" 1776180205.19289 91039 1380dc8c93d2855fdb132cc5a40ad52f "biber main"
"main.run.xml" 1774939289.16212 2335 a049bc26a7f032e842ce55de5bc38328 "pdflatex" "main.run.xml" 1776180220.65276 2335 a049bc26a7f032e842ce55de5bc38328 "pdflatex"
"main.tex" 1774450464.03788 48022 de46789e7f0ca716a47759b334bfa10b "" "main.tex" 1776180218.75477 48226 a69e6ee3ae074d48c75cb0bb31adebb7 ""
(generated) (generated)
"main.aux" "main.aux"
"main.bcf" "main.bcf"

View File

@@ -313,6 +313,11 @@ INPUT ./figures/fig_noise_env_sd_conversion.pdf
INPUT ./figures/fig_noise_env_sd_conversion.pdf INPUT ./figures/fig_noise_env_sd_conversion.pdf
INPUT ./figures/fig_noise_env_sd_conversion.pdf INPUT ./figures/fig_noise_env_sd_conversion.pdf
INPUT ./figures/fig_noise_env_sd_conversion.pdf INPUT ./figures/fig_noise_env_sd_conversion.pdf
INPUT ./figures/fig_invariance_log-hp_species.pdf
INPUT ./figures/fig_invariance_log-hp_species.pdf
INPUT ./figures/fig_invariance_log-hp_species.pdf
INPUT ./figures/fig_invariance_log-hp_species.pdf
INPUT ./figures/fig_invariance_log-hp_species.pdf
INPUT main.aux INPUT main.aux
INPUT main.run.xml INPUT main.run.xml
OUTPUT main.run.xml OUTPUT main.run.xml

View File

@@ -1,4 +1,4 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Debian) (preloaded format=pdflatex 2025.10.28) 31 MAR 2026 08:41 This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Debian) (preloaded format=pdflatex 2025.10.28) 14 APR 2026 17:23
entering extended mode entering extended mode
restricted \write18 enabled. restricted \write18 enabled.
file:line:error style messages enabled. file:line:error style messages enabled.
@@ -593,7 +593,11 @@ Package biblatex Warning: 'babel/polyglossia' detected but 'csquotes' missing.
\@quotelevel=\count434 \@quotelevel=\count434
\@quotereset=\count435 \@quotereset=\count435
(./main.aux) (./main.aux
LaTeX Warning: Label `' multiply defined.
)
\openout1 = `main.aux'. \openout1 = `main.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 40. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 40.
@@ -774,52 +778,62 @@ Package pdftex.def Info: figures/fig_invariance_log_hp.pdf used on input line 6
LaTeX Warning: Text page 13 contains only floats. LaTeX Warning: Text page 13 contains only floats.
[13 <./figures/fig_invariance_log_hp.pdf>] [13 <./figures/fig_invariance_log_hp.pdf>]
<figures/fig_invariance_thresh_lp_single.pdf, id=1229, 910.48819pt x 455.2441pt> <figures/fig_invariance_thresh_lp_single.pdf, id=1232, 910.48819pt x 455.2441pt>
File: figures/fig_invariance_thresh_lp_single.pdf Graphic file (type pdf) File: figures/fig_invariance_thresh_lp_single.pdf Graphic file (type pdf)
<use figures/fig_invariance_thresh_lp_single.pdf> <use figures/fig_invariance_thresh_lp_single.pdf>
Package pdftex.def Info: figures/fig_invariance_thresh_lp_single.pdf used on input line 663. Package pdftex.def Info: figures/fig_invariance_thresh_lp_single.pdf used on input line 663.
(pdftex.def) Requested size: 483.69687pt x 241.84782pt. (pdftex.def) Requested size: 483.69687pt x 241.84782pt.
<figures/fig_invariance_thresh_lp_species.pdf, id=1230, 910.48819pt x 910.48819pt> <figures/fig_invariance_thresh_lp_species.pdf, id=1233, 910.48819pt x 910.48819pt>
File: figures/fig_invariance_thresh_lp_species.pdf Graphic file (type pdf) File: figures/fig_invariance_thresh_lp_species.pdf Graphic file (type pdf)
<use figures/fig_invariance_thresh_lp_species.pdf> <use figures/fig_invariance_thresh_lp_species.pdf>
Package pdftex.def Info: figures/fig_invariance_thresh_lp_species.pdf used on input line 693. Package pdftex.def Info: figures/fig_invariance_thresh_lp_species.pdf used on input line 693.
(pdftex.def) Requested size: 483.69687pt x 483.69566pt. (pdftex.def) Requested size: 483.69687pt x 483.69566pt.
[14 <./figures/fig_invariance_thresh_lp_single.pdf>] [14 <./figures/fig_invariance_thresh_lp_single.pdf>]
<figures/fig_invariance_full.pdf, id=1302, 910.48819pt x 455.2441pt> <figures/fig_invariance_full.pdf, id=1305, 910.48819pt x 569.05513pt>
File: figures/fig_invariance_full.pdf Graphic file (type pdf) File: figures/fig_invariance_full.pdf Graphic file (type pdf)
<use figures/fig_invariance_full.pdf> <use figures/fig_invariance_full.pdf>
Package pdftex.def Info: figures/fig_invariance_full.pdf used on input line 703. Package pdftex.def Info: figures/fig_invariance_full.pdf used on input line 703.
(pdftex.def) Requested size: 483.69687pt x 241.84782pt. (pdftex.def) Requested size: 483.69687pt x 302.3098pt.
[15 <./figures/fig_invariance_thresh_lp_species.pdf>] [16 <./figures/fig_invariance_full.pdf>] [17 [15 <./figures/fig_invariance_thresh_lp_species.pdf>] [16 <./figures/fig_invariance_full.pdf>] [17
] [18] ] [18]
<figures/fig_noise_env_sd_conversion.pdf, id=1501, 910.48819pt x 455.2441pt> <figures/fig_noise_env_sd_conversion.pdf, id=1512, 910.48819pt x 455.2441pt>
File: figures/fig_noise_env_sd_conversion.pdf Graphic file (type pdf) File: figures/fig_noise_env_sd_conversion.pdf Graphic file (type pdf)
<use figures/fig_noise_env_sd_conversion.pdf> <use figures/fig_noise_env_sd_conversion.pdf>
Package pdftex.def Info: figures/fig_noise_env_sd_conversion.pdf used on input line 862. Package pdftex.def Info: figures/fig_noise_env_sd_conversion.pdf used on input line 862.
(pdftex.def) Requested size: 483.69687pt x 241.84782pt. (pdftex.def) Requested size: 483.69687pt x 241.84782pt.
[19] [20 <./figures/fig_noise_env_sd_conversion.pdf>] (./main.aux) [19]
<figures/fig_invariance_log-hp_species.pdf, id=1517, 910.48819pt x 455.2441pt>
File: figures/fig_invariance_log-hp_species.pdf Graphic file (type pdf)
<use figures/fig_invariance_log-hp_species.pdf>
Package pdftex.def Info: figures/fig_invariance_log-hp_species.pdf used on input line 871.
(pdftex.def) Requested size: 483.69687pt x 241.84782pt.
[20 <./figures/fig_noise_env_sd_conversion.pdf> <./figures/fig_invariance_log-hp_species.pdf>] (./main.aux)
*********** ***********
LaTeX2e <2023-11-01> patch level 1 LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-01-22> L3 programming layer <2024-01-22>
*********** ***********
LaTeX Warning: There were multiply-defined labels.
Package logreq Info: Writing requests to 'main.run.xml'. Package logreq Info: Writing requests to 'main.run.xml'.
\openout1 = `main.run.xml'. \openout1 = `main.run.xml'.
) )
Here is how much of TeX's memory you used: Here is how much of TeX's memory you used:
20762 strings out of 474222 20769 strings out of 474222
448017 string characters out of 5748732 448376 string characters out of 5748732
1937975 words of memory out of 5000000 1937975 words of memory out of 5000000
42752 multiletter control sequences out of 15000+600000 42759 multiletter control sequences out of 15000+600000
569394 words of font info for 79 fonts, out of 8000000 for 9000 569394 words of font info for 79 fonts, out of 8000000 for 9000
1143 hyphenation exceptions out of 8191 1143 hyphenation exceptions out of 8191
94i,19n,93p,1496b,1732s stack positions out of 10000i,1000n,20000p,200000b,200000s 94i,19n,93p,1496b,1740s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbxti10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi6.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb> </usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbxti10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi6.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb>
Output written on main.pdf (20 pages, 164834440 bytes). Output written on main.pdf (20 pages, 15648193 bytes).
PDF statistics: PDF statistics:
1638 PDF objects out of 1728 (max. 8388607) 1702 PDF objects out of 1728 (max. 8388607)
867 compressed objects within 9 object streams 884 compressed objects within 9 object streams
0 named destinations out of 1000 (max. 500000) 0 named destinations out of 1000 (max. 500000)
53 words of extra memory for PDF output out of 10000 (max. 10000000) 58 words of extra memory for PDF output out of 10000 (max. 10000000)

BIN
main.pdf

Binary file not shown.

Binary file not shown.

View File

@@ -866,4 +866,13 @@ initiation of one behavior over another is categorical (e.g. approach/stay)
\end{figure} \end{figure}
\FloatBarrier \FloatBarrier
\begin{figure}[!ht]
\centering
\includegraphics[width=\textwidth]{figures/fig_invariance_log-hp_species.pdf}
\caption{\textbf{}
}
\label{}
\end{figure}
\FloatBarrier
\end{document} \end{document}

View File

@@ -0,0 +1,136 @@
import numpy as np
import matplotlib.pyplot as plt
from thunderhopper.filetools import search_files, crop_paths
from thunderhopper.modeltools import load_data, save_data
from misc_functions import shorten_species
from IPython import embed
# GENERAL SETTINGS:
target_species = [
'Chorthippus_biguttulus',
'Chorthippus_mollis',
'Chrysochraon_dispar',
'Euchorthippus_declivus',
'Gomphocerippus_rufus',
'Omocestus_rufipes',
'Pseudochorthippus_parallelus',
]
sources = [
'BM04',
'BM93',
'DJN',
'GBC',
'FTN'
]
search_path = '../data/inv/log_hp/'
ref_path = '../data/inv/log_hp/ref_measures.npz'
save_path = '../data/inv/log_hp/condensed/'
# ANALYSIS SETTINGS:
compute_ratios = True
plot_overview = True
# PREPARATION:
if compute_ratios:
ref_measure = np.load(ref_path)['inv']
if plot_overview:
fig, axes = plt.subplots(3, len(target_species), figsize=(16, 9),
sharex=True, sharey=True, layout='constrained')
axes[0, 0].set_ylabel('songs')
axes[1, 0].set_ylabel('recordings\n(mean ± SD)')
axes[2, 0].set_ylabel('total\n(mean ± SEM)')
# EXECUTION:
for i, species in enumerate(target_species):
print(f'Processing {species}')
if plot_overview:
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)
# Separate by source:
sorted_paths = {}
for source in sources:
# Check for any source-specific song files:
source_paths = [path for path in all_paths if source in path]
if not source_paths:
continue
# Separate by recording:
sorted_paths[source] = [[]]
for path, name in zip(source_paths, crop_paths(source_paths)):
# Find numerical ID behind source tag:
id_ind = name.find(source) + len(source) + 1
# Check if ID is followed by sub-ID:
sub_id = name[id_ind:].split('-')[1]
if 's' in sub_id:
# Single (time stamp in next spot):
sorted_paths[source][0].append(path)
continue
sub_id = int(sub_id)
# Multiple (sub-ID in next spot):
if sub_id > len(sorted_paths[source]):
# Open new recording-specific slot:
sorted_paths[source].append([])
sorted_paths[source][sub_id - 1].append(path)
# Re-sort song files only by recording (discarding source separation):
sorted_paths = [path for paths in sorted_paths.values() for path in paths]
# Condense across song files per recording:
for j, rec_paths in enumerate(sorted_paths):
for k, path in enumerate(rec_paths):
# Load invariance data:
data, _ = load_data(path, ['scales', 'measure_inv'])
scales, measure = data['scales'], data['measure_inv']
# Relate to noise:
if compute_ratios:
measure /= ref_measure
if k == 0:
# Prepare song file-specific storage:
file_data = np.zeros((scales.size, len(rec_paths)), dtype=float)
if j == 0:
# Prepare recording-specific storage:
rec_mean = np.zeros((scales.size, len(sorted_paths)), dtype=float)
rec_sd = np.zeros((scales.size, len(sorted_paths)), dtype=float)
# Log song file data:
file_data[:, k] = measure
if plot_overview:
axes[0, i].plot(scales, measure, c='k', alpha=0.5)
# Get recording statistics:
rec_mean[:, j] = file_data.mean(axis=1)
rec_sd[:, j] = file_data.std(axis=1)
if plot_overview:
axes[1, i].plot(scales, rec_mean[:, j], c='k')
axes[1, i].fill_between(scales, rec_mean[:, j] - rec_sd[:, j],
rec_mean[:, j] + rec_sd[:, j], color='k', alpha=0.2)
# Save condensed recording data for current species:
np.savez(save_path + species, scales=scales, mean=rec_mean, sd=rec_sd)
if plot_overview:
spec_mean = rec_mean.mean(axis=1)
spec_sd = rec_mean.std(axis=1)
axes[2, i].plot(scales, spec_mean, c='k')
axes[2, i].fill_between(scales, spec_mean - spec_sd, spec_mean + spec_sd,
color='k', alpha=0.2)
print('Done.')
if plot_overview:
axes[0, 0].set_xlim(scales[0], scales[-1])
axes[0, 0].set_xscale('log')
axes[0, 0].set_yscale('log')
plt.show()

View File

@@ -27,58 +27,29 @@ def plot_snippets(axes, time, snippets, ymin=None, ymax=None, **kwargs):
handles.extend(plot_line(ax, time, snippet, ymin=ymin, ymax=ymax, **kwargs)) handles.extend(plot_line(ax, time, snippet, ymin=ymin, ymax=ymax, **kwargs))
return handles return handles
def plot_dist_shifted(ax, data, axis, pdf=None, sigma=0.1, which='x', # def zalpha(handles, background='w', down=1):
base=None, cap=None, add_pdf=False, shifted=False, **kwargs): # twins = []
if pdf is None: # for handle in handles:
pdf, axis = get_kde(data, sigma, axis) # twin = handle.copy()
if base is None: # twin.set(color=background, alpha=1)
base = pdf.min() # twin.set_zorder(handle.get_zorder() - down)
if cap is None: # twins.append(twin)
cap = pdf.max() # return twins
pdf = (pdf - pdf.min()) / (pdf.max() - pdf.min()) * (cap - base) + base
if which == 'x':
transform = ax.get_xaxis_transform()
elif which == 'y':
transform = ax.get_yaxis_transform()
else:
transform = ax.transData
rng = np.random.default_rng()
handles = []
for value in data:
ind = np.nonzero(axis == value)[0][0]
offset = base if not shifted else rng.uniform(base, pdf[ind])
variables = (offset, value) if which=='y' else (value, offset)
handles.extend(ax.plot(*variables, transform=transform, **kwargs))
if add_pdf:
variables = (pdf, axis) if which=='y' else (axis, pdf)
pdf_handle = ax.plot(*variables, transform=transform, c='k', lw=1)
return handles, pdf_handle
return handles
def zalpha(handles, background='w', down=1):
twins = []
for handle in handles:
twin = handle.copy()
twin.set(color=background, alpha=1)
twin.set_zorder(handle.get_zorder() - down)
twins.append(twin)
return twins
# GENERAL SETTINGS: # GENERAL SETTINGS:
target = 'Omocestus_rufipes' target = 'Omocestus_rufipes_DJN_32-40s724ms-48s779ms'
data_paths = search_files(target, excl='noise', dir='../data/inv/log_hp/') data_paths = search_files(target, excl='noise', dir='../data/inv/log_hp/')
ref_path = '../data/inv/log_hp/ref_measures.npz' ref_path = '../data/inv/log_hp/ref_measures.npz'
save_path = '../figures/fig_invariance_log_hp.pdf' save_path = '../figures/fig_invariance_log_hp.pdf'
target_species = [ target_species = [
'Omocestus_rufipes',
'Chorthippus_biguttulus', 'Chorthippus_biguttulus',
'Chorthippus_mollis', 'Chorthippus_mollis',
'Chrysochraon_dispar', 'Chrysochraon_dispar',
'Euchorthippus_declivus',
'Gomphocerippus_rufus', 'Gomphocerippus_rufus',
'Omocestus_rufipes',
'Pseudochorthippus_parallelus', 'Pseudochorthippus_parallelus',
] ]
stages = ['env', 'log', 'inv'] stages = ['env', 'log', 'inv']
load_kwargs = dict( load_kwargs = dict(
files=stages, files=stages,
@@ -159,12 +130,13 @@ fs = dict(
) )
colors = load_colors('../data/stage_colors.npz') colors = load_colors('../data/stage_colors.npz')
species_colors = load_colors('../data/species_colors.npz') species_colors = load_colors('../data/species_colors.npz')
noise_colors = [(0.5, 0.5, 0.5), (0.7, 0.7, 0.7)] noise_colors = [(0.6,) * 3, (0.8,) * 3]
lw = dict( lw = dict(
snip=1, snip=1,
big=4, big=4,
spec=2, spec=2,
plateau=1, plateau=1.5,
legend=5,
) )
xlabels = dict( xlabels = dict(
big='scale $\\alpha$', big='scale $\\alpha$',
@@ -273,7 +245,7 @@ leg_kwargs = dict(
columnspacing=1, columnspacing=1,
) )
diag_kwargs = dict( diag_kwargs = dict(
c=(0.75, 0.75, 0.75), c=(0.3,) * 3,
lw=2, lw=2,
ls='--', ls='--',
zorder=1.9, zorder=1.9,
@@ -297,18 +269,9 @@ plateau_line_kwargs = dict(
) )
plateau_dot_kwargs = dict( plateau_dot_kwargs = dict(
marker='o', marker='o',
markersize=10, markersize=8,
markeredgecolor='k',
markeredgewidth=1, markeredgewidth=1,
# alpha=1,
zorder=6,
clip_on=False, clip_on=False,
# base=0,
# cap=0.15,
# add_pdf=True,
)
kde_kwargs = dict(
sigma=0.1,
) )
# PREPARATION: # PREPARATION:
@@ -317,18 +280,12 @@ if compute_ratios:
species_measures = {} species_measures = {}
thresh_inds = np.zeros((len(target_species),), dtype=int) thresh_inds = np.zeros((len(target_species),), dtype=int)
thresh_scales = np.zeros((len(target_species),), dtype=float)
for i, species in enumerate(target_species): for i, species in enumerate(target_species):
path = search_files(species, incl='noise', dir='../data/inv/log_hp/')[0] spec_path = search_files(species, dir='../data/inv/log_hp/condensed/')[0]
species_data = load_data(path, **load_kwargs)[0] spec_data = dict(np.load(spec_path))
measure = species_data['measure_inv'] measure = spec_data['mean'].mean(axis=1)
scales = species_data['scales']
if compute_ratios:
measure /= ref_measures['inv']
species_measures[species] = measure species_measures[species] = measure
thresh_inds[i] = get_saturation(measure, **plateau_settings)[1] thresh_inds[i] = get_saturation(measure, **plateau_settings)[1]
thresh_scales[i] = scales[thresh_inds[i]]
thresh_pdf, pdf_axis = get_kde(thresh_scales, axis=scales, **kde_kwargs)
# EXECUTION: # EXECUTION:
for data_path in data_paths: for data_path in data_paths:
@@ -460,24 +417,23 @@ for data_path in data_paths:
big_axes[1].axvspan(noise_scales[low_ind], noise_scales[high_ind], big_axes[1].axvspan(noise_scales[low_ind], noise_scales[high_ind],
fc=noise_colors[1], **plateau_rect_kwargs) fc=noise_colors[1], **plateau_rect_kwargs)
# Plot species-specific noise-song measures: # Plot species-specific noise-song invariance curves:
for i, (species, measure) in enumerate(species_measures.items()): for i, (species, measure) in enumerate(species_measures.items()):
# Plot invariance curve:
color = species_colors[species] color = species_colors[species]
ind, scale = thresh_inds[i], thresh_scales[i]
big_axes[2].plot(noise_scales, measure, label=shorten_species(species), big_axes[2].plot(noise_scales, measure, label=shorten_species(species),
c=color, lw=lw['spec']) c=color, lw=lw['spec'])
# Indicate saturation:
ind = thresh_inds[i]
scale = noise_scales[ind]
big_axes[2].plot(scale, 0, c='w', alpha=1, zorder=5.5, **plateau_dot_kwargs, big_axes[2].plot(scale, 0, c='w', alpha=1, zorder=5.5, **plateau_dot_kwargs,
transform=big_axes[2].get_xaxis_transform()) transform=big_axes[2].get_xaxis_transform())
handle = big_axes[2].plot(scale, 0, c=color, alpha=0.5, **plateau_dot_kwargs, big_axes[2].plot(scale, 0, mfc=color, mec='k', alpha=0.75, zorder=6, **plateau_dot_kwargs,
transform=big_axes[2].get_xaxis_transform()) transform=big_axes[2].get_xaxis_transform())
big_axes[2].vlines(scale, big_axes[2].get_ylim()[0], measure[ind], big_axes[2].vlines(scale, big_axes[2].get_ylim()[0], measure[ind],
color=color, **plateau_line_kwargs) color=color, **plateau_line_kwargs)
big_axes[2].legend(**leg_kwargs) legend = big_axes[2].legend(**leg_kwargs)
[h.set_lw(lw['legend']) for h in legend.legend_handles]
# handles = plot_dist_shifted(big_axes[2], species_threshs, axis=pdf_axis,
# pdf=thresh_pdf, **plateau_dot_kwargs)[0]
# [h.set_color(species_colors[s]) for h, s in zip(handles, target_species)]
if save_path is not None: if save_path is not None:
fig.savefig(save_path, bbox_inches='tight') fig.savefig(save_path, bbox_inches='tight')

View File

@@ -0,0 +1,108 @@
import plotstyle_plt
import numpy as np
import matplotlib.pyplot as plt
from thunderhopper.filetools import search_files
from plot_functions import ylabel, super_xlabel, letter_subplots, title_subplot
from color_functions import load_colors
from misc_functions import shorten_species
# GENERAL SETTINGS:
target_species = [
'Chorthippus_biguttulus',
'Chorthippus_mollis',
'Chrysochraon_dispar',
'Euchorthippus_declivus',
'Gomphocerippus_rufus',
'Omocestus_rufipes',
'Pseudochorthippus_parallelus',
]
data_path = '../data/inv/log_hp/condensed/'
save_path = '../figures/fig_invariance_log-hp_species.pdf'
# GRAPH SETTINGS:
fig_kwargs = dict(
figsize=(32/2.54, 16/2.54),
nrows=1,
ncols=len(target_species),
sharex=True,
sharey=True,
gridspec_kw=dict(
wspace=0.4,
hspace=0,
left=0.07,
right=0.98,
bottom=0.1,
top=0.95,
)
)
# PLOT SETTINGS:
colors = load_colors('../data/species_colors.npz')
line_kwargs = dict(
lw=2,
)
fill_kwargs = dict(
alpha=0.3,
zorder=1,
)
xlab = 'scale $\\alpha$'
ylab = '$\\sigma_{\\alpha}\\,/\\,\\sigma_{\\eta}$'
xlab_kwargs = dict(
y=0,
fontsize=16,
ha='center',
va='bottom',
)
ylab_kwargs = dict(
x=0,
fontsize=20,
ha='center',
va='top',
)
title_kwargs = dict(
x=0.5,
yref=0.99,
ha='center',
va='top',
fontsize=16,
fontstyle='italic',
)
letter_kwargs = dict(
x=0.005,
y=0.99,
fontsize=22,
ha='left',
va='top',
)
# Prepare graph:
fig, axes = plt.subplots(**fig_kwargs)
axes[0].set_ylim(0.9, 20)
axes[0].set_xscale('log')
axes[0].set_yscale('log')
super_xlabel(xlab, fig, axes[0], axes[-1], **xlab_kwargs)
ylabel(axes[0], ylab, **ylab_kwargs, transform=fig.transFigure)
# letter_subplots(axes, **letter_kwargs)
# Run through species:
for species, ax in zip(target_species, axes):
title_subplot(ax, shorten_species(species), ref=fig, **title_kwargs)
color = colors[species]
# Load species data:
path = search_files(species, dir=data_path)[0]
data = dict(np.load(path))
scales = data['scales']
means = data['mean']
sds = data['sd']
# Plot recording-specific traces:
for mean, sd in zip(means.T, sds.T):
ax.plot(scales, mean, c=color, **line_kwargs)
ax.fill_between(scales, mean - sd, mean + sd, color=color, **fill_kwargs)
# Save graph:
fig.savefig(save_path)
plt.show()

View File

@@ -2,6 +2,7 @@ import string
import numpy as np import numpy as np
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from matplotlib.transforms import Bbox, BboxTransformTo, TransformedBbox from matplotlib.transforms import Bbox, BboxTransformTo, TransformedBbox
from misc_functions import get_kde
def hide_ticks(ax, side='bottom', ticks=True): def hide_ticks(ax, side='bottom', ticks=True):
axis = 'x' if side in ['top', 'bottom'] else 'y' axis = 'x' if side in ['top', 'bottom'] else 'y'
@@ -298,3 +299,33 @@ def zoom_inset(ax, inset, handle, x0=None, x1=None, y0=None, y1=None, ref='x',
def set_clip_box(artist, ax, bounds=[[0, -0.05], [1, 1.05]]): def set_clip_box(artist, ax, bounds=[[0, -0.05], [1, 1.05]]):
artist.set_clip_box(TransformedBbox(Bbox(bounds), ax.transAxes)) artist.set_clip_box(TransformedBbox(Bbox(bounds), ax.transAxes))
return None return None
def plot_dist_shifted(ax, data, axis, pdf=None, sigma=0.1, which='x',
base=None, cap=None, add_pdf=False, shifted=False, **kwargs):
if pdf is None:
pdf, axis = get_kde(data, sigma, axis)
if base is None:
base = pdf.min()
if cap is None:
cap = pdf.max()
pdf = (pdf - pdf.min()) / (pdf.max() - pdf.min()) * (cap - base) + base
if which == 'x':
transform = ax.get_xaxis_transform()
elif which == 'y':
transform = ax.get_yaxis_transform()
else:
transform = ax.transData
rng = np.random.default_rng()
handles = []
for value in data:
ind = np.nonzero(axis == value)[0][0]
offset = base if not shifted else rng.uniform(base, pdf[ind])
variables = (offset, value) if which=='y' else (value, offset)
handles.extend(ax.plot(*variables, transform=transform, **kwargs))
if add_pdf:
variables = (pdf, axis) if which=='y' else (axis, pdf)
pdf_handle = ax.plot(*variables, transform=transform, c='k', lw=1)
return handles, pdf_handle
return handles

View File

@@ -5,16 +5,17 @@ from thunderhopper.filters import decibel, sosfilter
from IPython import embed from IPython import embed
# GENERAL SETTINGS: # GENERAL SETTINGS:
target = ['Omocestus_rufipes', '*'][0] example_file = 'Omocestus_rufipes_DJN_32-40s724ms-48s779ms'
data_paths = search_files(target, excl='noise', dir='../data/processed/') search_target = ['*', example_file][1]
data_paths = search_files(search_target, excl='noise', dir='../data/processed/')
noise_path = '../data/processed/white_noise_sd-1.npz' noise_path = '../data/processed/white_noise_sd-1.npz'
save_path = '../data/inv/log_hp/' save_path = '../data/inv/log_hp/'
# ANALYSIS SETTINGS: # ANALYSIS SETTINGS:
add_noise = target == '*' or False add_noise = search_target == '*' or False
save_snippets = target == 'Omocestus_rufipes' save_detailed = search_target == example_file
example_scales = np.array([0.1, 1, 10, 30, 100, 300]) example_scales = np.array([0.1, 1, 10, 30, 100, 300])
scales = np.geomspace(0.1, 10000, 500) scales = np.geomspace(0.01, 10000, 1000)
scales = np.unique(np.concatenate((scales, example_scales))) scales = np.unique(np.concatenate((scales, example_scales)))
# PREPARATION: # PREPARATION:
@@ -35,47 +36,67 @@ for data_path, name in zip(data_paths, crop_paths(data_paths)):
# Normalize song component: # Normalize song component:
song /= song[segment].std() song /= song[segment].std()
# Rescale song component:
mix = song[:, None] * scales[None, :]
if add_noise: if add_noise:
# Add normalized noise component: # Get normalized noise component:
noise = pure_noise[:song.shape[0]] noise = pure_noise[:song.shape[0]]
noise /= noise[segment].std() noise /= noise[segment].std()
mix += noise[:, None]
# Process mixture: # Prepare storage:
mix = sosfilter(np.abs(mix), rate, config['env_fcut'], 'lp', measure_inv = np.zeros_like(scales)
padtype='even', padlen=config['padlen']) if save_detailed:
mix_log = decibel(mix, ref=1) # Prepare optional storage:
mix_inv = sosfilter(mix_log, rate, config['inv_fcut'], 'hp', measure_env = np.zeros_like(scales)
padtype='constant', padlen=config['padlen']) measure_log = np.zeros_like(scales)
snip_env = np.zeros((song.shape[0], example_scales.size))
snip_log = np.zeros((song.shape[0], example_scales.size))
snip_inv = np.zeros((song.shape[0], example_scales.size))
# Get intensity measure per stage: # Execute piecewise:
measure_env = mix[segment, :].std(axis=0) for i, scale in enumerate(scales):
measure_log = mix_log[segment, :].std(axis=0)
measure_inv = mix_inv[segment, :].std(axis=0) # Get scaled mixture:
mix = song * scale
if add_noise:
mix += noise
# Process mixture:
mix = sosfilter(np.abs(mix), rate, config['env_fcut'], 'lp',
padtype='even', padlen=config['padlen'])
mix_log = decibel(mix, ref=1)
mix_inv = sosfilter(mix_log, rate, config['inv_fcut'], 'hp',
padtype='constant', padlen=config['padlen'])
# Log intensity measures:
measure_inv[i] = mix_inv[segment].std()
if save_detailed:
measure_env[i] = mix[segment].std()
measure_log[i] = mix_log[segment].std()
if scale in example_scales:
# Log snippet data:
save_ind = np.nonzero(example_scales == scale)[0][0]
snip_env[:, save_ind] = mix
snip_log[:, save_ind] = mix_log
snip_inv[:, save_ind] = mix_inv
# Save analysis results: # Save analysis results:
save_inds = np.nonzero(np.isin(scales, example_scales))[0]
if save_path is not None: if save_path is not None:
data = dict( archive = dict(
scales=scales, scales=scales,
example_scales=example_scales, example_scales=example_scales,
measure_env=measure_env,
measure_log=measure_log,
measure_inv=measure_inv, measure_inv=measure_inv,
) )
if save_snippets: if save_detailed:
data.update( archive.update(
snip_env=mix[:, save_inds], measure_env=measure_env,
snip_log=mix_log[:, save_inds], measure_log=measure_log,
snip_inv=mix_inv[:, save_inds], snip_env=snip_env,
snip_log=snip_log,
snip_inv=snip_inv,
) )
file_name = save_path + name file_name = save_path + name
if add_noise: if add_noise:
file_name += '_noise' file_name += '_noise'
save_data(file_name, data, config, overwrite=True) save_data(file_name, archive, config, overwrite=True)
print('Done.') print('Done.')
embed() embed()

View File

@@ -7,9 +7,10 @@ from IPython import embed
## SETTINGS: ## SETTINGS:
# General: # General:
search_target = '*'
input_folder = '../data/raw/' input_folder = '../data/raw/'
output_folder = '../data/processed/' output_folder = '../data/processed/'
stages = ['raw', 'filt', 'env', 'log', 'inv', 'conv', 'bi', 'feat', 'norm'] stages = ['raw', 'filt', 'env', 'log', 'inv', 'conv', 'bi', 'feat']
if False: if False:
# Overwrites edited: # Overwrites edited:
stages.append('songs') stages.append('songs')
@@ -30,7 +31,7 @@ config.update({
'rate_ratio': None, 'rate_ratio': None,
'env_fcut': 250, 'env_fcut': 250,
'db_ref': 1, 'db_ref': 1,
'inv_fcut': 5, 'inv_fcut': 10,
'feat_thresh': np.load('../data/kernel_thresholds.npy') * 0.2, 'feat_thresh': np.load('../data/kernel_thresholds.npy') * 0.2,
'feat_fcut': 0.5, 'feat_fcut': 0.5,
'label_channels': 0, 'label_channels': 0,
@@ -40,7 +41,7 @@ config.update({
## PREPARATION: ## PREPARATION:
# Fetch WAV recording files: # Fetch WAV recording files:
input_paths = search_files(ext='wav', dir=input_folder) input_paths = search_files(search_target, ext='wav', dir=input_folder)
path_names = crop_paths(input_paths) path_names = crop_paths(input_paths)
# PROCESSING: # PROCESSING:

View File

@@ -6,11 +6,12 @@ from IPython import embed
# Settings: # Settings:
species = [ species = [
'Omocestus_rufipes',
'Chorthippus_biguttulus', 'Chorthippus_biguttulus',
'Chorthippus_mollis', 'Chorthippus_mollis',
'Chrysochraon_dispar', 'Chrysochraon_dispar',
'Euchorthippus_declivus',
'Gomphocerippus_rufus', 'Gomphocerippus_rufus',
'Omocestus_rufipes',
'Pseudochorthippus_parallelus', 'Pseudochorthippus_parallelus',
] ]
file_name = '../data/species_colors.npz' file_name = '../data/species_colors.npz'