Skip to content

Releases: xtyangpsp/SeisGo

Bug fixes and new functionalities

20 Nov 13:39
1c74529
Compare
Choose a tag to compare

Here is a summary of major changes in this release. Please refer to changes.txt in the package directory for detailed notes of changes. The main functionality change/update is the under-the-hood redesign of the cross-correlation workflow. It should be compatible with older scripts doing xcorr. The new/updated do_correlation() added more options.

Updates in v0.9.0:
SCRIPTS:

  1. Added the scripts for the whole workflow of extracting EGFs.
  2. Removed some old scripts that are incompatible with the new usage and functions.

SCRIPTS/2_XCORR_MPI.py:

  1. Added a switch named correct_orientation for channel orientation correction/conversion.
  2. Added pad_thre to define the maximum threshold of size gaps between channels when doing orientation correction.
  3. Added a switch named do_rotation for horizontal channel rotation
  4. Added a switch named channel_pairs for specifying which channel pairs are saved.

SIMULATION MODEL:

  1. Added build_vmodel() to create a layered model with linearly increasing velocity.

TYPES:

  1. Added checking for corrdata.data.ndim when initilizing CorrData to make sure substack True for ndim 2 (or >1).

OBSMASTER:

  1. Moved correct_orientations() out to utils, but kept the block of calling this function to be compatible with old usage.

UTILS:

  1. Moved correct_orientations() here.
  2. Fixed a bug where the number of traces in slicing_trace() is 1 trace less than the true number.

NOISE:

  1. Added trace_info() to extract trace and orientation info.
  2. Added the function to correct horizontal orientations and convert 1/2 channels to N/E channels.
  3. Optimized the workflow for cross-correlation with the option to do rotation before xcorr.
    3a. Added the function to do channel rotation specified channel pairs
    3b. do_correlation(): added an option to specify which channel pairs are saved.
    3c. Added assemble_raw() to assemble raw data from h5 files
    3d. Updated assemble_fft() to prepare data for FFT with rotation and specified xcorr pairs.
  4. Added get_locator() to read inventory and location id of stations
  5. Added rotation() to perform horizontal channel rotation

Bug fixes for taper error

24 Apr 14:12
Compare
Choose a tag to compare

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`.

Added citation for pip project description

21 Apr 14:24
Compare
Choose a tag to compare

No other updates beyond adding citation.

Improvements and bug fixes

21 Apr 02:42
Compare
Choose a tag to compare

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.

New features, improvements, and bug fixes

22 Nov 02:59
Compare
Choose a tag to compare

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.

New features and improvements

08 Dec 13:37
Compare
Choose a tag to compare

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.

New feature and improvements

13 Jul 18:35
Compare
Choose a tag to compare

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.

Bug fixes and new features

06 Apr 18:53
Compare
Choose a tag to compare

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.

Added two new stacking methods

18 Jan 15:51
Compare
Choose a tag to compare

See changes.txt for details.

Minor improvements and bug fixes

01 Jan 12:42
Compare
Choose a tag to compare

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