Learn R Programming

IRISMustangMetrics (version 1.0.0)

PSDMetrics: Power Spectral Density of a signal

Description

The PSDMetrics() function performs spectral analysis on a seismic signal and returns 'PSD' metrics with discretized spectral components as well as other metrics based on PSD's

Usage

PSDMetrics(st,
           expLoPeriod=4/(st@traces[[1]]@stats@sampling_rate),
           expHiPeriod=100,
           linLoPeriod=16/(st@traces[[1]]@stats@sampling_rate),
           linHiPeriod=50)

Arguments

st
a Stream object containing a seismic signal
expLoPeriod
the low end of the period band use for calculating the exponential dead channel detector
expHiPeriod
the high end of the period band use for calculating the exponential dead channel detector
linLoPeriod
the low end of the period band use for calculating the linear dead channel detector
linHiPeriod
the high end of the period band use for calculating the linear dead channel detector

Value

  • A list of lists is returned containing:
    • spectrumMetricList= list ofSpectrumMetricobjects
  • svMetricList = list of SingleValueMetric objects:
    • pct_above_nhnm
  • pct_below_nlnm
  • dead_channel_exp
  • dead_channel_lin

Details

This metric calculates average power spectra for a seismic signal as described in the McNamara paper. See the McNamaraPSD method of Stream objects in the seismic package for details.

Uncorrected spectral density values are returned in spectrumMetricList in units of dB.

Other metrics calculated from the PSDs are returned in svMetricList. These metrics are:

[object Object],[object Object],[object Object],[object Object]

References

http://pubs.usgs.gov/of/2005/1438/pdf/OFR-1438.pdf{Seismic Noise Analysis System Using Power Spectral Density Probability Density Functions} (McNamara and Boaz 2005)

See Also

SpectrumMetric SingleValueMetric

Examples

Run this code
# Open a connection to IRIS DMC webservices
iris <- new("IrisClient")

# NOTE:  The following trace has 1.728 million points.
# NOTE:  Downloading and calculating PSD may take a few seconds.
starttime <- as.POSIXct("2010-02-27",tz="GMT")
endtime <- as.POSIXct("2010-02-28",tz="GMT")
  
# Get the waveform
st <- getDataselect(iris,"IU","ANMO","00","BHZ",starttime,endtime)

# Calculate the PSD metric and show the SingleValueMetric results
listOfLists <- PSDMetrics(st)
svMetricList <- listOfLists[['svMetricList']]

dummy <- lapply(svMetricList, show)

Run the code above in your browser using DataLab