requake 0.5__tar.gz → 0.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- requake-0.7/CHANGELOG.md +128 -0
- {requake-0.5 → requake-0.7}/PKG-INFO +78 -36
- {requake-0.5 → requake-0.7}/README.md +63 -25
- requake-0.7/pyproject.toml +72 -0
- {requake-0.5 → requake-0.7}/requake/__init__.py +3 -4
- {requake-0.5 → requake-0.7}/requake/_version.py +4 -4
- {requake-0.5 → requake-0.7}/requake/catalog/__init__.py +6 -1
- {requake-0.5 → requake-0.7}/requake/catalog/catalog.py +18 -19
- requake-0.7/requake/catalog/print_catalog.py +49 -0
- {requake-0.5 → requake-0.7}/requake/catalog/read_catalog.py +13 -17
- {requake-0.5 → requake-0.7}/requake/catalog/read_catalog_from_csv.py +48 -42
- {requake-0.5 → requake-0.7}/requake/catalog/read_catalog_from_fdsnws.py +9 -8
- {requake-0.5 → requake-0.7}/requake/catalog/read_catalog_from_quakeml.py +2 -2
- requake-0.7/requake/config/__init__.py +17 -0
- {requake-0.5 → requake-0.7}/requake/config/config.py +3 -1
- requake-0.7/requake/config/configobj/LICENSE +40 -0
- {requake-0.5 → requake-0.7}/requake/config/configobj/__init__.py +27 -32
- {requake-0.5 → requake-0.7}/requake/config/configobj/validate.py +28 -44
- {requake-0.5 → requake-0.7}/requake/config/configspec.conf +37 -14
- requake-0.7/requake/config/generic_printer.py +65 -0
- requake-0.7/requake/config/parse_arguments.py +525 -0
- {requake-0.5 → requake-0.7}/requake/config/rq_setup.py +143 -68
- {requake-0.5 → requake-0.7}/requake/config/utils.py +93 -33
- {requake-0.5 → requake-0.7}/requake/families/__init__.py +7 -1
- {requake-0.5 → requake-0.7}/requake/families/build_families.py +11 -72
- {requake-0.5 → requake-0.7}/requake/families/build_templates.py +15 -20
- {requake-0.5 → requake-0.7}/requake/families/families.py +157 -47
- {requake-0.5 → requake-0.7}/requake/families/flag_family.py +3 -5
- requake-0.7/requake/families/pairs.py +143 -0
- requake-0.7/requake/families/print_families.py +120 -0
- requake-0.7/requake/families/print_pairs.py +75 -0
- requake-0.7/requake/formulas/__init__.py +16 -0
- requake-0.7/requake/formulas/conversion.py +98 -0
- requake-0.5/requake/formulas/slip.py → requake-0.7/requake/formulas/moment.py +13 -22
- requake-0.7/requake/formulas/slip.py +103 -0
- {requake-0.5 → requake-0.7}/requake/main.py +35 -29
- {requake-0.5 → requake-0.7}/requake/plot/__init__.py +2 -2
- {requake-0.5 → requake-0.7}/requake/plot/cached_tiler.py +1 -1
- requake-0.7/requake/plot/colormaps.py +53 -0
- {requake-0.5 → requake-0.7}/requake/plot/map_families.py +32 -22
- {requake-0.5 → requake-0.7}/requake/plot/map_tiles.py +19 -1
- requake-0.7/requake/plot/plot_cumulative.py +177 -0
- {requake-0.5 → requake-0.7}/requake/plot/plot_families.py +58 -41
- {requake-0.5 → requake-0.7}/requake/plot/plot_pair.py +44 -31
- {requake-0.5 → requake-0.7}/requake/plot/plot_timespans.py +32 -23
- requake-0.7/requake/plot/plot_utils.py +397 -0
- {requake-0.5 → requake-0.7}/requake/scan/__init__.py +1 -1
- requake-0.7/requake/scan/scan_catalog.py +134 -0
- {requake-0.5 → requake-0.7}/requake/scan/scan_templates.py +60 -48
- requake-0.7/requake/waveforms/__init__.py +24 -0
- {requake-0.5 → requake-0.7}/requake/waveforms/arrivals.py +1 -1
- requake-0.7/requake/waveforms/station_metadata.py +251 -0
- requake-0.7/requake/waveforms/waveform_pair.py +168 -0
- requake-0.7/requake/waveforms/waveforms.py +460 -0
- {requake-0.5 → requake-0.7}/requake.egg-info/PKG-INFO +78 -36
- {requake-0.5 → requake-0.7}/requake.egg-info/SOURCES.txt +10 -3
- {requake-0.5 → requake-0.7}/requake.egg-info/requires.txt +2 -0
- requake-0.7/setup.cfg +4 -0
- requake-0.7/setup.py +28 -0
- requake-0.5/CHANGELOG.md +0 -69
- requake-0.5/requake/config/__init__.py +0 -12
- requake-0.5/requake/config/parse_arguments.py +0 -309
- requake-0.5/requake/families/print_families.py +0 -104
- requake-0.5/requake/formulas/__init__.py +0 -11
- requake-0.5/requake/formulas/conversion.py +0 -43
- requake-0.5/requake/plot/plot_slip.py +0 -119
- requake-0.5/requake/plot/plot_utils.py +0 -148
- requake-0.5/requake/scan/scan_catalog.py +0 -100
- requake-0.5/requake/waveforms/__init__.py +0 -11
- requake-0.5/requake/waveforms/station_metadata.py +0 -97
- requake-0.5/requake/waveforms/waveforms.py +0 -303
- requake-0.5/setup.cfg +0 -12
- requake-0.5/setup.py +0 -54
- requake-0.5/versioneer.py +0 -1855
- {requake-0.5 → requake-0.7}/CONTRIBUTORS.txt +0 -0
- {requake-0.5 → requake-0.7}/LICENSE.txt +0 -0
- {requake-0.5 → requake-0.7}/MANIFEST.in +0 -0
- {requake-0.5 → requake-0.7}/requake/config/configobj/_version.py +0 -0
- {requake-0.5 → requake-0.7}/requake.egg-info/dependency_links.txt +0 -0
- {requake-0.5 → requake-0.7}/requake.egg-info/entry_points.txt +0 -0
- {requake-0.5 → requake-0.7}/requake.egg-info/top_level.txt +0 -0
requake-0.7/CHANGELOG.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Requake Changelog
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021-2026 Claudio Satriano <satriano@ipgp.fr>
|
|
4
|
+
|
|
5
|
+
## unreleased
|
|
6
|
+
|
|
7
|
+
## v0.7 - 2026-04-10
|
|
8
|
+
|
|
9
|
+
This version requires at least Python 3.9.
|
|
10
|
+
|
|
11
|
+
Note: you might want to run `requake update_config` to update your config file
|
|
12
|
+
to the latest version.
|
|
13
|
+
|
|
14
|
+
- New option `--shorterthan` to select families with a duration shorter than a
|
|
15
|
+
given value. For this option and for `--longerthan` it is now possible to
|
|
16
|
+
specify the duration in seconds, minutes, hours, or months, in addition to
|
|
17
|
+
days and years.
|
|
18
|
+
- New option `--colorby` for many plot commands, to color families by a
|
|
19
|
+
specific attribute other than the family number
|
|
20
|
+
- New option `--colormap` for many plot commands, to select a colormap
|
|
21
|
+
for coloring families. If not specified, a default colormap for each
|
|
22
|
+
attribute specified in `--colorby` is used.
|
|
23
|
+
- New option `--range` to manually specify the range of values for the color
|
|
24
|
+
scale
|
|
25
|
+
- New option `--force` for commands that write files, to overwrite existing
|
|
26
|
+
files without asking
|
|
27
|
+
- New option `--freq_band` for trace plotting commands, to override the
|
|
28
|
+
frequency band specified in the config file
|
|
29
|
+
- New option `--detailed` for `print_families`, to print more detailed
|
|
30
|
+
information about each family, including the list of events
|
|
31
|
+
- New option `--output` to save plots to files instead of showing them on
|
|
32
|
+
screen
|
|
33
|
+
- Config option `waveform_data_path` renamed to `sds_data_path`
|
|
34
|
+
- New config option `event_data_path` to specify the path to a local directory
|
|
35
|
+
with waveform files organized per event
|
|
36
|
+
- Add missing `street` map style for `map_families`
|
|
37
|
+
- Catalog scan: when more than a station is provided and the closest station
|
|
38
|
+
to the event is not available, use the next closest station instead.
|
|
39
|
+
- Catalog scan: accurate estimation of the number of event pairs to process
|
|
40
|
+
- Initial support for plotting families found with template scan
|
|
41
|
+
- Improved reading of CSV catalog files:
|
|
42
|
+
- avoid duplicated column guessing
|
|
43
|
+
- ensure that prefectly matching column field names are correctly guessed
|
|
44
|
+
- warn if an invalid time format is found
|
|
45
|
+
- Colored terminal output for warnings and errors
|
|
46
|
+
|
|
47
|
+
## v0.6 - 2024-05-04
|
|
48
|
+
|
|
49
|
+
Note: you might want to run `requake update_config` to update your config file
|
|
50
|
+
to the latest version.
|
|
51
|
+
|
|
52
|
+
- Verb `plot_slip` renamed to `plot_cumulative`. This new verb has new options
|
|
53
|
+
to plot cumulative slip, cumulative moment, and cumulative number of events,
|
|
54
|
+
and to make the plot logarithmic.
|
|
55
|
+
- New verb `print_catalog`: print the event catalog to screen
|
|
56
|
+
- New verb `print_pairs`: print the event pairs to screen
|
|
57
|
+
- `print_families`: also print minimum and maximum family magnitudes
|
|
58
|
+
- Additional models to convert magnitude to slip. Currently supported models
|
|
59
|
+
are: Nadeau and Johnson (1998), Beeler et al. (2001), Eshelby (1957).
|
|
60
|
+
Model selection is done using the `mag_to_slip_model` config parameter.
|
|
61
|
+
- New verb `update_config`: update an existing config file to the latest
|
|
62
|
+
version
|
|
63
|
+
|
|
64
|
+
## v0.5 - 2024-04-23
|
|
65
|
+
|
|
66
|
+
- New config options: `station_metadata_path` and `waveform_data_path` to
|
|
67
|
+
read station metadata and waveform data from files. Supports any metadata
|
|
68
|
+
format supported by ObsPy and SDS (SeisComp Data Structure) waveform
|
|
69
|
+
archives.
|
|
70
|
+
- Filter catalog files on reading using the criteria in the config file
|
|
71
|
+
- Improved time axes in `plot_timespans` and `plot_slip` for short time
|
|
72
|
+
intervals
|
|
73
|
+
- `print_families`: autoset duration units based on the average duration
|
|
74
|
+
- `plot_timespans`: default sorting changed to `family_number`
|
|
75
|
+
|
|
76
|
+
## v0.4.1 - 2024-03-11
|
|
77
|
+
|
|
78
|
+
- Bugfix: `requake` executable was not installed
|
|
79
|
+
|
|
80
|
+
## v0.4 - 2024-03-11
|
|
81
|
+
|
|
82
|
+
- Package license changed to GPL-3.0 or later
|
|
83
|
+
- New verb: `read_catalog`: read a catalog from web services or from a file
|
|
84
|
+
(FDSN text, QuakeML, or CSV)
|
|
85
|
+
- New verb: `scan_templates`: scan a continuous waveform stream using one
|
|
86
|
+
or more templates. Templates can be from families or from file
|
|
87
|
+
- New verb: `print_families`: print families to screen
|
|
88
|
+
- New verb: `plot_slip`: plot cumulative slip for one or more families
|
|
89
|
+
- New config parameter: `clustering_algorithm` to select the algorithm
|
|
90
|
+
for building event families. Currently supported options are `shared` and
|
|
91
|
+
`UPGMA` (default: `shared`)
|
|
92
|
+
- `family_numbers` argument is no more mandatory (default: `all`)
|
|
93
|
+
- argument added to `map_families` and `plot_timespans`
|
|
94
|
+
- Config parameter `trace_average_from_normalized_traces` renamed to
|
|
95
|
+
`normalize_traces_before_averaging`
|
|
96
|
+
- `plot_timespans`: possibility to sort by `family_number`
|
|
97
|
+
- New options for `map_families` to select a map style and a zoom level for the
|
|
98
|
+
map tiles
|
|
99
|
+
- New option `--minevents` (`-m`) for many verbs, to select families with a
|
|
100
|
+
minimum number of events
|
|
101
|
+
- Support for events with no location
|
|
102
|
+
- Bugfix: `plot_timespans`: correctly plot x time axis when sort by `time`
|
|
103
|
+
|
|
104
|
+
## v0.3 - 2021-11-08
|
|
105
|
+
|
|
106
|
+
- New verb: `build_templates`
|
|
107
|
+
- New option: `cc_allow_negative` to search for anticorrelated events
|
|
108
|
+
- New progressbar, using `tqdm`
|
|
109
|
+
- `plot_families`:
|
|
110
|
+
- show average trace
|
|
111
|
+
- pan/zoom traces using arrows
|
|
112
|
+
- show/hide theoretical arrivals using 'a' (command line option removed)
|
|
113
|
+
- show event origin time as y-label
|
|
114
|
+
- show trace mean CC
|
|
115
|
+
- also shift theoretical arrivals when aligning traces
|
|
116
|
+
- Bugfix: last family was not read from family file
|
|
117
|
+
|
|
118
|
+
## v0.2 - 2021-09-24
|
|
119
|
+
|
|
120
|
+
Mostly a bugfix release with a slightly improved trace plotting.
|
|
121
|
+
|
|
122
|
+
- Bugfix: `scan_catalog` could not run properly due to missing variable
|
|
123
|
+
- Bugfix: detrend traces before filtering
|
|
124
|
+
- `plot_families`: print number of events and station-event distance
|
|
125
|
+
|
|
126
|
+
## v0.1 - 2021-09-16
|
|
127
|
+
|
|
128
|
+
- Initial release, not yet feature complete
|
|
@@ -1,39 +1,43 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: requake
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7
|
|
4
4
|
Summary: Repeating earthquakes search and analysis
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Author-email: satriano@ipgp.fr
|
|
8
|
-
License: GNU General Public License v3 or later (GPLv3+)
|
|
5
|
+
Author-email: Claudio Satriano <satriano@ipgp.fr>
|
|
6
|
+
License-Expression: GPL-3.0-or-later
|
|
9
7
|
Project-URL: Homepage, https://requake.seismicsource.org
|
|
10
8
|
Project-URL: Source, https://github.com/SeismicSource/requake
|
|
11
9
|
Project-URL: Documentation, https://requake.readthedocs.io
|
|
12
|
-
Platform: OS
|
|
10
|
+
Platform: OS
|
|
11
|
+
Platform: Independent
|
|
13
12
|
Classifier: Development Status :: 4 - Beta
|
|
14
13
|
Classifier: Environment :: Console
|
|
15
14
|
Classifier: Intended Audience :: Science/Research
|
|
16
|
-
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
17
15
|
Classifier: Operating System :: OS Independent
|
|
18
16
|
Classifier: Programming Language :: Python
|
|
19
17
|
Classifier: Programming Language :: Python :: 3
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
22
18
|
Classifier: Programming Language :: Python :: 3.9
|
|
23
19
|
Classifier: Programming Language :: Python :: 3.10
|
|
24
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
25
24
|
Classifier: Topic :: Scientific/Engineering
|
|
26
25
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
27
|
-
Requires-Python:
|
|
26
|
+
Requires-Python: >=3.9
|
|
28
27
|
Description-Content-Type: text/markdown
|
|
29
28
|
License-File: LICENSE.txt
|
|
30
29
|
Requires-Dist: scipy>=1.5.0
|
|
31
30
|
Requires-Dist: obspy>=1.2.0
|
|
31
|
+
Requires-Dist: cartopy
|
|
32
32
|
Requires-Dist: argcomplete
|
|
33
33
|
Requires-Dist: tqdm
|
|
34
34
|
Requires-Dist: tabulate
|
|
35
|
+
Requires-Dist: pygments
|
|
36
|
+
Dynamic: description
|
|
37
|
+
Dynamic: description-content-type
|
|
38
|
+
Dynamic: license-file
|
|
35
39
|
|
|
36
|
-
<img src="imgs/Requake_logo.svg" width="400">
|
|
40
|
+
<img src="https://cdn.jsdelivr.net/gh/SeismicSource/requake@5f302920590ec696d958625433fbad76c9820f5c/imgs/Requake_logo.svg" width="400">
|
|
37
41
|
|
|
38
42
|
# Requake
|
|
39
43
|
|
|
@@ -45,7 +49,7 @@ Repeating earthquakes search and analysis.
|
|
|
45
49
|
[![docs-badge]][docs-link]
|
|
46
50
|
[![DOI-badge]][DOI-link]
|
|
47
51
|
|
|
48
|
-
Copyright (c) 2021-
|
|
52
|
+
Copyright (c) 2021-2026 Claudio Satriano <satriano@ipgp.fr>
|
|
49
53
|
|
|
50
54
|
## Description
|
|
51
55
|
|
|
@@ -55,18 +59,43 @@ It can either scan an existing earthquake catalog to search for similar events,
|
|
|
55
59
|
or perform template matching on a continuous waveform stream.
|
|
56
60
|
|
|
57
61
|
Catalogs and waveforms can be read from local files or downloaded using
|
|
58
|
-
standard [FDSN web services]
|
|
62
|
+
standard [FDSN web services].
|
|
59
63
|
|
|
60
|
-
Requake is written in Python and uses [ObsPy]
|
|
64
|
+
Requake is written in Python and uses [ObsPy] as backend.
|
|
61
65
|
|
|
62
66
|
## Installation
|
|
63
67
|
|
|
64
68
|
### Installing the latest release
|
|
65
69
|
|
|
66
|
-
#### Using
|
|
70
|
+
#### Using Anaconda
|
|
67
71
|
|
|
68
|
-
The
|
|
69
|
-
|
|
72
|
+
The following command will automatically create an [Anaconda] environment
|
|
73
|
+
named `requake`, install the required packages and install the latest
|
|
74
|
+
version of SourceSpec via `pip`:
|
|
75
|
+
|
|
76
|
+
conda env create --file https://raw.githubusercontent.com/SeismicSource/requake/main/requake_conda_env.yml
|
|
77
|
+
|
|
78
|
+
If you want a different name for your environment, use:
|
|
79
|
+
|
|
80
|
+
conda env create -n YOUR_ENV_NAME --file https://raw.githubusercontent.com/SeismicSource/requake/main/requake_conda_env.yml
|
|
81
|
+
|
|
82
|
+
Activate the environment with:
|
|
83
|
+
|
|
84
|
+
conda activate requake
|
|
85
|
+
|
|
86
|
+
(or `conda activate YOUR_ENV_NAME`)
|
|
87
|
+
|
|
88
|
+
To keep Requake updated run the following command from within the environment:
|
|
89
|
+
|
|
90
|
+
pip install --upgrade requake
|
|
91
|
+
|
|
92
|
+
Or, to switch to a development snapshot, run:
|
|
93
|
+
|
|
94
|
+
pip install git+https://github.com/SeismicSource/requake.git
|
|
95
|
+
|
|
96
|
+
#### Using pip and PyPI
|
|
97
|
+
|
|
98
|
+
The latest release of Requake is available on the [Python Package Index].
|
|
70
99
|
|
|
71
100
|
You can install it easily through `pip`:
|
|
72
101
|
|
|
@@ -75,9 +104,8 @@ You can install it easily through `pip`:
|
|
|
75
104
|
### Installing a development snapshot
|
|
76
105
|
|
|
77
106
|
If you need a recent feature that is not in the latest release (see the
|
|
78
|
-
`unreleased` section in [CHANGELOG]
|
|
79
|
-
recent development snapshot from the
|
|
80
|
-
[Requake GitHub repository](https://github.com/SeismicSource/requake).
|
|
107
|
+
`unreleased` section in [CHANGELOG][changelog-link]), you want to use the more
|
|
108
|
+
recent development snapshot from the [Requake GitHub repository].
|
|
81
109
|
|
|
82
110
|
#### Using pip
|
|
83
111
|
|
|
@@ -122,35 +150,41 @@ To get help, use:
|
|
|
122
150
|
|
|
123
151
|
requake -h
|
|
124
152
|
|
|
125
|
-
|
|
126
|
-
Currently supported verbs are:
|
|
153
|
+
Different commands are available:
|
|
127
154
|
|
|
128
155
|
sample_config write sample config file to current directory and exit
|
|
156
|
+
update_config update an existing config file to the latest version
|
|
129
157
|
read_catalog read an event catalog from web services or from a file
|
|
158
|
+
print_catalog print the event catalog to screen
|
|
130
159
|
scan_catalog scan an existing catalog for earthquake pairs
|
|
160
|
+
print_pairs print pairs to screen
|
|
131
161
|
plot_pair plot traces for a given event pair
|
|
132
162
|
build_families build families of repeating earthquakes from a catalog
|
|
133
163
|
of pairs
|
|
134
164
|
print_families print families to screen
|
|
135
165
|
plot_families plot traces for one ore more event families
|
|
136
166
|
plot_timespans plot family timespans
|
|
137
|
-
|
|
167
|
+
plot_cumulative cumulative plot for one or more families
|
|
138
168
|
map_families plot families on a map
|
|
139
169
|
flag_family flag a family of repeating earthquakes as valid or not
|
|
140
|
-
valid.
|
|
141
|
-
when first created
|
|
170
|
+
valid.
|
|
142
171
|
build_templates build waveform templates for one or more event
|
|
143
172
|
families
|
|
144
173
|
scan_templates scan a continuous waveform stream using one or more
|
|
145
174
|
templates
|
|
146
175
|
|
|
147
|
-
Certain
|
|
176
|
+
Certain commands (e.g., `plot_pair`) require further arguments (use, e.g.,
|
|
148
177
|
`requake plot_pair -h` to get help).
|
|
149
178
|
|
|
150
|
-
Requake supports command line tab completion for arguments, thanks
|
|
151
|
-
[argcomplete]
|
|
152
|
-
To enable command line tab completion
|
|
153
|
-
|
|
179
|
+
Requake supports command line tab completion for commands and arguments, thanks
|
|
180
|
+
to [argcomplete].
|
|
181
|
+
To enable command line tab completion run:
|
|
182
|
+
|
|
183
|
+
activate-global-python-argcomplete
|
|
184
|
+
|
|
185
|
+
(This is a one-time command that needs to be run only once).
|
|
186
|
+
|
|
187
|
+
Or, alternatively, add the following line to your `.bashrc` or `.zshrc`:
|
|
154
188
|
|
|
155
189
|
eval "$(register-python-argcomplete requake)"
|
|
156
190
|
|
|
@@ -192,8 +226,8 @@ parallelization will be implemented.
|
|
|
192
226
|
|
|
193
227
|
If you used Requake for a scientific paper, please cite it as:
|
|
194
228
|
|
|
195
|
-
> Satriano, C. (
|
|
196
|
-
> [doi: 10.5281/ZENODO.
|
|
229
|
+
> Satriano, C. (2026). Requake: Repeating earthquakes search and analysis (X.Y).
|
|
230
|
+
> [doi: 10.5281/ZENODO.10832203]
|
|
197
231
|
|
|
198
232
|
Please replace `X.Y` with the Requake version number you used.
|
|
199
233
|
|
|
@@ -214,9 +248,17 @@ You can also cite the following abstract presented at the
|
|
|
214
248
|
[docs-link]: https://requake.readthedocs.io/en/latest/?badge=latest
|
|
215
249
|
[changelog-badge]: https://img.shields.io/badge/Changelog-136CB6.svg
|
|
216
250
|
[changelog-link]: https://github.com/SeismicSource/requake/blob/main/CHANGELOG.md
|
|
217
|
-
[DOI-badge]: https://zenodo.org/badge/DOI/10.5281/zenodo.
|
|
218
|
-
[DOI-link]: https://doi.org/10.5281/zenodo.
|
|
251
|
+
[DOI-badge]: https://zenodo.org/badge/DOI/10.5281/zenodo.10832203.svg
|
|
252
|
+
[DOI-link]: https://doi.org/10.5281/zenodo.10832203
|
|
253
|
+
[Requake GitHub repository]: https://github.com/SeismicSource/requake
|
|
254
|
+
|
|
255
|
+
<!-- External links -->
|
|
256
|
+
[FDSN web services]: https://www.fdsn.org/webservices/
|
|
257
|
+
[ObsPy]: https://obspy.org
|
|
258
|
+
[Anaconda]: https://www.anaconda.com/download
|
|
259
|
+
[Python Package Index]: https://pypi.org/project/requake/
|
|
260
|
+
[argcomplete]: https://kislyuk.github.io/argcomplete/
|
|
219
261
|
|
|
220
262
|
<!-- References -->
|
|
221
|
-
[doi: 10.5281/ZENODO.
|
|
263
|
+
[doi: 10.5281/ZENODO.10832203]: https://doi.org/10.5281/ZENODO.10832203
|
|
222
264
|
[bibcode: 2021AGUFM.T25A0167S]: https://ui.adsabs.harvard.edu/abs/2021AGUFM.T25A0167S
|
|
@@ -10,7 +10,7 @@ Repeating earthquakes search and analysis.
|
|
|
10
10
|
[![docs-badge]][docs-link]
|
|
11
11
|
[![DOI-badge]][DOI-link]
|
|
12
12
|
|
|
13
|
-
Copyright (c) 2021-
|
|
13
|
+
Copyright (c) 2021-2026 Claudio Satriano <satriano@ipgp.fr>
|
|
14
14
|
|
|
15
15
|
## Description
|
|
16
16
|
|
|
@@ -20,18 +20,43 @@ It can either scan an existing earthquake catalog to search for similar events,
|
|
|
20
20
|
or perform template matching on a continuous waveform stream.
|
|
21
21
|
|
|
22
22
|
Catalogs and waveforms can be read from local files or downloaded using
|
|
23
|
-
standard [FDSN web services]
|
|
23
|
+
standard [FDSN web services].
|
|
24
24
|
|
|
25
|
-
Requake is written in Python and uses [ObsPy]
|
|
25
|
+
Requake is written in Python and uses [ObsPy] as backend.
|
|
26
26
|
|
|
27
27
|
## Installation
|
|
28
28
|
|
|
29
29
|
### Installing the latest release
|
|
30
30
|
|
|
31
|
-
#### Using
|
|
31
|
+
#### Using Anaconda
|
|
32
32
|
|
|
33
|
-
The
|
|
34
|
-
|
|
33
|
+
The following command will automatically create an [Anaconda] environment
|
|
34
|
+
named `requake`, install the required packages and install the latest
|
|
35
|
+
version of SourceSpec via `pip`:
|
|
36
|
+
|
|
37
|
+
conda env create --file https://raw.githubusercontent.com/SeismicSource/requake/main/requake_conda_env.yml
|
|
38
|
+
|
|
39
|
+
If you want a different name for your environment, use:
|
|
40
|
+
|
|
41
|
+
conda env create -n YOUR_ENV_NAME --file https://raw.githubusercontent.com/SeismicSource/requake/main/requake_conda_env.yml
|
|
42
|
+
|
|
43
|
+
Activate the environment with:
|
|
44
|
+
|
|
45
|
+
conda activate requake
|
|
46
|
+
|
|
47
|
+
(or `conda activate YOUR_ENV_NAME`)
|
|
48
|
+
|
|
49
|
+
To keep Requake updated run the following command from within the environment:
|
|
50
|
+
|
|
51
|
+
pip install --upgrade requake
|
|
52
|
+
|
|
53
|
+
Or, to switch to a development snapshot, run:
|
|
54
|
+
|
|
55
|
+
pip install git+https://github.com/SeismicSource/requake.git
|
|
56
|
+
|
|
57
|
+
#### Using pip and PyPI
|
|
58
|
+
|
|
59
|
+
The latest release of Requake is available on the [Python Package Index].
|
|
35
60
|
|
|
36
61
|
You can install it easily through `pip`:
|
|
37
62
|
|
|
@@ -40,9 +65,8 @@ You can install it easily through `pip`:
|
|
|
40
65
|
### Installing a development snapshot
|
|
41
66
|
|
|
42
67
|
If you need a recent feature that is not in the latest release (see the
|
|
43
|
-
`unreleased` section in [CHANGELOG]
|
|
44
|
-
recent development snapshot from the
|
|
45
|
-
[Requake GitHub repository](https://github.com/SeismicSource/requake).
|
|
68
|
+
`unreleased` section in [CHANGELOG][changelog-link]), you want to use the more
|
|
69
|
+
recent development snapshot from the [Requake GitHub repository].
|
|
46
70
|
|
|
47
71
|
#### Using pip
|
|
48
72
|
|
|
@@ -87,35 +111,41 @@ To get help, use:
|
|
|
87
111
|
|
|
88
112
|
requake -h
|
|
89
113
|
|
|
90
|
-
|
|
91
|
-
Currently supported verbs are:
|
|
114
|
+
Different commands are available:
|
|
92
115
|
|
|
93
116
|
sample_config write sample config file to current directory and exit
|
|
117
|
+
update_config update an existing config file to the latest version
|
|
94
118
|
read_catalog read an event catalog from web services or from a file
|
|
119
|
+
print_catalog print the event catalog to screen
|
|
95
120
|
scan_catalog scan an existing catalog for earthquake pairs
|
|
121
|
+
print_pairs print pairs to screen
|
|
96
122
|
plot_pair plot traces for a given event pair
|
|
97
123
|
build_families build families of repeating earthquakes from a catalog
|
|
98
124
|
of pairs
|
|
99
125
|
print_families print families to screen
|
|
100
126
|
plot_families plot traces for one ore more event families
|
|
101
127
|
plot_timespans plot family timespans
|
|
102
|
-
|
|
128
|
+
plot_cumulative cumulative plot for one or more families
|
|
103
129
|
map_families plot families on a map
|
|
104
130
|
flag_family flag a family of repeating earthquakes as valid or not
|
|
105
|
-
valid.
|
|
106
|
-
when first created
|
|
131
|
+
valid.
|
|
107
132
|
build_templates build waveform templates for one or more event
|
|
108
133
|
families
|
|
109
134
|
scan_templates scan a continuous waveform stream using one or more
|
|
110
135
|
templates
|
|
111
136
|
|
|
112
|
-
Certain
|
|
137
|
+
Certain commands (e.g., `plot_pair`) require further arguments (use, e.g.,
|
|
113
138
|
`requake plot_pair -h` to get help).
|
|
114
139
|
|
|
115
|
-
Requake supports command line tab completion for arguments, thanks
|
|
116
|
-
[argcomplete]
|
|
117
|
-
To enable command line tab completion
|
|
118
|
-
|
|
140
|
+
Requake supports command line tab completion for commands and arguments, thanks
|
|
141
|
+
to [argcomplete].
|
|
142
|
+
To enable command line tab completion run:
|
|
143
|
+
|
|
144
|
+
activate-global-python-argcomplete
|
|
145
|
+
|
|
146
|
+
(This is a one-time command that needs to be run only once).
|
|
147
|
+
|
|
148
|
+
Or, alternatively, add the following line to your `.bashrc` or `.zshrc`:
|
|
119
149
|
|
|
120
150
|
eval "$(register-python-argcomplete requake)"
|
|
121
151
|
|
|
@@ -157,8 +187,8 @@ parallelization will be implemented.
|
|
|
157
187
|
|
|
158
188
|
If you used Requake for a scientific paper, please cite it as:
|
|
159
189
|
|
|
160
|
-
> Satriano, C. (
|
|
161
|
-
> [doi: 10.5281/ZENODO.
|
|
190
|
+
> Satriano, C. (2026). Requake: Repeating earthquakes search and analysis (X.Y).
|
|
191
|
+
> [doi: 10.5281/ZENODO.10832203]
|
|
162
192
|
|
|
163
193
|
Please replace `X.Y` with the Requake version number you used.
|
|
164
194
|
|
|
@@ -179,9 +209,17 @@ You can also cite the following abstract presented at the
|
|
|
179
209
|
[docs-link]: https://requake.readthedocs.io/en/latest/?badge=latest
|
|
180
210
|
[changelog-badge]: https://img.shields.io/badge/Changelog-136CB6.svg
|
|
181
211
|
[changelog-link]: https://github.com/SeismicSource/requake/blob/main/CHANGELOG.md
|
|
182
|
-
[DOI-badge]: https://zenodo.org/badge/DOI/10.5281/zenodo.
|
|
183
|
-
[DOI-link]: https://doi.org/10.5281/zenodo.
|
|
212
|
+
[DOI-badge]: https://zenodo.org/badge/DOI/10.5281/zenodo.10832203.svg
|
|
213
|
+
[DOI-link]: https://doi.org/10.5281/zenodo.10832203
|
|
214
|
+
[Requake GitHub repository]: https://github.com/SeismicSource/requake
|
|
215
|
+
|
|
216
|
+
<!-- External links -->
|
|
217
|
+
[FDSN web services]: https://www.fdsn.org/webservices/
|
|
218
|
+
[ObsPy]: https://obspy.org
|
|
219
|
+
[Anaconda]: https://www.anaconda.com/download
|
|
220
|
+
[Python Package Index]: https://pypi.org/project/requake/
|
|
221
|
+
[argcomplete]: https://kislyuk.github.io/argcomplete/
|
|
184
222
|
|
|
185
223
|
<!-- References -->
|
|
186
|
-
[doi: 10.5281/ZENODO.
|
|
187
|
-
[bibcode: 2021AGUFM.T25A0167S]: https://ui.adsabs.harvard.edu/abs/2021AGUFM.T25A0167S
|
|
224
|
+
[doi: 10.5281/ZENODO.10832203]: https://doi.org/10.5281/ZENODO.10832203
|
|
225
|
+
[bibcode: 2021AGUFM.T25A0167S]: https://ui.adsabs.harvard.edu/abs/2021AGUFM.T25A0167S
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77", "versioneer[toml]"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "requake"
|
|
7
|
+
dynamic = ["version", "readme"]
|
|
8
|
+
authors = [
|
|
9
|
+
{ name = "Claudio Satriano", email = "satriano@ipgp.fr" },
|
|
10
|
+
]
|
|
11
|
+
description = "Repeating earthquakes search and analysis"
|
|
12
|
+
license = "GPL-3.0-or-later"
|
|
13
|
+
license-files = ["LICENSE.txt"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 4 - Beta",
|
|
16
|
+
"Environment :: Console",
|
|
17
|
+
"Intended Audience :: Science/Research",
|
|
18
|
+
"Operating System :: OS Independent",
|
|
19
|
+
"Programming Language :: Python",
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"Programming Language :: Python :: 3.9",
|
|
22
|
+
"Programming Language :: Python :: 3.10",
|
|
23
|
+
"Programming Language :: Python :: 3.11",
|
|
24
|
+
"Programming Language :: Python :: 3.12",
|
|
25
|
+
"Programming Language :: Python :: 3.13",
|
|
26
|
+
"Programming Language :: Python :: 3.14",
|
|
27
|
+
"Topic :: Scientific/Engineering",
|
|
28
|
+
"Topic :: Scientific/Engineering :: Physics",
|
|
29
|
+
]
|
|
30
|
+
requires-python = ">=3.9"
|
|
31
|
+
dependencies = [
|
|
32
|
+
"scipy>=1.5.0",
|
|
33
|
+
"obspy>=1.2.0",
|
|
34
|
+
"cartopy",
|
|
35
|
+
"argcomplete",
|
|
36
|
+
"tqdm",
|
|
37
|
+
"tabulate",
|
|
38
|
+
"pygments",
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
[project.urls]
|
|
42
|
+
Homepage = "https://requake.seismicsource.org"
|
|
43
|
+
Source = "https://github.com/SeismicSource/requake"
|
|
44
|
+
Documentation = "https://requake.readthedocs.io"
|
|
45
|
+
|
|
46
|
+
[project.scripts]
|
|
47
|
+
requake = "requake.main:main"
|
|
48
|
+
|
|
49
|
+
[tool.setuptools]
|
|
50
|
+
include-package-data = true
|
|
51
|
+
platforms = [
|
|
52
|
+
"OS",
|
|
53
|
+
"Independent",
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
[tool.setuptools.packages.find]
|
|
57
|
+
include = ["requake", "requake.*"]
|
|
58
|
+
|
|
59
|
+
[tool.setuptools.package-data]
|
|
60
|
+
"*" = ["LICENSE"]
|
|
61
|
+
"requake.config" = ["*.conf"]
|
|
62
|
+
|
|
63
|
+
[tool.setuptools.dynamic]
|
|
64
|
+
version = {attr = "requake.__version__"}
|
|
65
|
+
|
|
66
|
+
[tool.versioneer]
|
|
67
|
+
VCS = "git"
|
|
68
|
+
style = "pep440"
|
|
69
|
+
versionfile_source = "requake/_version.py"
|
|
70
|
+
versionfile_build = "requake/_version.py"
|
|
71
|
+
tag_prefix = "v"
|
|
72
|
+
parentdir_prefix = "requake-"
|
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
Initialize requake package.
|
|
5
5
|
|
|
6
6
|
:copyright:
|
|
7
|
-
2021-
|
|
7
|
+
2021-2026 Claudio Satriano <satriano@ipgp.fr>
|
|
8
8
|
:license:
|
|
9
9
|
GNU General Public License v3.0 or later
|
|
10
10
|
(https://www.gnu.org/licenses/gpl-3.0-standalone.html)
|
|
11
11
|
"""
|
|
12
|
-
from .
|
|
13
|
-
__version__ = get_versions()['version']
|
|
14
|
-
del get_versions
|
|
12
|
+
from . import _version
|
|
13
|
+
__version__ = _version.get_versions()['version']
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
# This file was generated by 'versioneer.py' (0.
|
|
2
|
+
# This file was generated by 'versioneer.py' (0.29) from
|
|
3
3
|
# revision-control system data, or from the parent directory name of an
|
|
4
4
|
# unpacked source archive. Distribution tarballs contain a pre-generated copy
|
|
5
5
|
# of this file.
|
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "
|
|
11
|
+
"date": "2026-04-10T18:38:40+0200",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "0.
|
|
14
|
+
"full-revisionid": "5f302920590ec696d958625433fbad76c9820f5c",
|
|
15
|
+
"version": "0.7"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
Functions and data structures for managing earthquake catalogs.
|
|
5
5
|
|
|
6
6
|
:copyright:
|
|
7
|
-
2021-
|
|
7
|
+
2021-2026 Claudio Satriano <satriano@ipgp.fr>
|
|
8
8
|
:license:
|
|
9
9
|
GNU General Public License v3.0 or later
|
|
10
10
|
(https://www.gnu.org/licenses/gpl-3.0-standalone.html)
|
|
11
11
|
"""
|
|
12
|
+
from .catalog import ( # noqa
|
|
13
|
+
RequakeCatalog, RequakeEvent, generate_evid,
|
|
14
|
+
fix_non_locatable_events, read_stored_catalog
|
|
15
|
+
)
|
|
12
16
|
from .read_catalog import read_catalog # noqa
|
|
17
|
+
from .print_catalog import print_catalog # noqa
|