Function Reference
This section provides a complete reference for all public functions in easyQuake. Functions are grouped by category. Use your browser’s Ctrl+F / Cmd+F to search for a specific function name or keyword.
easyQuake.easyQuake
Data Download
download_mseed
Downloads one day of seismic waveform data in miniSEED format from IRIS/FDSN via ObsPy MassDownloader. Stores files and StationXML in project_folder/dirname.
Args:
dirname (str): Sub-directory name inside project_folder where files are saved. project_folder (str): Root project directory. single_date (datetime.date): Calendar day to download. minlat, maxlat (float): Latitude bounds of the download domain. minlon, maxlon (float): Longitude bounds of the download domain. dense (bool): If
True, minimum inter-station spacing is 1 m (dense network). IfFalse(default), 5000 m spacing is enforced. raspberry_shake (bool): Also download from the Raspberry Shake network (https://data.raspberryshake.org) whenTrue.
Returns: None
Example:
from datetime import date
download_mseed(dirname='20230101', project_folder='/data/myproject',
single_date=date(2023, 1, 1),
minlat=44.0, maxlat=45.0, minlon=-116.0, maxlon=-115.0)
download_mseed_event
Downloads waveform data for a time window bounded by a rectangular geographic domain. Useful for downloading waveforms around a known event time.
Args:
dirname (str): Sub-directory where files are saved. project_folder (str): Root project directory. starting (UTCDateTime): Start of download window. stopping (UTCDateTime): End of download window. minlat, maxlat (float): Latitude bounds. minlon, maxlon (float): Longitude bounds. maxrad (float): Unused in this variant (kept for API consistency).
Returns: None
download_mseed_event_radial
Downloads waveform data for a time window within a circular geographic domain centred on a point. Preferred for single-event targeted downloads.
Args:
dirname (str): Sub-directory where files are saved. project_folder (str): Root project directory. starting (UTCDateTime): Start of download window. stopping (UTCDateTime): End of download window. lat1 (float): Centre latitude. lon1 (float): Centre longitude. maxrad (float): Search radius in degrees.
Returns: None
Travel-Time Tables
build_tt_tables
Builds 1-D travel-time lookup tables by downloading station metadata from IRIS for a geographic region and time window, then computing P and S travel times with ObsPy TauPy.
Args:
lat1 (float): Centre latitude of the search region. long1 (float): Centre longitude of the search region. maxrad (float): Search radius in degrees. starting (UTCDateTime): Start of metadata query window. stopping (UTCDateTime): End of metadata query window. channel_codes (list[str]): Channel prefixes to include, e.g.
['EH','BH','HH']. db (str): SQLAlchemy connection string for the travel-time SQLite database. maxdist (float): Maximum source-receiver distance in km. Default 500. source_depth (float): Fixed source depth in km. Default 5. delta_distance (int): Distance increment in km. Default 1. model (str or None): TauPy velocity model name (e.g.'iasp91'). Defaults to'iasp91'.
Returns: obspy.Inventory – the downloaded station inventory.
build_tt_tables_local_directory
Builds travel-time lookup tables from StationXML files already present in a local data directory. Use this when data was downloaded with download_mseed and station metadata is stored locally.
Args:
dirname (str): Sub-directory containing StationXML / dailyinventory.xml files. project_folder (str): Root project directory. channel_codes (list[str]): Channel prefixes to include. Default
['EH','BH','HH','HN']. db (str): SQLAlchemy connection string for the travel-time SQLite database. maxdist (float): Maximum source-receiver distance in km. Default 800. source_depth (float): Fixed source depth in km. Default 5. delta_distance (int): Distance increment in km. Default 1. model (str or None): TauPy velocity model name. Defaults to'iasp91'.
Returns: obspy.Inventory – the combined station inventory from the directory.
build_tt_tables_local_directory_ant
Antenna-array variant of build_tt_tables_local_directory. Intended for very dense networks where individual station spacing is small. Channel codes default to ['EH','BH','HH'] (no strong-motion).
Args: Same as build_tt_tables_local_directory except channel_codes default and internal distance handling differ.
Returns: obspy.Inventory
Detection
detection_continuous
Runs one day of single-station ML picking (or STA/LTA) on a directory of waveform files. Creates a per-day SQLite picks database. Called in sequence before association_continuous.
Supported machine_picker values:
'GPD'– Generalized Phase Detection (default)'EQTransformer'– EQTransformer deep-learning picker'PhaseNet'– PhaseNet CNN picker'Seisbench'– any SeisBench-compatible model (requires separate conda environment)None/machine=False– classic STA/LTA trigger
Args:
dirname (str): Sub-directory containing the daily waveform files. project_folder (str): Root project directory. project_code (str): Short project identifier string. local (bool):
Trueto read station inventory from local files;Falseto query FDSN. machine (bool):Trueto use an ML picker;Falsefor STA/LTA. machine_picker (str or None): Picker name (see above). Defaults to'GPD'whenmachine=True. single_date (datetime.datetime): Day to process. make3 (bool): Synthesise missing horizontal components from the vertical when only one component is available. DefaultTrue. latitude, longitude (float): Used whenlocal=Falseto query FDSN for station inventory. max_radius (float): FDSN query radius in degrees (only used whenlocal=False). fullpath_python (str or None): Path to the Python interpreter; only needed for the CLI fallback path. filtmin, filtmax (float): Bandpass corner frequencies for STA/LTA (Hz). Defaults 2 / 15 Hz. t_sta, t_lta (float): STA and LTA window lengths in seconds. Defaults 0.2 / 2.5 s. trigger_on, trigger_off (float): STA/LTA ratio thresholds. Defaults 4 / 2. trig_horz, trig_vert (float): STA/LTA coincidence thresholds for horizontal / vertical channels. Defaults 6 / 10. seisbenchmodel (str or None): Full path to a SeisBench model checkpoint (only used whenmachine_picker='Seisbench'). use_multiprocessing (bool): Use multiprocessing for STA/LTA computation across stations. DefaultFalse.
Returns: None
Example:
from datetime import datetime
detection_continuous(dirname='20230101', project_folder='/data/myproject',
project_code='IDAHO', machine=True, machine_picker='GPD',
single_date=datetime(2023, 1, 1))
queue_sta_lta
Runs the STA/LTA trigger on all stations listed in an input file and writes picks to an output file. Supports optional multiprocessing.
Args:
infile (str): Path to the
dayfile.instation file list. outfile (str): Path where pick output is written. dirname (str): Data directory (used for context only). filtmin (float): High-pass filter corner in Hz. Default 2. filtmax (float): Low-pass filter corner in Hz. Default 15. t_sta (float): Short-term average window in seconds. Default 0.2. t_lta (float): Long-term average window in seconds. Default 2.5. trigger_on (float): STA/LTA on-threshold. Default 4. trigger_off (float): STA/LTA off-threshold. Default 2. trig_horz (float): Horizontal coincidence threshold. Default 6. trig_vert (float): Vertical coincidence threshold. Default 10. use_multiprocessing (bool): Use a multiprocessing Pool. DefaultFalse.
Returns: None
Association & Catalog Building
association_continuous
Associates ML/STA-LTA picks from one day into candidate earthquake events using the PhaseAssoc 1-D associator. Builds travel-time tables, loads picks into an SQLite database, and runs the association algorithm. Results are stored in per-day SQLite databases consumed by combine_associated.
Args:
dirname (str): Sub-directory for the day being processed. project_folder (str): Root project directory. project_code (str): Short project identifier. maxdist (float): Maximum station search distance in km for travel-time table. maxkm (float): Maximum epicentral distance for event association in km. single_date (datetime.datetime): Day to associate. local (bool): Read station inventory locally (
True) or from FDSN (False). nsta_declare (int): Minimum number of stations needed to declare an event. Default 3. delta_distance (int): Travel-time table distance increment in km. Default 1. assoc_ot_uncert (float): Origin-time uncertainty window in seconds. Default 10. cutoff_outlier (float): Distance cutoff for outlier removal in km. Default 40. loc_uncert_thresh (float): Location uncertainty threshold in degrees. Default 0.5. machine (bool):Trueif ML picks were used;Falsefor STA/LTA. machine_picker (str or None): Picker name used for detection (must match thedetection_continuousrun). latitude, longitude (float): Used whenlocal=False. max_radius (float): FDSN query radius in degrees (only used whenlocal=False). model (str or None): TauPy velocity model name. delete_assoc (bool): Delete an existing association database before running. DefaultFalse.
Returns: None
combine_associated
Reads all per-day association SQLite databases in a project folder, merges them into a single ObsPy Catalog, optionally re-locates events with Hyp2000, and returns the catalog.
Args:
project_folder (str): Root project directory. project_code (str): Short project identifier. catalog_year (bool): Limit to a specific year when
True. year (int or None): Four-digit year (used whencatalog_year=True). hypoflag (bool): Run Hyp2000 location on events in the combined catalog. eventmode (bool): Each sub-directory is a single event (vs. one day per directory). daymode (bool): Restrict to a single day whenTrue. single_date (datetime.datetime or None): Day to restrict to (used whendaymode=True). machine_picker (str or None): Picker name; used to look up database filenames.
Returns: (obspy.Catalog, pandas.DataFrame) – the combined event catalog and a summary DataFrame.
detection_association_event
One-shot pipeline for a single candidate event: optionally downloads radial waveforms, runs ML picking, associates picks, and returns the event catalog. Used by the quasi-realtime module.
Args:
project_folder (str): Root project directory. project_code (str): Short project identifier. maxdist (float): Maximum station search distance in km. maxkm (float): Maximum epicentral distance for association in km. local (bool): Read station inventory locally. machine (bool): Use ML picker. machine_picker (str or None): Picker name. fullpath_python (str or None): Path to Python interpreter. approxorigintime (str or UTCDateTime): Approximate origin time of the candidate event. downloadwaveforms (bool): Download waveforms from FDSN before picking. Default
True. delta_distance (int): Travel-time table distance increment in km. Default 1. latitude, longitude (float): Epicentre hint for waveform download. max_radius (float): Download radius in degrees.
Returns: None (catalog written to disk)
pytocto_file_quakeml
Converts a PyOcto output file to an ObsPy QuakeML catalog.
Args:
file (str): Path to the PyOcto output file.
Returns: obspy.Catalog
Magnitude Estimation
magnitude_quakeml
Computes local magnitude (ML) for each event in a catalog by measuring peak amplitudes on horizontal-component waveforms with instrument response removed. Optionally estimates P-wave polarity and S/P amplitude ratio. Writes the updated catalog to project_folder/cat.xml.
Args:
cat (obspy.Catalog): Input catalog. project_folder (str): Root project directory containing per-day waveform sub-directories. plot_event (bool): Save a section plot for each event. Default
False. cutoff_dist (float): Maximum epicentral distance in km to include a station magnitude. Default 200. estimate_sp (bool): Estimate S/P amplitude ratio (proxy for focal depth). DefaultFalse. eventmode (bool):Trueifproject_folderis a single-event directory. DefaultFalse. dirname (str or None): Day string (used in event-mode).
Returns: obspy.Catalog with magnitudes appended.
polarity
Determines the first-motion polarity of a P-wave pick on a single trace.
Args:
tr (obspy.Trace): Seismic trace containing the P arrival. pickP (UTCDateTime or None): Time of the P pick.
Returns: str – 'positive', 'negative', or 'undecided'.
sp_ratio
Calculates the S-to-P amplitude ratio for a three-component station, which can be used as a rough focal depth indicator.
Args:
st3 (obspy.Stream): Three-component stream with response removed. inv (obspy.Inventory): Instrument response inventory. pickP (obspy.Pick or None): P-wave pick object. all_picks (list): All picks for the event. event (obspy.Event): Parent event object.
Returns: float – S/P amplitude ratio.
Location
locate_hyp2000
Re-locates events in a catalog using the Hyp2000 (HYPOINVERSE) program. Generates .pha phase files and run.hyp control files, calls the Hyp2000 binary, and reads back the origin solution into the catalog.
Args:
cat (obspy.Catalog): Input catalog with picks. project_folder (str): Root project directory. vel_model (str or None): Path or name of a
.crhvelocity model file. Defaults to the bundledstandard.crh. fullpath_hyp (str or None): Path to the Hyp2000 binary directory. IfNone,hyp2000must be on$PATH. daymode (bool): Use day-scoped output files. DefaultFalse. catalog_year (bool): Use year-scoped output files. DefaultFalse. year (int or None): Year (used whencatalog_year=True). single_date (datetime.datetime or None): Day (used whendaymode=True).
Returns: obspy.Catalog with new Hyp2000 origin appended to each event.
Catalog Utilities
simple_cat_df
Converts an ObsPy Catalog to a pandas DataFrame with one row per event.
Args:
cat (obspy.Catalog): Input catalog. uncertainty (bool): Include location uncertainty columns (
horizontal_error,vertical_error,rms,azimuthal_gap,num_arrivals). DefaultFalse.
Returns: pandas.DataFrame with columns origintime, latitude, longitude, depth, magnitude, type, id (plus uncertainty columns if requested).
catdf_narrowbounds
Filters a catalog DataFrame to a rectangular geographic box.
Args:
catdf (pandas.DataFrame): DataFrame produced by
simple_cat_df. lat_a, lat_b (float): Minimum and maximum latitude. lon_a, lon_b (float): Minimum and maximum longitude.
Returns: Filtered pandas.DataFrame.
reduce_catalog
Filters an ObsPy Catalog to retain only events meeting minimum quality criteria.
Args:
cat (obspy.Catalog): Input catalog. num_arr (int or None): Minimum number of arrivals required. vert_unc (float or None): Maximum vertical (depth) uncertainty in metres.
Returns: obspy.Catalog
duplicate_remove
Removes likely duplicate events from a catalog. Events within seconds of another event (sorted chronologically) are treated as duplicates and the later one is removed.
Args:
cat (obspy.Catalog): Input catalog. seconds (float): Minimum inter-event time in seconds. Default 5.
Returns: obspy.Catalog with duplicates removed.
fix_picks_catalog
Verifies that the waveform file referenced by each pick actually exists in the project directory. If a pick channel code does not match any file (e.g. HHE vs HH1), the code is updated to the channel found on disk.
Args:
catalog (obspy.Catalog): Input catalog. project_folder (str): Root project directory. filename (str or None): If provided, write the corrected catalog to this QuakeML file path.
Returns: Corrected obspy.Catalog.
cut_event_waveforms
Cuts waveform windows around each event in a catalog, saves them as miniSEED files in project_folder/events/, and optionally plots each event record section. Run fix_picks_catalog first to ensure channel codes are correct.
Args:
catalog (obspy.Catalog): Input catalog. project_folder (str): Root project directory. length (int): Waveform cut length in seconds after the origin time. Default 120. filteryes (bool): Apply a 1 Hz high-pass filter before plotting. Default
True. plotevent (bool): Save a PNG record-section plot for each event. DefaultFalse. cutall (bool): Also cut all stations without picks and save as a_nopicks.mseedfile. DefaultFalse.
Returns: obspy.Catalog (same as input).
make_station_list_csv
Reads all dailyinventory.xml files found in sub-directories of project_folder and writes a station_list.csv file to each sub-directory that does not yet have one.
Args:
project_folder (str): Root project directory.
Returns: None
daymode_catalog
Convenience pipeline for a single day: calls combine_associated, magnitude_quakeml, and locate_hyp2000 in sequence, then saves QuakeML and CSV output.
Args:
project_folder (str): Root project directory. project_code (str): Short project identifier. single_date (datetime.datetime): Day to process. machine_picker (str or None): Picker name used during detection. fullpath_hyp (str or None): Path to Hyp2000 binary directory.
Returns: None
yearmode_catalog
Same as daymode_catalog but spans a full calendar year.
Args:
project_folder (str): Root project directory. project_code (str): Short project identifier. year (int): Four-digit year. machine_picker (str or None): Picker name. fullpath_hyp (str or None): Path to Hyp2000 binary.
Returns: None
Format Conversion
single_event_xml
Writes each event in a catalog to an individual QuakeML file in project_folder/<format>/.
Args:
catalog (obspy.Catalog): Input catalog. project_folder (str): Root project directory. format (str): Output format string passed to ObsPy. Default
'QUAKEML'.
Returns: None
daily_catalog_xml
Writes one QuakeML file per calendar day in project_folder/<format>/, named YYYYMMDD.xml.
Args:
catalog (obspy.Catalog): Input catalog. project_folder (str): Root project directory. Default
'.'. format (str): Output format. Default'QUAKEML'.
Returns: None
join_all_xml
Reads all *.xml files in a folder and merges them into a single catalog file.
Args:
xml_folder (str): Path to the folder containing individual QuakeML files. filename (str): Output filename (without extension;
.xmlis appended). format (str): Output format. Default'QUAKEML'.
Returns: None
quakeml_to_hypodd
Converts an ObsPy Catalog to HypoDD input files (phase.dat and station.dat). Optionally downloads station metadata from FDSN.
Args:
cat (obspy.Catalog): Input catalog. download_station_metadata (bool): Download station coordinates from FDSN. Default
True. project_folder (str): Root project directory. project_code (str): Short project identifier; used as a filename prefix.
Returns: None. Writes <project_code>.pha and <project_code>station.dat.
quakeml_to_growclust
Converts HypoDD-format phase and cross-correlation files to GrowClust input format. Filters cross-correlation pairs by cc_threshold and writes evlist.txt, dtcc.txt, and stlist.txt.
Note
Run quakeml_to_hypodd first to generate the phase and station files.
Args:
project_folder (str): Root project directory. phase_file (str): HypoDD phase file name. Default
'phase.dat'. station_file (str): HypoDD station file name. Default'station.dat'. dt_file (str): Cross-correlation differential time file name. Default'dt.cc'. cc_threshold (float): Minimum cross-correlation coefficient to retain a pair. Default 0.6. download_station_metadata (bool): Download station coordinates from FDSN for the GrowClust station list. DefaultFalse.
Returns: None
quakeml_to_hdf5
Converts waveform data associated with each event in a catalog to STEAD-compatible HDF5 format for ML model re-training. Optionally writes a CSV summary.
Args:
cat (obspy.Catalog): Input catalog. project_folder (str): Root project directory containing per-day waveform sub-directories. makecsv (bool): Write a CSV event summary to
project_folder/. DefaultTrue.
Returns: None. Writes project_folder/merge.hdf5 (and optionally a CSV).
Plotting
plot_map_catalog
Plots a map of earthquake epicentres from a catalog using Basemap, coloured by event index (time sequence). Saves to hypo_map.png.
Args:
cat (obspy.Catalog): Input catalog. filename (str or None): Output PNG filename (without extension). Defaults to
'hypo_map'. points (bool): Plot as small dots instead of magnitude-scaled circles. DefaultFalse.
Returns: None
plot_gr_freq_catalog
Plots earthquake frequency-of-occurrence (monthly and daily) and Gutenberg-Richter magnitude-frequency distribution. Saves freq_plot.png and gr_plot.png.
Args:
cat (obspy.Catalog): Input catalog. min_mag (float): Minimum magnitude for the completeness-threshold subplot. Default 2.
Returns: None
plot_hypodd_catalog
Reads a HypoDD reloc output file and plots relocated epicentres on a Basemap.
Args:
file (str): Path to the HypoDD
relocfile. fancy_plot (bool): IfTrue, colour-code events by time and scale symbols by magnitude. DefaultFalse.
Returns: None. Saves hypoDDmap.png.
easyQuake.gpd_predict.gpd_predict
sliding_window
Calculate a sliding window over a signal array.
Args:
data (numpy.ndarray): Array to slide over. size (int): Window length in samples. stepsize (int): Step between successive windows. Default 1. axis (int): Axis along which to slide. Defaults to the last axis. copy (bool): Return a copy of the strided array to avoid side-effects. Default
True.
Returns: numpy.ndarray – matrix where each row (in the last dimension) is one window instance.
easyQuake.phasenet.phasenet_predict
read_args
Parses command-line arguments for the PhaseNet predictor. Accepts an optional argv list for programmatic use.
Args:
argv (list or None): Argument list. If
None, reads fromsys.argv. DefaultNone.
Returns: argparse.Namespace
pred_fn
Runs PhaseNet inference on the provided data reader and writes phase-pick results to disk.
Args:
args: Parsed arguments (from
read_args). data_reader:DataReaderobject wrapping the input miniSEED files. figure_dir (str or None): Directory to write probability plots. DefaultNone. prob_dir (str or None): Directory to write probability arrays. DefaultNone. log_dir (str or None): Directory for TensorFlow logs. DefaultNone.
Returns: 0 on success.
easyQuake.seisbench.run_seisbench
main
Command-line entry point for SeisBench-based phase picking. Reads a dayfile.in station list, applies a trained SeisBench model to each station’s waveforms, and writes picks to an output file.
Command-line flags:
-I: Inputdayfile.infile (required).-O: Output picks file (required).-M: Full path to the SeisBench model checkpoint (required).
Returns: None
easyQuake.EQTransformer.mseed_predictor
main
Command-line entry point for EQTransformer phase picking. Reads a dayfile.in station list, loads the EQTransformer model (preferring a .keras format if available), and writes picks to an output file.
Command-line flags:
-I: Inputdayfile.infile (required).-O: Output picks file (required).-F: Path to the EQTransformer model directory (required).
Returns: None