Skip to main content

PickAx

PyPI Documentation Status

PickAx: a simple seismic picker, when you just need to dig out a few arrivals.

Start

pickax -h
Hi PickAx!
usage: pickax [-h] [-v] [-l LOADER] [-s SEIS]

Pickax, really simple seismic phase picker.

options:
  -h, --help            show this help message and exit
  -v, --verbose         increase output verbosity
  -l LOADER, --loader LOADER
                        Initialization loader script, run at startup
  -s SEIS, --seis SEIS  Seismogram file, loaded at startup

For example, using simple.py to initialize pickax, load some data from files and open the picker window:

pickax -l simple.py

Or to view just a single miniseed file, ie quick look:

pickax -s JKYD.mseed

Keys

  • c: Create a generic pick at the current mouse location
  • a: Create a P pick at the current mouse location
  • s: Create a S pick at the current mouse location
  • backspace: Delete pick at the current mouse location
  • d: Display your picks
  • D: Display all picks
  • f: Apply next filter
  • F: Apply previous filter
  • y: Toggle amplitude mode
  • p: Toggle time mode
  • x: Zoom in, first use marks one edge, second zooms in
  • X: Zoom back out, double time displayed
  • z: Return to original autozoom
  • w: Shift seismogram to left (west)
  • e: Shift seismogram to right (east)
  • t: Print current time, amplitude at mouse position
  • v: Go to next data
  • r: Go to previous data
  • V: Skip forward to next quake
  • R: Skip backward to previous quake
  • q: Quit
  • h: Display this help, but you knew that, right?

Picks are draggable with the mouse.

Configuration

PickAx tries to be very simple and do just one thing, just like a pickax is good for digging a hole in red clay, but is just one of the tools in your toolshed. So don't forget to use your shovels, screwdrivers and lawnmowers for the things they do better. Basically all data management is handed off to the startup script. By setting the finishFn, you can save picks however you want (or not at all), and load in the next seismogram for display. Setting the filters allows toggling between different ways of processing the seismogram. The creation_info provides default creation info for the pick, primarily for author or agency_id, defaulting to author=os.getlogin().

See simple.py for an example of setting up pickax and loading data.

The fdsnws_query.py is another example that uses FDSN web services to load data on the fly.

Filter functions

Filters are often a way of applying actual time series filters, but can be anything that modifies the waveform. They are each a simple dictionary with a name and fn. The function will be called with four arguments. First is a copy of the original stream, so modification in place is safe. The second is the current filtered stream, so filters can build on the previous if that is what you want. Third is the name for the current filter function, and last is the filter index, just for reference. If a stream is returned, that becomes the current displayed stream, but if None is returned, then it assumes the original was modified in place.

Finish function

The finish function is called whenever the user quits, goes to next or previous, ie q, V, v, R or r. It is called with four arguments, first is the QuakeML Event, which contains picks, including both new picks and any existing picks. Second is the current stream, useful to get the channel. Third is the command, one of "quit", "next", "next_quake", "prev" or "prev_quake" and the last is pickax itself.

For next and prev, you generally will call pickax.update_data() passing in a new stream and optionally quake and inventory if they have changed.

Title

The main window can fave an additional title string, generated by titleFn. The default is origin time, lat/lon depth and magnitude of the event. The titleFn takes 3 arguments, quake, inventory and stream, similar to the update_data function.

utilities

  • usgspicks: reload event from USGS by id to load picks as default query does not include picks. Likely only works if host is USGS server.

  • mergepicks: merge picks from one or more QuakeML files into another, optionally limiting to author

  • dumppicks: print picks from one or more QuakeML files

build hints

conda create -n pickax python=3.10
conda activate pickax
python3 -m pip install --upgrade build
/bin/rm -f dist/* && python3 -m build
pip3 install dist/seismic_pickax-*-py3-none-any.whl --force-reinstall

or if all deps are already installed, much faster:

pip3 install dist/seismic_pickax-*-py3-none-any.whl --force-reinstall --no-deps

to publish:

python3 -m twine upload dist/*

for testing, use code in current directory so updates on edit:

pip install -v -e .

Metadata

Release files for seismic-pickax 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for seismic-pickax 0.7.1
File Size Uploaded
seismic_pickax-0.7.1.tar.gz 176.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for seismic-pickax 0.7.1
File Interpreter ABI Platform
seismic_pickax-0.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 227.6 kB

Release files / seismic_pickax-0.7.1.tar.gz

Download URL seismic_pickax-0.7.1.tar.gz
Size 176.0 kB
Tags Source
SHA-256 checksum
How to use checksums
2a27331a22d3ae1933019b2e118a46098d81e278421ae613280421d4c1bc534a
BLAKE2b-256 checksum
How to use checksums
47585c3c413007dce4040bffba564f1e77690a2177e5b18eb49a83c3dea60caf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.28.1

Release files / seismic_pickax-0.7.1-py3-none-any.whl

Download URL seismic_pickax-0.7.1-py3-none-any.whl
Size 51.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fdf5f0f30e590c0a3acc82df980ab56d99765201c7de8c55c9feab12676e17ac
BLAKE2b-256 checksum
How to use checksums
c5fbc46fa37b734cd41e97529d972a5c7233127ff969edb78e377d7edcfb51f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.28.1

Release history Release notifications | RSS feed

This release

0.7.1 This release

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4

2 release files

0.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page