diff --git a/warbleR_xeno-canto/warbleR_xeno-canto.r b/warbleR_xeno-canto/warbleR_xeno-canto.r new file mode 100644 index 0000000..c7c721b --- /dev/null +++ b/warbleR_xeno-canto/warbleR_xeno-canto.r @@ -0,0 +1,70 @@ +library(warbleR) + +# Create a new folder inside a new tempdir and set it to your working dir +wd <- file.path(tempdir(), "xeno-canto_example") +dir.create(wd) +setwd(wd) + +## +# Do the queries +## + +# Query xeno-canto for all Phaethornis recordings (e.g., by genus) +Phae <- query_xc(qword = "Phaethornis", download = FALSE) +# Check out the structure of resulting the data frame +str(Phae) +# Query xeno-canto for all Phaethornis longirostris recordings +Phae.lon <- query_xc(qword = "Phaethornis longirostris", download = FALSE) +# Check out the structure of resulting the data frame +str(Phae.lon) + +## +# filter xeno-canto recordings by quality, signal type and locality +## + +# How many recordings are available for Phaethornis longirostris? +nrow(Phae.lon) +# How many signal types exist in the xeno-canto metadata? +unique(Phae.lon$Vocalization_type) +# How many recordings per signal type? +table(Phae.lon$Vocalization_type) + +## +# Filter the metadata to select the signals we want to retain +## + +# First by quality +Phae.lon <- Phae.lon[Phae.lon$Quality == "A", ] +nrow(Phae.lon) +# Then by signal type +Phae.lon.song <- Phae.lon[grep("song", Phae.lon$Vocalization_type, ignore.case = TRUE), ] +nrow(Phae.lon.song) +# Finally by locality +Phae.lon.LS <- Phae.lon.song[grep("La Selva Biological Station, Sarapiqui, Heredia", Phae.lon.song$Locality, ignore.case = FALSE), ] +nrow(Phae.lon.LS) +# Check resulting data frame, 3 recordings remain +str(Phae.lon.LS) +# check the location +map_xc(Phae.lon.LS, img = FALSE) + + +## +# Once we're sure the recordings fit, it's time to download the files, also save +# the metadata as .csv file +## + +# Download sound files +query_xc(X = Phae.lon.LS) +# Save the metadata object as a .csv file +write.csv(Phae.lon.LS, "Phae_lon.LS.csv", row.names = FALSE) + +## +# xeno-canto maintains recordings in mp3 format due to file size restrictions. +# However, we require wav format for all downstream analyses +## + +# here we are downsampling the original sampling rate of 44.1 kHz +# to speed up downstream analyses in the vignette series +mp32wav(samp.rate = 22.05) +# Use checkwavs to see if wav files can be read +check_wavs() \ No newline at end of file