pyatoa.utils.window

Auxiliary criteria for weighting misfit windows to enhance or suppress certain measurements in order to fairly assess misfit criteria. This is meant to compliment the functionalities of Pyflex without having to directly edit the Pyflex source code.

Functions should work in place on a Manager class to avoid having to pass in all the different arguments from the Manager.

Module Contents

Functions

zero_pad_then_window(ws[, pad_by_fraction_of_npts])

To address Pyflex throwing ValueErrors when source-receiver distances are

reject_on_global_amplitude_ratio(data, windows[, ratio])

Reject windows where peak amplitude falls below some threshold value.

pyatoa.utils.window.zero_pad_then_window(ws, pad_by_fraction_of_npts=0.2)[source]

To address Pyflex throwing ValueErrors when source-receiver distances are

Note

Sept 1, 2020 Work in progress, may not actually want to do this to avoid any near-source effects?

Parameters:

ws (pyflex.WindowSelector) – an already-filled window selector object that should be passed in from the Manager object

Return type:

list of pyflex.Window

Returns:

a list of Window objects, or an empty list if no windows found or the zero padding didnt work

pyatoa.utils.window.reject_on_global_amplitude_ratio(data, windows, ratio=0.2)[source]

Reject windows where peak amplitude falls below some threshold value.

This was created in order to suppress windows containing long period direct arrivals, which were creating high-frequency adjoint sources.

Parameters:
  • data (np.ndarray) – data array to query amplitude values from

  • windows (list of pyflex.window.Window) – list of window objects to check

  • ratio (float) – percentage threshold of the peak value within a given window and the global peak value in the data array. Defaults to 0.2

Return type:

tuple of lists of pyflex.window.Window

Returns:

lists of accepted and rejected windows