Help: noise-pdf v.1


The noise-pdf web service returns Probability Density Functions (PDFs) for seismic channels.

Help Contents


Probability Density Functions (PDFs) can be useful for visualizing the characteristic noise levels of seismic data. The noise-pdf web service uses the Power Spectral Density (PSD) results from the noise-psd web service to construct PDFs. This service can return two formats:

  1. text or xml tabulating frequency/power bins and the count of PSD occurrences within those bins (“frequency, power, hits”), suitable for creating a histogram.
  2. PDF plot as described in McNamara and Buland (2004).

McNamara, Daniel E. and Raymond P. Buland, 2004, Ambient Noise levels in the Continental United States, Bulletin of the Seismological Society of America, 94 (4),1517-1527. DOI:10.1785/012003001


  1. Gather PSDs for requested station(s)-channel(s) and time period.
  2. Remove instrument transfer function from each PSD.
  3. Tabulate number of PSDs that fall into each combination of period (1/8 octave intervals) and power (1 dB intervals) bins. This information is stored in the database as described in the section Understanding Query Latency below.
  4. If text or xml output is requested, return tabulated values as “frequency, power, hits”.
  5. If plot output is requested, calculate the probability distribution and return a PDF plot.

Example PDF Plot
Example PDF plot produced by the noise-pdf web service.

Plot Options

There are many options available to customize the PDF plot output:

  1. New High and Low Noise Models (default = yes)
  2. Minimum, maximum, mode curves (default = yes)
  3. Legend for noise models, min/mode/max curves (default = yes)
  4. Legend for power color scale (default = no)
  5. Interpolation type (bicubic, bilinear, or none)
  6. Plot size in pixels
  7. Custom Title, subtitle, axis label
  8. Axes limits for frequency/period and power
  9. Choice of frequency or period x-axis labels (default=both)
  10. Font size for title, subtitle, or axes labels

Plot Examples

Basic Time Ranged Plot

Basic Plot all time

Basic Plot With Color Scale

Multiple Channel Plot

Plot with Options

Noise Profile Options

The format options format=noiseprofile_csvpipe, format=noiseprofile_text and format=noiseprofile_xml output noise levels as a function of frequency (hertz) for various statistics.

Statistics are selected with the noiseprofile.type parameter as a comma separated list.

Noise Profile Statistics.

Available noiseprofile.type statistics are:

min minimum power Equivalent to noiseprofile.type=0
max maximum power Equivalent to noiseprofile.type=100
median median power Equivalent to noiseprofile.type=50
mode most commonly occurring power
mean average mean power value
<0-100> percentile values. Must be integer from 0 to 100

Multiple statistics can be selected. For example: noiseprofile.type=5,95,mode.

Noise Profile Formats

Three formats are available for output noise profiles

noiseprofile_csvpipe outputs a list of frequency-value comma (,) separated tuples separated by pipe characters (|).
noiseprofile_text outputs a list of frequency-value comma (,) separated tuples separated by newline characters.
noiseprofile_xml outputs a list of frequency-value tuples separated in XML format

Noise Profile Sample Queries

These queries are for IU.ANMO.00.BHZ all time.







Using Noise Profiles in the noise-mode-timeseries service

The output generated by format=noiseprofile_csvpipe can be fed to the noise-mode-timeseries webservice for comparing noise level variations over time and channels via the noise-mode-timeseries noisemodel.byfrequency. Details of this feature are available HERE

Please note: the noise models input via the noisemodel.byfrequency to the noise-mode-timeseries webservice, may only have one or two variables (types). If one variable is used, noise levels are differenced to this variable. If two variable are used, noise levels are differenced to the upper and lower values when above or below the variables and set to zero when in between. The following examples illustrate this behavior. These examples utilize the UNIX wget command.

Example 1: Compare IU.ANMO.00.BHZ noise levels to mean IU BHZ channel noise levels

1: Fetch the profile of mean values for all IU BHZ channels and save in file mean.txt

wget -O mean.txt "*.*.BHZ.M&format=noiseprofile_csvpipe&noiseprofile.type=mean&starttime=2010-01-01&endtime=2014-01-01"

2: Copy contents of file mean.txt in unix-shell environment variable named MODEL

MODEL=`cat mean.txt`

3: Finally, call noise-mode-timeseries webservice with output=powerdnm and noisemodel.byfrequency=${MODEL} and save plot image in file anmo_delta_mean.png

wget -O anmo_delta_mean.png "${MODEL}&plot.title=relative%20to%20mean&target=IU.ANMO.00.BHZ.M&starttime=2010-01-01&endtime=2014-01-01&format=plot"

Example 2: Compare IU.ANMO.00.BHZ noise levels to 5% and 95% IU BHZ channel noise levels

