Skip to main content

A modular-based Python package for shallow diving-wave analysis of hammer seismics

Project description

SPIce is a modular-based Python package for performing shallow diving-wave analysis of node-type data from hammer seismics. SPIce was developed to study the firn and shallow ice structures in ice sheets and permafrost. Every step in the seismic refraction workflow is included, beginning with data handling and processing, first break picking of diving waves, travel-time curve fitting and seismic velocity analysis, and various plot operations. Data visualisation provides an interactive graphical platform for users if they wish to manually pick and export first breaks while viewing the detailed shape of waveforms.

SPIce Class Modules:

  • spice is the main class for performing data extraction, handling and processing whilst calling upon the other embedded classes.
  • inversion is the class that employs the analytic Herglotz-Wiechert inversion (HWI) algorithm to calculate the 1-D depth-velocity and depth-density profiles from the diving waves
  • spicey_plotter is the class that contains our interactive platform for data visualisation.
  • pykonal_plotter is an optional class for users who would like to visualise the travel-time field using seismic ray tracing algorithms from PyKonal (White et al., 2022).

Include text file with list of files needed to run SPIce.

  • Path to seismic waveform data
  • Path to seismic node metadata with locations
  • Path to hammer shot metadata containing any information about hammer shot times and number of strikes
  • Option to include path to tilt angles of seismic nodes

The following section provides information on how to call the main method, trace_lineup_plot.

trace_lineup_plot(stream, outfile=None, stackedchannel=None, newchannel=None,
                        scale_factor=1.0, input_points=None, input_csv=None, traveltime_df=None):

    stream - Obspy stream of traces
    outfile - filename to save CSV clicked points and seismic wiggle figure
    stackedchannel - name of channel of stacked traces (e.g. 'GPZS')
    channel - name of channel to display in black (e.g. 'GPZ')
    scale_factor - scaling factor for traces to fit in trace lineup plot
    input_points - tuples list of (distance_km, travel_time_s) or (distance_km, offset_m, travel_time_s, station)
    input_csv - path to load CSV file with seismic-derived traveltime points with column format, (distance_km, travel_time_s) or (distance_km, offset_m, travel_time_s, station)
    traveltime_df - pandas dataframe of seismic-derived traveltimes to input_points or input_csv

Example run:

from seismic_wiggle_plotter import SeismicWigglePlotter

plotter = SeismicWigglePlotter()
outfile = '/figures/stacked-tracelineup-plot-channelGPZ.png'

""" Tuples column format (distance_km, offset_m, travel_time_s, station)
where each row represents a station or trace in ObsPy stream, stacked_traces """
points_list = [[0.0, 0.0, 0.081, 0],
 [0.009, 9.0, 0.091, 1],
 [0.02, 20.0, 0.099, 2],
 [0.025, 25.0, 0.101, 3],
 [0.04, 40.0, 0.106, 4],
 [0.05, 50.0, 0.11, 5]]

""" Initialise traveltime dataframe with required columns """
traveltime_df = pd.DataFrame(columns=['xmodel (m)', 'ttmodel (ms)'])

points_df = plotter.trace_lineup_plot(
    stacked_traces,
    outfile=outfile,
    stackedchannel='GPZ',
    channel=None,
    scale_factor=1.0,
    input_points=points_list,
    input_csv=None,
    traveltime_df=traveltime_df
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spice_shyla-0.1.0.tar.gz (31.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spice_shyla-0.1.0-py3-none-any.whl (34.0 kB view details)

Uploaded Python 3

File details

Details for the file spice_shyla-0.1.0.tar.gz.

File metadata

  • Download URL: spice_shyla-0.1.0.tar.gz
  • Upload date:
  • Size: 31.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for spice_shyla-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cde7b05edcf83729b32d3b8b57711866278f301f1e4dbabef4b6b309d618ae08
MD5 7e6199a2a3d9a57068698ad18416c5bc
BLAKE2b-256 2da5c8be3c7aeb293c4f62f76a0d626890072caf6176e3e9341a3a49d9648681

See more details on using hashes here.

File details

Details for the file spice_shyla-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: spice_shyla-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 34.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for spice_shyla-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 73ddda2e7c94055e19d2037eb14a54db2f411bfb1dfdfc9e9993c435086682b3
MD5 d9933fbd6bb8f39a7d19ce9a3d903d17
BLAKE2b-256 50500dab7a45cbaa620f36f9f8ae5f0be1b4ec7ab9f4e9247713216a0c7dc078

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page