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:
BIN
figures/fig_invariance_log-hp_species.pdf
Normal file
BIN
figures/fig_invariance_log-hp_species.pdf
Normal file
Binary file not shown.
Binary file not shown.
2
main.aux
2
main.aux
@@ -267,6 +267,8 @@
|
||||
\abx@aux@page{73}{18}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces \textbf {} }}{20}{}\protected@file@percent }
|
||||
\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 }}
|
||||
\abx@aux@read@bbl@mdfivesum{1380DC8C93D2855FDB132CC5A40AD52F}
|
||||
\gdef \@abspage@last{20}
|
||||
|
||||
138
main.blg
138
main.blg
@@ -1,71 +1,71 @@
|
||||
[0] Config.pm:307> INFO - This is Biber 2.19
|
||||
[0] Config.pm:310> INFO - Logfile is 'main.blg'
|
||||
[36] biber:340> INFO - === Mi Mär 25, 2026, 15:53:59
|
||||
[43] Biber.pm:419> INFO - Reading 'main.bcf'
|
||||
[71] Biber.pm:979> INFO - Found 55 citekeys in bib section 0
|
||||
[77] Biber.pm:4419> INFO - Processing section 0
|
||||
[81] Biber.pm:4610> INFO - Looking for bibtex file 'cite.bib' for section 0
|
||||
[83] bibtex.pm:1713> INFO - LaTeX decoding ...
|
||||
[112] 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'
|
||||
[287] 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'
|
||||
[287] Biber.pm:4245> INFO - No sort tailoring available for locale 'en-US'
|
||||
[310] bbl.pm:660> INFO - Writing 'main.bbl' with encoding 'UTF-8'
|
||||
[320] 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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_gWc3/347c261ec4135a5723bef5c751f5078f_62855.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
|
||||
[321] Biber.pm:133> INFO - WARNINGS: 55
|
||||
[36] biber:340> INFO - === Di Apr 14, 2026, 17:23:24
|
||||
[45] Biber.pm:419> INFO - Reading 'main.bcf'
|
||||
[74] Biber.pm:979> INFO - Found 55 citekeys in bib section 0
|
||||
[79] Biber.pm:4419> INFO - Processing section 0
|
||||
[84] Biber.pm:4610> INFO - Looking for bibtex file 'cite.bib' for section 0
|
||||
[86] bibtex.pm:1713> INFO - LaTeX decoding ...
|
||||
[115] bibtex.pm:1519> INFO - Found BibTeX data source 'cite.bib'
|
||||
[289] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized'
|
||||
[289] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable'
|
||||
[289] Biber.pm:4239> INFO - Sorting list 'nyt/global//global/global' of type 'entry' with template 'nyt' and locale 'en-US'
|
||||
[289] Biber.pm:4245> INFO - No sort tailoring available for locale 'en-US'
|
||||
[312] bbl.pm:660> INFO - Writing 'main.bbl' with encoding 'UTF-8'
|
||||
[323] bbl.pm:763> INFO - Output to main.bbl
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 21, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 58, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 91, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 118, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 157, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 196, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 229, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 258, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 289, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 328, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 419, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 456, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 535, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 576, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 648, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 688, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 729, 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
|
||||
[324] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.utf8, line 766, 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
|
||||
[325] Biber.pm:131> WARN - BibTeX subsystem: /tmp/biber_tmp_Fmmc/347c261ec4135a5723bef5c751f5078f_87767.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 817, warning: 6 characters of junk seen at toplevel
|
||||
[325] Biber.pm:133> INFO - WARNINGS: 55
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
# 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 ""
|
||||
"main.bcf" 1774939289.16212 112931 2a478116d80ebb1ada7083a24facd6e3 "pdflatex"
|
||||
"main.bcf" 1776180220.65176 112931 2a478116d80ebb1ada7083a24facd6e3 "pdflatex"
|
||||
(generated)
|
||||
"main.bbl"
|
||||
"main.blg"
|
||||
(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 ""
|
||||
"/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/tfm/public/amsfonts/cmextra/cmex7.tfm" 1246382020 1004 54797486969f23fa377b128694d548df ""
|
||||
"/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 ""
|
||||
"figures/fig_auditory_pathway.pdf" 1771593904.14638 1153923 3df8539421fd21dc866cc8d320bd9b1d ""
|
||||
"figures/fig_feat_stages.pdf" 1774002994.98767 11091006 565fe951f1255c121429a060082398f5 ""
|
||||
"figures/fig_invariance_full.pdf" 1774271483.89842 149796490 a2dd04969d8a98c63c3653d20848c0b6 ""
|
||||
"figures/fig_invariance_log_hp.pdf" 1774862828.87982 837296 93dd5e5b25285f2b3d6c8e3c0d2fd5f1 ""
|
||||
"figures/fig_invariance_full.pdf" 1775044457.44326 51364 cdc2f94096a4ec98dd58b81315199213 ""
|
||||
"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_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_pre_stages.pdf" 1774002992.74268 449426 5762be15627fe5d8b6d108b7ea18db44 ""
|
||||
"main.aux" 1774939289.15612 15278 8ddadc678eacbeaae96061ab2907f0b9 "pdflatex"
|
||||
"main.bbl" 1774450439.97007 91039 1380dc8c93d2855fdb132cc5a40ad52f "biber main"
|
||||
"main.run.xml" 1774939289.16212 2335 a049bc26a7f032e842ce55de5bc38328 "pdflatex"
|
||||
"main.tex" 1774450464.03788 48022 de46789e7f0ca716a47759b334bfa10b ""
|
||||
"main.aux" 1776180220.64576 15421 c52b01adcd46aa2ef82220b23727550f "pdflatex"
|
||||
"main.bbl" 1776180205.19289 91039 1380dc8c93d2855fdb132cc5a40ad52f "biber main"
|
||||
"main.run.xml" 1776180220.65276 2335 a049bc26a7f032e842ce55de5bc38328 "pdflatex"
|
||||
"main.tex" 1776180218.75477 48226 a69e6ee3ae074d48c75cb0bb31adebb7 ""
|
||||
(generated)
|
||||
"main.aux"
|
||||
"main.bcf"
|
||||
|
||||
5
main.fls
5
main.fls
@@ -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_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.run.xml
|
||||
OUTPUT main.run.xml
|
||||
|
||||
46
main.log
46
main.log
@@ -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
|
||||
restricted \write18 enabled.
|
||||
file:line:error style messages enabled.
|
||||
@@ -593,7 +593,11 @@ Package biblatex Warning: 'babel/polyglossia' detected but 'csquotes' missing.
|
||||
|
||||
\@quotelevel=\count434
|
||||
\@quotereset=\count435
|
||||
(./main.aux)
|
||||
(./main.aux
|
||||
|
||||
LaTeX Warning: Label `' multiply defined.
|
||||
|
||||
)
|
||||
\openout1 = `main.aux'.
|
||||
|
||||
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.
|
||||
|
||||
[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)
|
||||
<use figures/fig_invariance_thresh_lp_single.pdf>
|
||||
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.
|
||||
<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)
|
||||
<use figures/fig_invariance_thresh_lp_species.pdf>
|
||||
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.
|
||||
[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)
|
||||
<use figures/fig_invariance_full.pdf>
|
||||
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
|
||||
|
||||
] [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)
|
||||
<use figures/fig_noise_env_sd_conversion.pdf>
|
||||
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.
|
||||
[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
|
||||
L3 programming layer <2024-01-22>
|
||||
***********
|
||||
|
||||
|
||||
LaTeX Warning: There were multiply-defined labels.
|
||||
|
||||
Package logreq Info: Writing requests to 'main.run.xml'.
|
||||
\openout1 = `main.run.xml'.
|
||||
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
20762 strings out of 474222
|
||||
448017 string characters out of 5748732
|
||||
20769 strings out of 474222
|
||||
448376 string characters out of 5748732
|
||||
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
|
||||
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>
|
||||
Output written on main.pdf (20 pages, 164834440 bytes).
|
||||
Output written on main.pdf (20 pages, 15648193 bytes).
|
||||
PDF statistics:
|
||||
1638 PDF objects out of 1728 (max. 8388607)
|
||||
867 compressed objects within 9 object streams
|
||||
1702 PDF objects out of 1728 (max. 8388607)
|
||||
884 compressed objects within 9 object streams
|
||||
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.synctex.gz
BIN
main.synctex.gz
Binary file not shown.
9
main.tex
9
main.tex
@@ -866,4 +866,13 @@ initiation of one behavior over another is categorical (e.g. approach/stay)
|
||||
\end{figure}
|
||||
\FloatBarrier
|
||||
|
||||
\begin{figure}[!ht]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{figures/fig_invariance_log-hp_species.pdf}
|
||||
\caption{\textbf{}
|
||||
}
|
||||
\label{}
|
||||
\end{figure}
|
||||
\FloatBarrier
|
||||
|
||||
\end{document}
|
||||
136
python/condense_inv_data_log-hp.py
Normal file
136
python/condense_inv_data_log-hp.py
Normal 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()
|
||||
|
||||
|
||||
@@ -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))
|
||||
return handles
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
# 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:
|
||||
target = 'Omocestus_rufipes'
|
||||
target = 'Omocestus_rufipes_DJN_32-40s724ms-48s779ms'
|
||||
data_paths = search_files(target, excl='noise', dir='../data/inv/log_hp/')
|
||||
ref_path = '../data/inv/log_hp/ref_measures.npz'
|
||||
save_path = '../figures/fig_invariance_log_hp.pdf'
|
||||
target_species = [
|
||||
'Omocestus_rufipes',
|
||||
'Chorthippus_biguttulus',
|
||||
'Chorthippus_mollis',
|
||||
'Chrysochraon_dispar',
|
||||
'Euchorthippus_declivus',
|
||||
'Gomphocerippus_rufus',
|
||||
'Omocestus_rufipes',
|
||||
'Pseudochorthippus_parallelus',
|
||||
]
|
||||
]
|
||||
stages = ['env', 'log', 'inv']
|
||||
load_kwargs = dict(
|
||||
files=stages,
|
||||
@@ -159,12 +130,13 @@ fs = dict(
|
||||
)
|
||||
colors = load_colors('../data/stage_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(
|
||||
snip=1,
|
||||
big=4,
|
||||
spec=2,
|
||||
plateau=1,
|
||||
plateau=1.5,
|
||||
legend=5,
|
||||
)
|
||||
xlabels = dict(
|
||||
big='scale $\\alpha$',
|
||||
@@ -273,7 +245,7 @@ leg_kwargs = dict(
|
||||
columnspacing=1,
|
||||
)
|
||||
diag_kwargs = dict(
|
||||
c=(0.75, 0.75, 0.75),
|
||||
c=(0.3,) * 3,
|
||||
lw=2,
|
||||
ls='--',
|
||||
zorder=1.9,
|
||||
@@ -297,18 +269,9 @@ plateau_line_kwargs = dict(
|
||||
)
|
||||
plateau_dot_kwargs = dict(
|
||||
marker='o',
|
||||
markersize=10,
|
||||
markeredgecolor='k',
|
||||
markersize=8,
|
||||
markeredgewidth=1,
|
||||
# alpha=1,
|
||||
zorder=6,
|
||||
clip_on=False,
|
||||
# base=0,
|
||||
# cap=0.15,
|
||||
# add_pdf=True,
|
||||
)
|
||||
kde_kwargs = dict(
|
||||
sigma=0.1,
|
||||
)
|
||||
|
||||
# PREPARATION:
|
||||
@@ -317,18 +280,12 @@ if compute_ratios:
|
||||
|
||||
species_measures = {}
|
||||
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):
|
||||
path = search_files(species, incl='noise', dir='../data/inv/log_hp/')[0]
|
||||
species_data = load_data(path, **load_kwargs)[0]
|
||||
measure = species_data['measure_inv']
|
||||
scales = species_data['scales']
|
||||
if compute_ratios:
|
||||
measure /= ref_measures['inv']
|
||||
spec_path = search_files(species, dir='../data/inv/log_hp/condensed/')[0]
|
||||
spec_data = dict(np.load(spec_path))
|
||||
measure = spec_data['mean'].mean(axis=1)
|
||||
species_measures[species] = measure
|
||||
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:
|
||||
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],
|
||||
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()):
|
||||
# Plot invariance curve:
|
||||
color = species_colors[species]
|
||||
ind, scale = thresh_inds[i], thresh_scales[i]
|
||||
big_axes[2].plot(noise_scales, measure, label=shorten_species(species),
|
||||
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,
|
||||
transform=big_axes[2].get_xaxis_transform())
|
||||
handle = big_axes[2].plot(scale, 0, c=color, alpha=0.5, **plateau_dot_kwargs,
|
||||
transform=big_axes[2].get_xaxis_transform())
|
||||
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())
|
||||
big_axes[2].vlines(scale, big_axes[2].get_ylim()[0], measure[ind],
|
||||
color=color, **plateau_line_kwargs)
|
||||
big_axes[2].legend(**leg_kwargs)
|
||||
|
||||
# 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)]
|
||||
|
||||
legend = big_axes[2].legend(**leg_kwargs)
|
||||
[h.set_lw(lw['legend']) for h in legend.legend_handles]
|
||||
|
||||
if save_path is not None:
|
||||
fig.savefig(save_path, bbox_inches='tight')
|
||||
|
||||
108
python/fig_invariance_log-hp_species.py
Normal file
108
python/fig_invariance_log-hp_species.py
Normal 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()
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ import string
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from matplotlib.transforms import Bbox, BboxTransformTo, TransformedBbox
|
||||
from misc_functions import get_kde
|
||||
|
||||
def hide_ticks(ax, side='bottom', ticks=True):
|
||||
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]]):
|
||||
artist.set_clip_box(TransformedBbox(Bbox(bounds), ax.transAxes))
|
||||
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
|
||||
|
||||
@@ -5,16 +5,17 @@ from thunderhopper.filters import decibel, sosfilter
|
||||
from IPython import embed
|
||||
|
||||
# GENERAL SETTINGS:
|
||||
target = ['Omocestus_rufipes', '*'][0]
|
||||
data_paths = search_files(target, excl='noise', dir='../data/processed/')
|
||||
example_file = 'Omocestus_rufipes_DJN_32-40s724ms-48s779ms'
|
||||
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'
|
||||
save_path = '../data/inv/log_hp/'
|
||||
|
||||
# ANALYSIS SETTINGS:
|
||||
add_noise = target == '*' or False
|
||||
save_snippets = target == 'Omocestus_rufipes'
|
||||
add_noise = search_target == '*' or False
|
||||
save_detailed = search_target == example_file
|
||||
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)))
|
||||
|
||||
# PREPARATION:
|
||||
@@ -35,47 +36,67 @@ for data_path, name in zip(data_paths, crop_paths(data_paths)):
|
||||
|
||||
# Normalize song component:
|
||||
song /= song[segment].std()
|
||||
|
||||
# Rescale song component:
|
||||
mix = song[:, None] * scales[None, :]
|
||||
|
||||
if add_noise:
|
||||
# Add normalized noise component:
|
||||
# Get normalized noise component:
|
||||
noise = pure_noise[:song.shape[0]]
|
||||
noise /= noise[segment].std()
|
||||
mix += noise[:, None]
|
||||
|
||||
# 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'])
|
||||
# Prepare storage:
|
||||
measure_inv = np.zeros_like(scales)
|
||||
if save_detailed:
|
||||
# Prepare optional storage:
|
||||
measure_env = np.zeros_like(scales)
|
||||
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:
|
||||
measure_env = mix[segment, :].std(axis=0)
|
||||
measure_log = mix_log[segment, :].std(axis=0)
|
||||
measure_inv = mix_inv[segment, :].std(axis=0)
|
||||
# Execute piecewise:
|
||||
for i, scale in enumerate(scales):
|
||||
|
||||
# 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_inds = np.nonzero(np.isin(scales, example_scales))[0]
|
||||
if save_path is not None:
|
||||
data = dict(
|
||||
archive = dict(
|
||||
scales=scales,
|
||||
example_scales=example_scales,
|
||||
measure_env=measure_env,
|
||||
measure_log=measure_log,
|
||||
measure_inv=measure_inv,
|
||||
)
|
||||
if save_snippets:
|
||||
data.update(
|
||||
snip_env=mix[:, save_inds],
|
||||
snip_log=mix_log[:, save_inds],
|
||||
snip_inv=mix_inv[:, save_inds],
|
||||
)
|
||||
if save_detailed:
|
||||
archive.update(
|
||||
measure_env=measure_env,
|
||||
measure_log=measure_log,
|
||||
snip_env=snip_env,
|
||||
snip_log=snip_log,
|
||||
snip_inv=snip_inv,
|
||||
)
|
||||
file_name = save_path + name
|
||||
if add_noise:
|
||||
file_name += '_noise'
|
||||
save_data(file_name, data, config, overwrite=True)
|
||||
save_data(file_name, archive, config, overwrite=True)
|
||||
|
||||
print('Done.')
|
||||
embed()
|
||||
|
||||
@@ -7,9 +7,10 @@ from IPython import embed
|
||||
## SETTINGS:
|
||||
|
||||
# General:
|
||||
search_target = '*'
|
||||
input_folder = '../data/raw/'
|
||||
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:
|
||||
# Overwrites edited:
|
||||
stages.append('songs')
|
||||
@@ -30,7 +31,7 @@ config.update({
|
||||
'rate_ratio': None,
|
||||
'env_fcut': 250,
|
||||
'db_ref': 1,
|
||||
'inv_fcut': 5,
|
||||
'inv_fcut': 10,
|
||||
'feat_thresh': np.load('../data/kernel_thresholds.npy') * 0.2,
|
||||
'feat_fcut': 0.5,
|
||||
'label_channels': 0,
|
||||
@@ -40,7 +41,7 @@ config.update({
|
||||
## PREPARATION:
|
||||
|
||||
# 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)
|
||||
|
||||
# PROCESSING:
|
||||
|
||||
@@ -6,11 +6,12 @@ from IPython import embed
|
||||
|
||||
# Settings:
|
||||
species = [
|
||||
'Omocestus_rufipes',
|
||||
'Chorthippus_biguttulus',
|
||||
'Chorthippus_mollis',
|
||||
'Chrysochraon_dispar',
|
||||
'Euchorthippus_declivus',
|
||||
'Gomphocerippus_rufus',
|
||||
'Omocestus_rufipes',
|
||||
'Pseudochorthippus_parallelus',
|
||||
]
|
||||
file_name = '../data/species_colors.npz'
|
||||
|
||||
Reference in New Issue
Block a user