dleucas / wmmsdb (public) (License: GPLv3) (since 2018-07-08) (hash sha1)
A collection of scripts to download, transform and normalize the Watkins Marine Mammal Sound Database.

Credit:

“Watkins Marine Mammal Sound Database, Woods Hole Oceanographic Institution.”

http://cis.whoi.edu/science/B/whalesounds/index.cfm
List of commits:
Subject Hash Author Date (UTC)
remove genus, add species common and scientific names, display names in record details e2025219ade78f9ac2e6dfd81c479d242b9db24b dleucas 2021-12-18 17:18:28
add common and scientific names to schema b4c7dcb4042b9d1cd3da24123f4506113a876f02 dleucas 2021-12-18 17:17:17
remove genus, add species and type to type_of namespace change 2a7757a6c3e6dbb784b41d7a4b29381bc9105803 dleucas 2021-12-18 17:16:04
converted all transforms to functions 9d37303b24abc225f11f9c3d3b622c5167ed43e3 dleucas 2021-12-18 16:00:04
more conversion to functions. match old output for now fc4a8157a6902f4571b54c6ab84174f005adbe0d dleucas 2021-12-18 10:26:23
WIP convert filters to functions 32badc3512dd9094d51ba2cc2ef8112eba2698bf dleucas 2021-12-16 18:33:21
convert html only once. extract species names as json. formating and lint. e755dc7f4fe2d7c9b97826a0f3f2cf5385e90ef9 dleucas 2021-12-16 13:35:31
download once. use wget only. get species names. test for commands. formating 572dbf1eaffe17c43a4a01dc9675737628c5a234 dleucas 2021-12-16 12:14:26
add filter by behavior type, sort by modified date c3f9f9f9d9501e714117af7fff573e7f3fa4052b dleucas 2019-06-14 03:51:19
rename type to type_of 4269dc257530a9a7fa21ff8708f4594a2f1a453d dleucas 2019-06-14 03:39:49
ElasticSearch setting for larger HTTP request e83e501f949473538096f984220934c0a51de0b4 dleucas 2019-06-14 03:25:22
rename type to type_of e1fcd27b05eabc8bce06751a9925200e4707168b dleucas 2019-06-14 02:34:15
add animal behavior transformation and documentation 7550db3bbd1c69c9369cf8dfe3a5d1195e761ae2 dleucas 2019-06-14 00:57:16
add lost modified date c4922a44cebebd63da6c23a2a71f97cdb47b4a68 dleucas 2019-06-12 22:46:35
describe remaining db fields e3c7f44ad24a3d7c8e4eb74c777a4eecc3675d75 dleucas 2019-06-11 21:37:06
WIP document acoustat 3a47cfcfa204503f682879d7485a6ef941e248e4 dleucas 2019-06-07 00:17:30
WIP document acoustat 4591875fd32c1c91d20133ff90dcf5676b3c216c dleucas 2019-06-07 00:08:18
WIP document acoustat ccc4a6de663a7272ee3d5777fe1479af549e9938 dleucas 2019-06-06 01:39:08
WIP document acoustat 1c6b03267e3016d9b637775df2b4b153866ac040 dleucas 2019-06-05 22:39:39
add dependency on nav.html and pandoc.css b4f054eb6675117d576fa9462220bc5bc8d15be4 dleucas 2019-06-01 01:12:44
Commit e2025219ade78f9ac2e6dfd81c479d242b9db24b - remove genus, add species common and scientific names, display names in record details
Author: dleucas
Author date (UTC): 2021-12-18 17:18
Committer name: dleucas
Committer date (UTC): 2021-12-18 17:18
Parent(s): b4c7dcb4042b9d1cd3da24123f4506113a876f02
Signing key:
Tree: fa27c6711430a4f07c3c7dc798308ff08f1d7459
File Lines added Lines deleted
webroot/index.html 63 49
File webroot/index.html changed (mode: 100644) (index 0942281..76cc113)
11 11 <script type="text/javascript" src="vendor/jquery/1.7.1/jquery-1.7.1.min.js"></script> <script type="text/javascript" src="vendor/jquery/1.7.1/jquery-1.7.1.min.js"></script>
12 12
13 13 <link rel="stylesheet" href="vendor/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="vendor/bootstrap/css/bootstrap.min.css">
14 <script type="text/javascript" src="vendor/bootstrap/js/bootstrap.min.js"></script>
14 <script type="text/javascript" src="vendor/bootstrap/js/bootstrap.min.js"></script>
15 15
16 16 <link rel="stylesheet" href="vendor/jquery-ui-1.8.18.custom/jquery-ui-1.8.18.custom.css"> <link rel="stylesheet" href="vendor/jquery-ui-1.8.18.custom/jquery-ui-1.8.18.custom.css">
17 17 <script type="text/javascript" src="vendor/jquery-ui-1.8.18.custom/jquery-ui-1.8.18.custom.min.js"></script> <script type="text/javascript" src="vendor/jquery-ui-1.8.18.custom/jquery-ui-1.8.18.custom.min.js"></script>
 
