SeisGo Versions Save

A ready-to-go Python toolbox for seismic data analysis

v0.8.3

1 month ago

This release mostly fixed errors when using the latest scipy (1.13.0 as of the test), which caused incompatibility with the ObsPy taper function with "hann" window. The nested ObsPy taper function uses hann window from scipy.signal. This release also updated the notebooks/seisgo_download_xcorr_demo.ipynb notebook with the latest seisgo usages. Minor fixes in noise module replacing numpy.int with int'. Same for numpy.float`.

v0.8.2

1 month ago

No other updates beyond adding citation.

v0.8.1

1 month ago

This release contains bug fixes and minor improvements. Please update to the latest version. See changes.txt for detailed changes in this release.

Updates in v0.8.1 TYPES:

  1. Types.CorrData.subset: clarified documentary of overwrite option. Default False.
  2. Added a new class for plotting shaded relief based on cartopy.

NOISE:

  1. In shaping_corrdata(), modified to loop through all pairs and all components, if not specified by the user.

UTILS:

  1. qml2list:add option to only extract location and dates.
  2. slicing_trace(): fixed a bug when all trace std was computed using the amplitudes instead of the absolute amplitudes.
  3. slicing_trace(): changed to compute trace_stdS after demean and detrend. added demean and detrend of whole trace at the beginning.
  4. import tukey from scipy.signal.windows to be compatible with different scipy version.

DOWNLOADERS:

  1. get_events(): added depth range and search with radius in circles.

PLOTTINGS:

  1. plot_stations: added options to specific colors and renamed it to gmt_scatters() to be more general. Old function was kept but will throw an error.

OBSMASTER:

  1. import tukey from scipy.signal.windows to be compatible with different scipy version.

v0.8.0

6 months ago

There have been several new features and improvements implemented since the last release (v0.7.5). The majority of these are on smoothing or improving existing functionalities. New options are all compatible with old usage.

Here is the list of changes since v0.7.5 (also documented in the changes.txt file):

Updates in v0.8.0 MONITORING:

  1. get_dvv():drop negative error data

TYPES:

  1. RawData: minor bug fix for attribute names.
  2. Added CorrDataEnsemble() placeholder, to store a gather of CorrData from the same virtual source.
  3. Fixed a bug when merging corrdata pairs with different channel types (when ignore_channel_type is True).
  4. Fixed typos in CorrData.filter(), where highpass() was typed as lhighpass.
  5. CorrData.merge(): fixed bugs when errors in joining two data matrices, the time attribute will still be merged, leading to inconsistent sizes.
  6. DvvData: drop negative error data and added option to specify maximum error in plot().

NOISE:

  1. merge_pairs(): fixed minor bugs. Removed try{} block in stack, split, egf, and saving steps. The try block would hide errors that might be important to address.

DOWNLOADERS:

  1. download(): use "PRESSURE" as output for pressure channel.

UTILS:

  1. Change np.float to np.float32.
  2. save2asdf(): fixed sta_in when it is a list. =======
  3. save2asdf: Fixed a bug when saving multiple traces with a list of station inventory.

DOWNLOADERS:

  1. download(): changed pressure channel rmresp output to "PRESSURE", instead of hardcoding it to "VEL".

STACKING:

  1. stack: discard NaN traces before passing the data to each method.
  2. robust: fixed a bug when outlier traces have huge amplitudes, which would cause the dot product and L2 norms too large to be handeled by the system. The final stack will be scaled back. ================================================================= Updates in v0.7.7 TYPES:
  3. CorrData.merge(): added option to ignore channel types. This is needed when stations update their channels types, e.g., EH? to BH?. This new option would allow station pairs with different channel types to merge. Default is False.

NOISE:

  1. merge_pairs(): added option of ignore_channel_type.

SETUP:

  1. Change numpy requirement to be <1.26.0. ================================================================= Updates in v0.7.6 UTILS:
  2. Added smooth functions for 1d, 2d, and 3d grids.
  3. Added matrix_in_polygon to extract 2d or 3d values with,in a polygon.
  4. Added boundary_points() to get the boundary of a series of points.

v0.7.5

1 year ago

This release added new features, fixed bugs, and improved some functionalities. See changes.txt for details. Here is a list of key changes in this version.

Updates in v0.7.5 NOISE:

  1. correlate(): discarded lines removing peak at zero lag (demean of the spectrum).

