Learn R Programming

warbleR (version 1.1.2)

snrspecs: Spectrograms with background noise margins

Description

snrspecs creates spectrograms to visualize margins over which background noise will be measured by sig2noise.

Usage

snrspecs(X, wl = 512, flim = c(0, 22), wn = "hanning", ovlp = 70, inner.mar = c(5, 4, 4, 2), outer.mar = c(0, 0, 0, 0), picsize = 1, res = 100, cexlab = 1, title = TRUE, propwidth= FALSE, xl=1, osci = FALSE, gr = FALSE, sc = FALSE, mar = 0.2, snrmar = 0.1, it = "jpeg", parallel = 1, path = NULL)

Arguments

X
Data frame with results from manualoc or any data frame with columns for sound file name (sound.files), selection number (selec), and start and end time of signal (start and end).
wl
A numeric vector of length 1 specifying the window length of the spectrogram, default is 512.
flim
A numeric vector of length 2 for the frequency limit in kHz of the spectrogram, as in spectro. Default is c(0, 22).
wn
Character vector of length 1 specifying window name. Default is "hanning". See function ftwindow for more options.
ovlp
Numeric vector of length 1 specifying % of overlap between two consecutive windows, as in spectro. Default is 70.
inner.mar
Numeric vector with 4 elements, default is c(5,4,4,2). Specifies number of lines in inner plot margins where axis labels fall, with form c(bottom, left, top, right). See par.
outer.mar
Numeric vector with 4 elements, default is c(0,0,0,0). Specifies number of lines in outer plot margins beyond axis labels, with form c(bottom, left, top, right). See par.
picsize
Numeric argument of length 1, controls relative size of spectrogram. Default is 1.
res
Numeric argument of length 1 that controls image resolution. Default is 100 (faster) although 300 - 400 is recommended for publication/ presentation quality.
cexlab
Numeric vector of length 1 specifying relative size of axis labels. See spectro.
title
Logical argument to add a title to individual spectrograms. Default is TRUE.
propwidth
Logical argument to scale the width of spectrogram proportionally to duration of the selected call. Default is FALSE.
xl
Numeric vector of length 1, a constant by which to scale spectrogram width if propwidth = TRUE. Default is 1.
osci
Logical argument to add an oscillogram underneath spectrogram, as in spectro. Default is FALSE.
gr
Logical argument to add grid to spectrogram. Default is FALSE.
sc
Logical argument to add amplitude scale to spectrogram, default is FALSE.
mar
Numeric vector of length 1. Specifies the margins adjacent to the start and end points of the selections to define spectrogram limits. Default is 0.2.
snrmar
Numeric vector of length 1. Specifies the margins adjacent to the start and end points of the selections where noise will be measured. Default is 0.1.
it
A character vector of length 1 giving the image type to be used. Currently only "tiff" and "jpeg" are admitted. Default is "jpeg".
parallel
Numeric. Controls whether parallel computing is applied. It specifies the number of cores to be used. Default is 1 (i.e. no parallel computing).
path
Character string containing the directory path where the sound files are located. If NULL (default) then the current working directory is used.

Value

Spectrograms per selection marked with margins where background noise will be measured.

Details

This function can be used to test different margins to facilitate accurate SNR measurements when using sig2noise down the line. Setting margins for individual calls that have been previously clipped from larger files may take some optimization, as for calls within a larger file that are irregularly separated. Setting inner.mar to c(4,4.5,2,1) and outer.mar to c(4,2,2,1) works well when picsize = 2 or 3. Title font size, inner.mar and outer.mar (from mar and oma in par) don't work well when osci or sc = TRUE, this may take some optimization by the user.

See Also

trackfreqs for creating spectrograms to visualize frequency measurements by specan, specreator for creating spectrograms after using manualoc

Other spectrogram.creators: dfDTW, dfts, ffDTW, ffts, specreator, trackfreqs

Examples

Run this code
## Not run: 
# # First create empty folder
# setwd(tempdir())
#  
# data(list = c("Phae.long1", "Phae.long2", "manualoc.df"))
# writeWave(Phae.long1, "Phae.long1.wav") #save sound.files
# writeWave(Phae.long2, "Phae.long2.wav") 
# 
# # make Phae.long1 and Phae.long2 spectrograms
# # snrmar needs to be smaller before moving on to sig2noise()
# 
# snrspecs(manualoc.df, flim = c(0, 14), inner.mar = c(4,4.5,2,1), outer.mar = c(4,2,2,1), 
# picsize = 2, res = 300, cexlab = 2, mar = 0.2, snrmar = 0.1, it = "jpeg", wl = 300)
# 
# # make only Phae.long1 spectrograms
# # snrmar now doesn't overlap neighboring signals
# 
# snrspecs(manualoc.df[grepl(c("Phae.long1"), manualoc.df$sound.files), ], flim = c(3, 14), 
# inner.mar = c(4,4.5,2,1), outer.mar = c(4,2,2,1), picsize = 2, res = 300, cexlab = 2, 
# mar = 0.2, snrmar = 0.01, wl = 300)
# 
# #check this folder!!
# getwd()
# ## End(Not run)

Run the code above in your browser using DataLab