1: Fetch the profile of 5% and 95% values for all IU BHZ channels and save in file model_5_95_percentile.txt

wget -O model_5_95_percentile.txt "*.*.BHZ.M&&format=noiseprofile_csvpipe&noiseprofile.type=5,95&starttime=2010-01-01&endtime=2014-01-01"

2: Copy contents of file model_5_95_percentile.txt in unix-shell environment variable named MODEL

MODEL=`cat model_5_95_percentile.txt`

3: Finally, call noise-mode-timeseries webservice with output=powerdnm and noisemodel.byfrequency=${MODEL} and save plot image in file anmo_delta_5_95_percentile.png

wget -O anmo_delta_5_95_percentile.png "${MODEL}&plot.title=relative%20to%20mean&target=IU.ANMO.00.BHZ.M&starttime=2010-01-01&endtime=2014-01-01&format=plot"

Understanding Query Latency

When a request is made to the web-service, the web service sends a series of queries to a backend SQL database. The results of those queries is compiled into a histogram which is returned as a plot, xml document or text document. The amount of time that a query takes is roughly proportional to the number of rows of data that must be returned from the database. There are two factors that determine the number of database rows that must be processed:

  1. The number of “targets” selected
  2. The time interval selected.

The number of targets selected is determined by what target query option is and what targets have actually been measured in the given time range. Asking for targets that do not have measurements does not incur a significant penalty. For example, if a query had the target selection target=AA.*.*.*.M and the AA network had many different channel codes, but only BHZ, BH1, BH2 were measured by the mustang system, only these channels would be processed by web-service. Requesting target=AA.*.*.BH*.M would result in the same number of rows being processed and would take the same amount of time for the webservice to process.

Understanding how the data is stored in the database helps to make sense of the effect of the selected time interval (starttime and endtime). The data is stored in 5 date range tiers:

  1. Day
  2. Week
  3. Month
  4. Year
  5. All-time

When an arbitrary time interval is selected, rows are retrieved from these 5 tiers to fill the selected time range in the most efficient manner possible. For example consider the request:


Assuming data is available to completely cover this time interval, this request would be filled by retrieving rows for the following dates:

Interval   Dates Rows
Day 2013-11-29, 2013-11-30   2
Week 2015-02-01 1
Month 2013-12, 2015-01 2
Year 2014 1
total rows: 6

If the selected time interval was:


Only 2 rows would need to be processed: 2013, 2014

If no time interval is selected or if the time interval is wider than the available measurements, only the all-time interval row needs to be processed.

The actual total number of rows processed will be the product of date range row count and effective targets selected count.

Notes on PSDs

Detailed information about the PSD estimates used by noise-pdf can be found at The algorithm for these PSD estimates follows NcNamara and Boaz (2005).

McNamara, D.E and Boaz, R.I., 2005, Seismic Noise Analysis System Using Power Spectral Density Probability Density Functions – A Stand-Alone Software Package, U.S.G.S. OFR 2005-1428.

These PSDs were smoothed to reduce variance. During smoothing, there is a tradeoff between enhancing frequency resolution and reducing variance of the PSDs (i.e. increasing repeatability). This choice gives a clearer general picture of station noise by reducing power smear, it is consistent with steps used to generate the Peterson new high and low noise models to which they are being compared, and it optimizes data storage. Consequently, narrow-bandwidth features will appear smeared across frequencies in these PSDs.

While the smoothing applied to the MUSTANG PSDs is appropriate for quality assurance purposes, it may not meet the needs of other objectives. In particular, Anthony et al. (2020) addresses the effects of various processing methodologies for PSDs and their usage.

Anthony, R. E., A. T. Ringler, D. C. Wilson, M. Bahavar, and K. D. Koper (2020). How Processing Methodologies Can Distort and Bias Power Spectral Density Estimates of Seismic Background Noise, Seismol. Res. Lett. 91, 1694–1706, DOI:10.1785/0220190212.

See Also

pct_above_nhnm, pct_below_nlnm,

Citations and DOIs

To cite the MUSTANG system or reference the use of MUSTANG metrics:

  • Assuring the Quality of IRIS Data with MUSTANG
    Robert Casey, Mary E. Templeton, Gillian Sharer, Laura Keyson, Bruce R. Weertman, Tim Ahern
    Seismological Research Letters (2018) 89 (2A): 630-639.

The following links describe the use of Probability Density Function (PDF) plots.

  • Ambient Noise levels in the Continental United States
    Daniel E. McNamara and Raymond P. Buland
    Bulletin of the Seismological Society of America (2004) 94 (4): 1517-1527.


[email protected]

Problems with this service?

Please send an email report of which service you were using, your URL query, and any error feedback to:
[email protected]
We will address your issue as soon as possible.