Learn R Programming

IRISSeismic (version 1.6.6)

noiseMatrix2PdfMatrix: Convert matrix of PSDs to matrix of Probability Density Functions

Description

This function converts a noiseMatrix returned by either psdList2NoiseMatrix or psdDF2NoiseMatrix into a matrix of Probability Density values as defined by McNamara and Boaz 2005.

Usage

noiseMatrix2PdfMatrix(noiseMatrix, lo, hi, binSize)

Value

A matrix is returned with one row for each power level (-250:-50 dB) and one column for each frequency bin.

Arguments

noiseMatrix

a noiseMatrx returned from either psdList2NoiseMatrix or psdDF2NoiseMatrix

lo

lowest frequency bin (power level in dB) for the PDF y-axis (default=-200)

hi

highest frequency bin (power level in dB) for the PDF y-axis (default=-50)

binSize

size in dB of each bin (default=1)

Author

Jonathan Callahan jonathan@mazamascience.com

Details

The McNamara and Boaz paper describes creating histograms of the discretized power levels at each frequency bin associated with a set of PSDs. The value in each cell of the PDF matrix is the fraction of the corrected PSDs that have that power level at that frequency bin.

To return a PDF matrix that matches those in the McNamara paper, use the default settings.

References

Seismic Noise Analysis System Using Power Spectral Density Probability Density Functions (McNamara and Boaz 2005)

See Also

McNamaraPSD, psdDF2NoiseMatrix, psdList, psdPlot, psdStatistics

Examples

Run this code
if (FALSE) {
# Create a new IrisClient
iris <- new("IrisClient", debug=TRUE)

# Get seismic data
starttime <- as.POSIXct("2011-05-05", tz="GMT") # 2011.125
endtime <- starttime + 1*24*3600
st <- getDataselect(iris,"IU","GRFO","--","BHE",starttime,endtime)

# Generate power spectral density for each hour long segment
psdList <- psdList(st)

# Convert into corrected "noiseMatrix"
noiseMatrix <- psdList2NoiseMatrix(psdList)

# Convert into McNamara "pdfMatrix"
pdfMatrix <- noiseMatrix2PdfMatrix(noiseMatrix)

# NOTE:  Data need to be flipped and tranposed for the XY axes in the
# NOTE:  image() function to match rows and columns in our pdfMatrix
# Plot pdfMatrix
image(t(pdfMatrix[,ncol(pdfMatrix):1]),
      col=c('gray90',rainbow(9)),
      axes=FALSE)
}

Run the code above in your browser using DataLab