MONITORING:

  1. get_dvv: improved plot saving. Fixed a bug where stack_method was not specified for substacking.
  2. ts_dvv: trimed data to only compare the original data window, excluding the padded zeros.
  3. xc_dvv: newly added method using moving window cross-correlations. needs improvements and more tests.

DISPERSION:

  1. get_dispersion_image: use adaptive window size for different periods, increasing with periods. This is options. Options to specify minimum number of trace and minimum number of wavelength.
  • added option to specify energy type, "power_sum" or "envelope".
  • added plotting options.
  • fixed bugs when only processing one side.
  1. renamed get_dispersion_waveforms() to narrowband_waveforms to avoid using the word "dispersion".

DOWNLOADERS:

  1. read_data(): minor bug fixes.
  2. get_data() and get_sta_list(): added flexibility of specifying the source, which could be a Client object.
  3. download(): added verbose to calling getdata().

STACKING:

  1. Added handling of small data size, i.e., 1 trace, which will return the data without stacking.
  2. Added option of using DOST for tfpws, based on the implementation by Jared Bryan. It was added as a new function:tfpws_dost.

UTILS:

  1. Added two functions to get image gradient and convert xyz to matrix, without interpolation.
  2. extract_waveform: read all data if not specifying stations.

PLOTTING:

  1. Added facecolor to set the background of plots to white.
  2. Added plot_dispersion_image() to plot dispersion image.

SIMULATION:

  1. New module for seismic wave simulations.

v0.7.4

1 year ago

v0.7.4 contains new features and improvements with bug fixes. See changes.txt for details (as summarized here).

Updates in v0.7.4 UTILS:

  1. Added spectral whitening function: whiten(), for time series data.

MONITORING:

  1. Added whitening option in get_dvv().

TYPES:

  1. FFTData, fixed a minor bug when getting Nfft for single trace data.
  2. CorrData shaping: trim_end option to accommodate the need by FWANT.

PLOTTING:

  1. plot_psd() bug fixed

STACKING:

  1. Fixed a bug in robust stacking when the trace amplitudes are anomalously small.

DOWNLOADERS:

  1. ms2asdf(): added option to specify response file.

DISPERSION:

  1. get_dispersion_waveforms: Use period to get the evenly-spaced period vector.
  2. get_dispersion_image: new function to extract dispersion image in velocity-period domain/space.

v0.7.3

2 years ago

Bug fixes and new features, as listed in the changes.txt file (summarized here).

Updates in v0.7.3 NOISE:

  1. Added mpi option and fixed error in handling wrong file, in extract_corrdata()
  2. Fixed error handling in get_stationpairs().
  3. Added split_sides() to split corrfile sides and save separately.
  4. Added shaping_corrdata() to wrap shaping function, convolving with wavelet.
  5. Added split option in merge_pairs().

TYPES:

  1. Added CorrData.shaping() to shape the data with wavelet.
  2. Added CorrData.save() to wrap saving functions.
  3. In CorrData.to_asdf(), save stack_method.
  4. Fixed a bug in CorrData.to_egf() where the zero lag was not handled correctly. The negative side was wrong.

UTILS:

  1. Added gaussian() and ricker() as the shaping wavelets.
  2. Added box_smooth().

DOWNLOADERS:

  1. In read_data(), changed default to False for getstainv.

HELPERS:

  1. Added wavelet_labels().

MONITORING:

  1. Added vpcluster_evaluate_kmean() to find the optimal number of clusters.

DISPERSION:

  1. Improved frequency steps in disp_waveform_bp().

STACKING:

  1. Synced with stackmaster functions.

CLUSTERING:

  1. Automatically determine the optimal number of clusters.

v0.7.0

2 years ago

See changes.txt for details.

v0.6.6

2 years ago

This release is mainly about minor improvements (though useful and important) and bug fixes. See changes.txt in the code folder for details.

v0.6.5

2 years ago

New features and improvements.

Updates in v0.6.5 SETUP:

  1. Added requirements for tslearn and minisom mainly for the clustering module .

CLUSTERING:

  1. Added the new module.
  2. Added clustering of velocity depth profiles with kmean and som, in two functions.

PLOTTING:

  1. Added get_color_cycle() to help assign colors in plotting using matplotlib.
  2. Cleaned up unused old NOISEPY functions.
  3. Function to plot vmodel clustering results.

NOISE:

  1. Optimized merge_chunks() to use less time getting the time range.

UTILS:

  1. Added option to use pattern in get_filelist().