Compute PSD RMS
Compute per-frequency-band RMS from PSD NetCDF files.
Reads the per-day PSD NetCDF files written by msnoise.s20_psd_compute,
concatenates all requested days for each station-channel, and for each
configured frequency band computes the RMS amplitude in displacement,
velocity, or acceleration (controlled by |psd_rms.psd_rms_type|).
The RMS is derived by integrating the PSD over the frequency band:
RMS = sqrt(integral(PSD(f) df, f_min, f_max))
converted to the requested physical unit.
Frequency bands are configured via |psd_rms.psd_rms_frequency_ranges|
as a list of (f_min, f_max) tuples, e.g.
[(1.0, 10.0), (4.0, 14.0)].
Output is written as a NetCDF file per station-channel under the lineage output path:
<output_folder>/<psd_step>/<psd_rms_step>/_output/<NET.STA.LOC.CHAN>/RMS.nc
The NetCDF file has two dimensions: times (one row per PPSD window)
and bands (one column per configured frequency band).
To run this step:
$ msnoise qc compute_psd_rms
Parallel processing:
$ msnoise -t 4 qc compute_psd_rms
Configuration Parameters
psd_rms.psd_rms_frequency_ranges: Specify the frequency bounds (in Hz) to compute the RMS from PSDs (default=[(1.0, 20.0), (4.0, 14.0), (4.0, 40.0), (4.0, 9.0)])psd_rms.psd_rms_type: What units do you want for the exported RMS (default=DISP)psd.psd_components: Components to process for PSD, defaults to [E,N,Z], but can be any comma separated list (e.g. ‘Z,E,N’) (default=E,N,Z)
See also
Reading these results in Python — use MSNoiseResult:
from msnoise.results import MSNoiseResult
from msnoise.core.db import connect
db = connect()
r = MSNoiseResult.from_ids(db, ...) # include the steps you need
# then call r.get_psd_rms(...)
See Reading outputs with MSNoiseResult for the full guide and all available methods.