... ... jQuery(document).ready(function($) {
42 42 searchfield: "_all", searchfield: "_all",
43 43 q : "", q : "",
44 44 facets: [ facets: [
45 {'field': 'animal.genus.name',
46 'display': 'Genus',
45 {'field': 'animal.species.common_name',
46 'display': 'Species Common Name',
47 47 'open' : false, 'size': 50}, 'open' : false, 'size': 50},
48 {'field': 'animal.genus.species_code',
49 'display': 'Species Code',
48 {'field': 'animal.species.scientific_name',
49 'display': 'Species Scientific Name',
50 'open' : false, 'size': 50},
51 {'field': 'animal.species.species_code',
52 'display': 'Species Code',
53 'open' : false},
54 {'field': 'animal.vocal.common_name',
55 'display': 'Vocal Species Common Name',
56 'open' : false},
57 {'field': 'animal.vocal.scientific_name',
58 'display': 'Vocal Species Scientific Name',
50 59 'open' : false}, 'open' : false},
51 60 {'field': 'animal.vocal.species_code', {'field': 'animal.vocal.species_code',
52 'display': 'Vocal Species Code',
61 'display': 'Vocal Species Code',
53 62 'open' : false}, 'open' : false},
54 63 {'field': 'animal.behavior.type_of', {'field': 'animal.behavior.type_of',
55 64 'display': 'Behavior Type', 'display': 'Behavior Type',
56 65 'open' : false}, 'open' : false},
57 66 {'field': 'animal.vocal.animal_id', {'field': 'animal.vocal.animal_id',
58 'display': 'Vocal ID',
67 'display': 'Vocal ID',
59 68 'open' : false}, 'open' : false},
60 {'field': 'animal.interaction.type',
61 'display': 'Interaction Type',
69 {'field': 'animal.interaction.type_of',
70 'display': 'Interaction Type',
62 71 'open' : false}, 'open' : false},
63 {'field': 'animal.profile.animal_id',
64 'display': 'ID',
72 {'field': 'animal.profile.animal_id',
73 'display': 'ID',
65 74 'open' : false}, 'open' : false},
66 {'field': 'animal.profile.age',
67 'display': 'Age',
75 {'field': 'animal.profile.age',
76 'display': 'Age',
68 77 'open' : false}, 'open' : false},
69 {'field': 'animal.profile.sex',
70 'display': 'Sex',
78 {'field': 'animal.profile.sex',
79 'display': 'Sex',
71 80 'open' : false}, 'open' : false},
72 {'field': 'animal.profile.birth_year',
73 'display': 'Birth Year',
81 {'field': 'animal.profile.birth_year',
82 'display': 'Birth Year',
74 83 'open' : false}, 'open' : false},
75 84
76 85 {'field': 'observation_date', {'field': 'observation_date',
 
... ... jQuery(document).ready(function($) {
83 92 'value_function': function(v) { return new Date(v).getFullYear() } 'value_function': function(v) { return new Date(v).getFullYear() }
84 93 }, },
85 94
86 {'field': 'location.name',
87 'display': 'Geo Location',
95 {'field': 'location.name',
96 'display': 'Geo Location',
88 97 'open' : false}, 'open' : false},
89 98 /* /*
90 99 {'field' : 'location.coordinates', {'field' : 'location.coordinates',
 
... ... jQuery(document).ready(function($) {
105 114 ] ]
106 115 }, },
107 116 */ */
108 {'field': 'signal.class',
109 'display': 'Class',
117 {'field': 'signal.class',
118 'display': 'Class',
110 119 'open' : false}, 'open' : false},
111 {'field': 'signal.overlap',
112 'display': 'Overlap',
120 {'field': 'signal.overlap',
121 'display': 'Overlap',
113 122 'open' : false}, 'open' : false},
114 {'field': 'signal.quality',
115 'display': 'Quality',
123 {'field': 'signal.quality',
124 'display': 'Quality',
116 125 'open' : false}, 'open' : false},
117 {'field': 'signal.source.name',
118 'display': 'Source',
126 {'field': 'signal.source.name',
127 'display': 'Source',
119 128 'open' : false}, 'open' : false},
120 {'field': 'signal.source.order',
121 'display': 'Source Type',
129 {'field': 'signal.source.order',
130 'display': 'Source Type',
122 131 'open' : false}, 'open' : false},
123 132
124 {'field': 'sound.sample_rate',
125 'display': 'Sample Rate',
133 {'field': 'sound.sample_rate',
134 'display': 'Sample Rate',
126 135 'open' : false}, 'open' : false},
127 {'field': 'sound.channel.recorded',
128 'display': 'Channels Recorded',
136 {'field': 'sound.channel.recorded',
137 'display': 'Channels Recorded',
129 138 'open' : false}, 'open' : false},
130 139 /* /*
131 {'field': 'sound.freq.P1',
132 'display': 'Freq Initial Percentile',
140 {'field': 'sound.freq.P1',
141 'display': 'Freq Initial Percentile',
133 142 'type': 'range', 'type': 'range',
134 143 'size': false, 'size': false,
135 144 'hide_empty_range': true, 'hide_empty_range': true,
 
... ... jQuery(document).ready(function($) {
151 160 ], ],
152 161 }, },
153 162 */ */
154 {'field': 'sound.freq.IPR',
155 'display': 'Interpercentile Range (Frequency)',
163 {'field': 'sound.freq.IPR',
164 'display': 'Interpercentile Range (Frequency)',
156 165 'type': 'range', 'type': 'range',
157 166 'size': false, 'size': false,
158 167 'hide_empty_range': true, 'hide_empty_range': true,
 
... ... jQuery(document).ready(function($) {
170 179 {"from" : 90.0, "display" : ">=90.0"} {"from" : 90.0, "display" : ">=90.0"}
171 180 ], ],
172 181 }, },
173 {'field': 'sound.time.IPR',
174 'display': 'Interpercentile Range (Time)',
182 {'field': 'sound.time.IPR',
183 'display': 'Interpercentile Range (Time)',
175 184 'type': 'range', 'type': 'range',
176 185 'size': false, 'size': false,
177 186 'hide_empty_range': true, 'hide_empty_range': true,
 
... ... jQuery(document).ready(function($) {
217 226 debug: false, debug: false,
218 227 //fields: ["_id", "animal.profile.animal_id"], //fields: ["_id", "animal.profile.animal_id"],
219 228 render_results_metadata: pageSlider, render_results_metadata: pageSlider,
220 "result_display" : [
229 "result_display" : [
221 230 [ {"pre" : "<h4>Record Number: ", "field": "record_number", "post" : "</h4>"} ], [ {"pre" : "<h4>Record Number: ", "field": "record_number", "post" : "</h4>"} ],
222 231 [ {"pre" : "<div><img class='' src='/spectro/", "field": "record_number", "post" : ".sox.png'/ >"} ], [ {"pre" : "<div><img class='' src='/spectro/", "field": "record_number", "post" : ".sox.png'/ >"} ],
223 232 [ {"pre" : "<img class='' src='/spectro/", "field": "record_number", "post" : ".seewave.png'/ >"} ], [ {"pre" : "<img class='' src='/spectro/", "field": "record_number", "post" : ".seewave.png'/ >"} ],
224 233 [ {"pre" : "<img class='' src='/spectro/", "field": "record_number", "post" : ".acoustat.png'/ ></div>"} ], [ {"pre" : "<img class='' src='/spectro/", "field": "record_number", "post" : ".acoustat.png'/ ></div>"} ],
225 [ {"pre" : "<div><audio controls preload='none'><source type='audio/wav' src='https://whoicf2.whoi.edu/science/B/whalesounds/WhaleSounds/",
226 "field": "record_number",
234 [ {"pre" : "<div><audio controls preload='none'><source type='audio/wav' src='https://whoicf2.whoi.edu/science/B/whalesounds/WhaleSounds/",
235 "field": "record_number",
227 236 "post" : ".wav'>[ Audio Player ]</audio></div><table><tbody>"} ], "post" : ".wav'>[ Audio Player ]</audio></div><table><tbody>"} ],
228 237 [ {"pre" : "<tr><th>Note</th><td>", "field": "note", "post" : "</td></tr>"} ], [ {"pre" : "<tr><th>Note</th><td>", "field": "note", "post" : "</td></tr>"} ],
238 [ {"pre" : "<tr><th>Species Common Name</th><td>", "field": "animal.species.0.common_name", "post" : "</td></tr>"} ],
239 [ {"pre" : "<tr><th>Species Scientific Name</th><td>", "field": "animal.species.0.scientific_name", "post" : "</td></tr>"} ],
229 240 [ {"pre" : "<tr><th>Observation Date</th><td>", "field": "observation_date", "post" : "</td></tr>"} ], [ {"pre" : "<tr><th>Observation Date</th><td>", "field": "observation_date", "post" : "</td></tr>"} ],
230 241 [ {"pre" : "<tr><th>Last modified Date</th><td>", "field": "last_modified_date", "post" : "</td></tr>"} ], [ {"pre" : "<tr><th>Last modified Date</th><td>", "field": "last_modified_date", "post" : "</td></tr>"} ],
231 242 [ {"pre" : "<tr><th>Geographic location area name</th><td>", "field": "location.name", "post" : "</td></tr>"} ], [ {"pre" : "<tr><th>Geographic location area name</th><td>", "field": "location.name", "post" : "</td></tr>"} ],
 
... ... jQuery(document).ready(function($) {
243 254 [ {"pre" : "<tr><th>Terminal Percentile (Frequency)</th><td>", "field": "sound.freq.P2", "post" : "</td></tr>"} ], [ {"pre" : "<tr><th>Terminal Percentile (Frequency)</th><td>", "field": "sound.freq.P2", "post" : "</td></tr>"} ],
244 255 [ {"pre" : "<tr><th>Frequency Median</th><td>", "field": "sound.freq.M", "post" : "</td></tr> "} ], [ {"pre" : "<tr><th>Frequency Median</th><td>", "field": "sound.freq.M", "post" : "</td></tr> "} ],
245 256 [ {"pre" : "<tr><th>Interpercentile Range (Frequency)</th><td>", "field": "sound.freq.IPR", "post" : "</td></tr>"} ], [ {"pre" : "<tr><th>Interpercentile Range (Frequency)</th><td>", "field": "sound.freq.IPR", "post" : "</td></tr>"} ],
246 [ {"pre" : "</tbody></table><p><a href='https://whoicf2.whoi.edu/science/B/whalesounds/WhaleSounds/",
247 "field": "record_number",
257 [ {"pre" : "</tbody></table><p><a href='https://whoicf2.whoi.edu/science/B/whalesounds/WhaleSounds/",
258 "field": "record_number",
248 259 "post" : ".wav'>Wave Audio File (.wav) from whoi.edu</a></p>"} ], "post" : ".wav'>Wave Audio File (.wav) from whoi.edu</a></p>"} ],
249 260 ], ],
250 261 selected_filters_in_facet: false, selected_filters_in_facet: false,
 
... ... jQuery(document).ready(function($) {
253 264 }); });
254 265 }); });
255 266
256 $('#facetview_filter_animal_genus_name').each(function() {
267 $('#facetview_filter_animal_species_common_name').each(function() {
257 268 $(this).before($('<h4>').text("Animal")); $(this).before($('<h4>').text("Animal"));
258 269 }); });
259 270 $('#facetview_filter_observation_date').each(function() { $('#facetview_filter_observation_date').each(function() {
 
... ... header {
318 329 margin-bottom: .5em; margin-bottom: .5em;
319 330 } }
320 331
321 #facetview_filter_animal_genus_name,
322 #facetview_filter_animal_genus_species_code,
332 #facetview_filter_animal_species_common_name,
333 #facetview_filter_animal_species_scientific_name,
334 #facetview_filter_animal_species_species_code,
323 335 #facetview_filter_animal_vocal_animal_id, #facetview_filter_animal_vocal_animal_id,
324 #facetview_filter_animal_interaction_type,
336 #facetview_filter_animal_vocal_common_name,
337 #facetview_filter_animal_vocal_scientific_name,
338 #facetview_filter_animal_interaction_type_of,
325 339 #facetview_filter_animal_behavior_type_of, #facetview_filter_animal_behavior_type_of,
326 340 #facetview_filter_animal_vocal_species_code, #facetview_filter_animal_vocal_species_code,
327 341 #facetview_filter_animal_profile_animal_id, #facetview_filter_animal_profile_animal_id,
 
... ... header {
340 354 #facetview_filter_signal_overlap, #facetview_filter_signal_overlap,
341 355 #facetview_filter_signal_quality, #facetview_filter_signal_quality,
342 356 #facetview_filter_signal_source_name, #facetview_filter_signal_source_name,
343 #facetview_filter_signal_source_order
357 #facetview_filter_signal_source_order
344 358 { {
345 359 border-color: blue; border-color: blue;
346 360 } }
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/dleucas/wmmsdb

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/dleucas/wmmsdb

Clone this repository using git:
git clone git://git.rocketgit.com/user/dleucas/wmmsdb

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main