View source: R/spectralUtils.R
| psdList | R Documentation |
The psdList function subsets a seismic Stream object into a series of
shorter segments with 50% overlap and uses the McNamaraPSD method to return a smoothed (aka binned)
Power Spectral Density (PSD) for each segment.
psdList(st)
st |
a |
A Stream will be subset into segments depending upon the channel identifier (@stats@channel) associated
with this seismic data. The binning frequencies are also channel dependent as exemplified in
this code extract where Z is the segment length in seconds:
alignFreq <- 0.1
if (stringr::str_detect(channel,"^L")) {
Z <- 3 * 3600
loFreq <- 0.001
hiFreq <- 0.5 * tr_merged@stats@sampling_rate
} else if (stringr::str_detect(channel,"^M")) {
Z <- 2 * 3600
loFreq <- 0.0025
hiFreq <- 0.5 * tr_merged@stats@sampling_rate
} else {
Z <- 3600
loFreq <- 0.005
hiFreq <- 0.5 * tr_merged@stats@sampling_rate
}
Each new segment starts half way through the previous segment. (50% overlap)
A list of PSD objects is returned. Each element of the list is
an R list object with the following elements:
freq, spec, snclq, starttime, endtime
Note: Individual PSDs have not had instrument correction applied.
Jonathan Callahan jonathan@mazamascience.com
Seismic Noise Analysis System Using Power Spectral Density Probability Density Functions (McNamara and Boaz 2005)
McNamaraPSD,
psdList2NoiseMatrix,
psdPlot,
psdStatistics,
## Not run:
# 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)
# Plot uncorrected PSDs
period <- 1/psdList[[1]]$freq
plot(period, psdList[[1]]$spec, log='x', type='l',
xlab="Period (Sec)", ylab="Power (dB)",
main="Uncorrected PSDs")
for (i in seq(2:length(psdList))) {
points(period, psdList[[i]]$spec, type='l')
}
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.