utdquake 0.1__tar.gz → 0.2__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.
Files changed (42) hide show
  1. {utdquake-0.1/utdquake.egg-info → utdquake-0.2}/PKG-INFO +81 -8
  2. utdquake-0.2/README.md +185 -0
  3. {utdquake-0.1 → utdquake-0.2}/utdquake/__init__.py +4 -2
  4. utdquake-0.2/utdquake/bank/bank.py +724 -0
  5. utdquake-0.2/utdquake/bank/utils.py +2187 -0
  6. utdquake-0.2/utdquake/core/config.py +258 -0
  7. {utdquake-0.1 → utdquake-0.2}/utdquake/core/data.py +19 -11
  8. {utdquake-0.1 → utdquake-0.2}/utdquake/core/load.py +22 -9
  9. utdquake-0.2/utdquake/core/patch.py +195 -0
  10. utdquake-0.2/utdquake/core/utdquake.py +1118 -0
  11. utdquake-0.2/utdquake/core/utils.py +41 -0
  12. utdquake-0.2/utdquake/qc/__init__.py +0 -0
  13. utdquake-0.2/utdquake/qc/catalog.py +304 -0
  14. utdquake-0.2/utdquake/qc/config.py +239 -0
  15. utdquake-0.2/utdquake/qc/events.py +200 -0
  16. utdquake-0.2/utdquake/qc/log.py +56 -0
  17. utdquake-0.2/utdquake/qc/picks.py +153 -0
  18. utdquake-0.2/utdquake/qc/travel_time.py +1310 -0
  19. utdquake-0.2/utdquake/utils/__init__.py +0 -0
  20. utdquake-0.2/utdquake/utils/cache.py +48 -0
  21. utdquake-0.2/utdquake/utils/plot.py +3388 -0
  22. {utdquake-0.1 → utdquake-0.2}/utdquake/utils/utils.py +39 -8
  23. utdquake-0.2/utdquake/writers/__init__.py +0 -0
  24. utdquake-0.2/utdquake/writers/manifest.py +122 -0
  25. utdquake-0.2/utdquake/writers/parquet.py +322 -0
  26. utdquake-0.2/utdquake/writers/schema.py +386 -0
  27. {utdquake-0.1 → utdquake-0.2/utdquake.egg-info}/PKG-INFO +81 -8
  28. utdquake-0.2/utdquake.egg-info/SOURCES.txt +34 -0
  29. {utdquake-0.1 → utdquake-0.2}/utdquake.egg-info/requires.txt +1 -0
  30. utdquake-0.1/README.md +0 -113
  31. utdquake-0.1/test/test_utdq.py +0 -47
  32. utdquake-0.1/utdquake/core/config.py +0 -95
  33. utdquake-0.1/utdquake/core/utdquake.py +0 -353
  34. utdquake-0.1/utdquake/utils/plot.py +0 -1654
  35. utdquake-0.1/utdquake.egg-info/SOURCES.txt +0 -18
  36. {utdquake-0.1 → utdquake-0.2}/LICENSE +0 -0
  37. {utdquake-0.1 → utdquake-0.2}/setup.cfg +0 -0
  38. {utdquake-0.1 → utdquake-0.2}/setup.py +0 -0
  39. {utdquake-0.1/utdquake/core → utdquake-0.2/utdquake/bank}/__init__.py +0 -0
  40. {utdquake-0.1/utdquake/utils → utdquake-0.2/utdquake/core}/__init__.py +0 -0
  41. {utdquake-0.1 → utdquake-0.2}/utdquake.egg-info/dependency_links.txt +0 -0
  42. {utdquake-0.1 → utdquake-0.2}/utdquake.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: utdquake
3
- Version: 0.1
3
+ Version: 0.2
4
4
  Summary: University of Texas at Dallas Earthquake Dataset
5
5
  Home-page: https://github.com/ecastillot/UTDQuake
6
6
  Author: ecastillot (Emmanuel Castillo)
@@ -22,6 +22,7 @@ Requires-Dist: pandas
22
22
  Requires-Dist: pyarrow
23
23
  Requires-Dist: numpy
24
24
  Requires-Dist: matplotlib
25
+ Requires-Dist: scikit-learn
25
26
  Requires-Dist: seaborn
26
27
  Requires-Dist: packaging
27
28
  Requires-Dist: scipy
@@ -38,19 +39,32 @@ Dynamic: requires-python
38
39
  Dynamic: summary
39
40
 
40
41
 
41
- [![LinkedIn](https://img.shields.io/badge/LinkedIn-Follow-blue?logo=linkedin)](https://www.linkedin.com/in/ecastillot/) ![GitHub followers](https://img.shields.io/github/followers/ecastillot?style=social) ![GitHub stars](https://img.shields.io/github/stars/ecastillot/UTDQuake?style=social) ![GitHub forks](https://img.shields.io/github/forks/ecastillot/UTDQuake?style=social)
42
+ [![PyPI](https://img.shields.io/pypi/v/utdquake?color=orange&label=PyPI&style=flat)](https://pypi.org/project/utdquake/) ![GitHub stars](https://img.shields.io/github/stars/ecastillot/UTDQuake?style=social) ![GitHub forks](https://img.shields.io/github/forks/ecastillot/UTDQuake?style=social) ![GitHub followers](https://img.shields.io/github/followers/ecastillot?style=social) [![LinkedIn](https://img.shields.io/badge/LinkedIn-Follow-blue?logo=linkedin)](https://www.linkedin.com/in/ecastillot/)
42
43
 
43
44
 
45
+ <img src="docs/source/_static/logo/utdquake_logo_ok.png" alt="seismonitor" width="150">
44
46
 
47
+ <!--
45
48
  # <span style="background:#E87500; color:white; padding:2px 6px; border-radius:6px;">UTD</span>Quake
49
+ -->
46
50
 
47
- University of Texas at Dallas Earthquake Dataset
51
+ **University of Texas at Dallas Earthquake Dataset**
48
52
 
49
- ## Authors
50
- - Emmanuel Castillo (emmanuel.castillotaborda@utdallas.edu)
51
- - Nadine Ushakov (nadine.igonin@utdallas.edu)
52
- - Marine Denolle (mdenolle@uw.edu)
53
+ A global earthquake dataset constructed from high-quality source and receiver metadata, including associated seismic phase picks across diverse station geometries.
53
54
 
55
+ ![utdquake](figures/utdquake_overview.png)
56
+
57
+ # Documentation
58
+
59
+ Full documentation for UTDQuake is available here:
60
+
61
+ [![Read the Docs](https://img.shields.io/badge/Docs-Read%20the%20Docs-blue?style=for-the-badge&logo=read-the-docs)](https://utdquake.readthedocs.io/en/latest/index.html)
62
+
63
+ You will see:
64
+
65
+ - QuickStart guide to get you up and running
66
+ - Detailed API reference
67
+ - Tutorials and example workflows
54
68
 
55
69
  # Dataset
56
70
 
@@ -58,6 +72,12 @@ The dataset is available on Hugging Face: **UTDQuake**
58
72
 
59
73
  [![Hugging Face Dataset](https://img.shields.io/badge/HuggingFace-Dataset-yellow?style=for-the-badge&logo=huggingface&logoColor=black)](https://huggingface.co/datasets/ecastillot/UTDQuake)
60
74
 
75
+
76
+ ## Installation ([utdquake](https://pypi.org/project/utdquake))
77
+ ```bash
78
+ pip install utdquake
79
+ ```
80
+
61
81
  ## Why this dataset matters?
62
82
 
63
83
  Curated datasets of earthquake **events and phase picks** are essential for modern seismology, especially in the AI era. While waveform datasets have advanced earthquake detection, multistation picks provide complementary information crucial for **phase association** and **earthquake location**.
@@ -68,10 +88,11 @@ This dataset offers structured event catalogs, station metadata, and phase picks
68
88
 
69
89
  | Directory | Format | Description |
70
90
  |------------|---------------|-------------|
71
- | `bank/` | `*.zip` | ObsPlus `EventBank` datasets, one per network. Can be read directly using [ObsPlus EventBank](https://niosh-mining.github.io/obsplus/versions/latest/api/obsplus.bank.eventbank.html). |
91
+ | `network/` | `*.parquet` | Network metadata. |
72
92
  | `events/` | `*.parquet` | Earthquake event catalogs per network. |
73
93
  | `stations/` | `*.parquet` | Station metadata per network. |
74
94
  | `picks/` | `*.parquet` | Seismic phase pick datasets per network. |
95
+ | `bank/` | `*.zip` | ObsPlus `EventBank` datasets, one per network. Can be read directly using [ObsPlus EventBank](https://niosh-mining.github.io/obsplus/versions/latest/api/obsplus.bank.eventbank.html). |
75
96
 
76
97
  For details on the contents and schema of each dataset, please refer to the [Hugging Face dataset viewer](https://huggingface.co/datasets/ecastillot/UTDQuake/viewer).
77
98
 
@@ -150,3 +171,55 @@ Thanks to the [UT Dallas HPC team](https://hpc.utdallas.edu/) for providing the
150
171
  We also thank the seismology and AI communities for their work in earthquake research, and Hugging Face for hosting and sharing open datasets.
151
172
 
152
173
  We welcome feedback and contributions!
174
+
175
+ # Authors
176
+
177
+ <table>
178
+ <tr>
179
+ <td valign="middle">
180
+ <strong>Emmanuel Castillo</strong><br>
181
+ University of Texas at Dallas<br>
182
+ <a href="https://www.linkedin.com/in/ecastillot/" target="_blank">
183
+ <img src="https://img.shields.io/badge/LinkedIn-Follow-blue?logo=linkedin&logoColor=white&style=flat" height="20">
184
+ </a>
185
+ <a href="mailto:castillo.280997@gmail.com" target="_blank">
186
+ <img src="https://img.shields.io/badge/Email-Send-red?logo=gmail&logoColor=white&style=flat" height="20">
187
+ </a>
188
+ </td>
189
+ <td width="100" align="center">
190
+ <img src="docs/source/_static/photos/emmanuel.jpg" alt="Emmanuel" width="80" height="80" style="border-radius:50%; object-fit:cover;">
191
+ </td>
192
+ </tr>
193
+ <tr>
194
+ <td valign="middle">
195
+ <strong>Nadine Ushakov</strong><br>
196
+ University of Texas at Dallas<br>
197
+ <a href="https://www.linkedin.com/in/nadineushakov/" target="_blank">
198
+ <img src="https://img.shields.io/badge/LinkedIn-Follow-blue?logo=linkedin&logoColor=white&style=flat" height="20">
199
+ </a>
200
+ <a href="mailto:nadine.igonin@utdallas.edu" target="_blank">
201
+ <img src="https://img.shields.io/badge/Email-Send-red?logo=gmail&logoColor=white&style=flat" height="20">
202
+ </a>
203
+ </td>
204
+ <td width="100" align="center">
205
+ <img src="docs/source/_static/photos/nadine.jpg" alt="Nadine" width="80" height="80" style="border-radius:50%; object-fit:cover;">
206
+ </td>
207
+ </tr>
208
+ <tr>
209
+ <td valign="middle">
210
+ <strong>Marine Denolle</strong><br>
211
+ University of Washington<br>
212
+ <a href="https://www.linkedin.com/in/marine-denolle-b528144b/" target="_blank">
213
+ <img src="https://img.shields.io/badge/LinkedIn-Follow-blue?logo=linkedin&logoColor=white&style=flat" height="20">
214
+ </a>
215
+ <a href="mailto:mdenolle@uw.edu" target="_blank">
216
+ <img src="https://img.shields.io/badge/Email-Send-red?logo=gmail&logoColor=white&style=flat" height="20">
217
+ </a>
218
+ </td>
219
+ <td width="100" align="center">
220
+ <img src="docs/source/_static/photos/marine.jpg" alt="Marine" width="80" height="80" style="border-radius:50%; object-fit:cover;">
221
+ </td>
222
+ </tr>
223
+ </table>
224
+
225
+
utdquake-0.2/README.md ADDED
@@ -0,0 +1,185 @@
1
+
2
+ [![PyPI](https://img.shields.io/pypi/v/utdquake?color=orange&label=PyPI&style=flat)](https://pypi.org/project/utdquake/) ![GitHub stars](https://img.shields.io/github/stars/ecastillot/UTDQuake?style=social) ![GitHub forks](https://img.shields.io/github/forks/ecastillot/UTDQuake?style=social) ![GitHub followers](https://img.shields.io/github/followers/ecastillot?style=social) [![LinkedIn](https://img.shields.io/badge/LinkedIn-Follow-blue?logo=linkedin)](https://www.linkedin.com/in/ecastillot/)
3
+
4
+
5
+ <img src="docs/source/_static/logo/utdquake_logo_ok.png" alt="seismonitor" width="150">
6
+
7
+ <!--
8
+ # <span style="background:#E87500; color:white; padding:2px 6px; border-radius:6px;">UTD</span>Quake
9
+ -->
10
+
11
+ **University of Texas at Dallas Earthquake Dataset**
12
+
13
+ A global earthquake dataset constructed from high-quality source and receiver metadata, including associated seismic phase picks across diverse station geometries.
14
+
15
+ ![utdquake](figures/utdquake_overview.png)
16
+
17
+ # Documentation
18
+
19
+ Full documentation for UTDQuake is available here:
20
+
21
+ [![Read the Docs](https://img.shields.io/badge/Docs-Read%20the%20Docs-blue?style=for-the-badge&logo=read-the-docs)](https://utdquake.readthedocs.io/en/latest/index.html)
22
+
23
+ You will see:
24
+
25
+ - QuickStart guide to get you up and running
26
+ - Detailed API reference
27
+ - Tutorials and example workflows
28
+
29
+ # Dataset
30
+
31
+ The dataset is available on Hugging Face: **UTDQuake**
32
+
33
+ [![Hugging Face Dataset](https://img.shields.io/badge/HuggingFace-Dataset-yellow?style=for-the-badge&logo=huggingface&logoColor=black)](https://huggingface.co/datasets/ecastillot/UTDQuake)
34
+
35
+
36
+ ## Installation ([utdquake](https://pypi.org/project/utdquake))
37
+ ```bash
38
+ pip install utdquake
39
+ ```
40
+
41
+ ## Why this dataset matters?
42
+
43
+ Curated datasets of earthquake **events and phase picks** are essential for modern seismology, especially in the AI era. While waveform datasets have advanced earthquake detection, multistation picks provide complementary information crucial for **phase association** and **earthquake location**.
44
+
45
+ This dataset offers structured event catalogs, station metadata, and phase picks across networks, supporting reproducible research and the development of data-driven seismological methods.
46
+
47
+ ## What’s inside?
48
+
49
+ | Directory | Format | Description |
50
+ |------------|---------------|-------------|
51
+ | `network/` | `*.parquet` | Network metadata. |
52
+ | `events/` | `*.parquet` | Earthquake event catalogs per network. |
53
+ | `stations/` | `*.parquet` | Station metadata per network. |
54
+ | `picks/` | `*.parquet` | Seismic phase pick datasets per network. |
55
+ | `bank/` | `*.zip` | ObsPlus `EventBank` datasets, one per network. Can be read directly using [ObsPlus EventBank](https://niosh-mining.github.io/obsplus/versions/latest/api/obsplus.bank.eventbank.html). |
56
+
57
+ For details on the contents and schema of each dataset, please refer to the [Hugging Face dataset viewer](https://huggingface.co/datasets/ecastillot/UTDQuake/viewer).
58
+
59
+ To get started, see the [Quick Start](#quick-start) section below, or click **“Use this dataset”** on the Hugging Face dataset page for example loading code.
60
+
61
+
62
+ ## Quick start
63
+
64
+ ### Basic Access
65
+ ```python
66
+ import utdquake as utdq
67
+
68
+ # dataset overview
69
+ dataset = utdq.Dataset()
70
+ print(dataset)
71
+
72
+ # network level
73
+ network_data = dataset.networks
74
+ print(network_data)
75
+
76
+ dataset.plot_overview(savepath="utdquake.png")
77
+ ```
78
+
79
+ ### Network Data
80
+ ```python
81
+ # load network
82
+ network = dataset.get_network(name="tx")
83
+ print(network)
84
+
85
+ # events
86
+ events = network.events
87
+ print(events)
88
+
89
+ # stations
90
+ stations = network.stations
91
+ print(stations)
92
+
93
+ # picks
94
+ picks = network.picks
95
+ print(picks)
96
+ ```
97
+
98
+ ### Event Bank
99
+ Check [ObsPlus EventBank](https://niosh-mining.github.io/obsplus/versions/latest/api/obsplus.bank.eventbank.html) for more details.
100
+ ```python
101
+ # get event bank
102
+ ebank = network.bank #
103
+
104
+ # Example: Filter by event_id
105
+ ev_ids = events["event_id"].iloc[:5].tolist()
106
+ cat = ebank.get_events(event_id=ev_ids)
107
+ print(cat)
108
+
109
+ # Example 2: Other filter (check obsplus.EventBank for more details)
110
+ cat2 = ebank.get_events(minmagnitude=4.3)
111
+ print(cat2)
112
+ ```
113
+
114
+
115
+ ### Plot
116
+ ```python
117
+ # get Obspy Event
118
+ network = dataset.get_network(name="tx")
119
+ network.plot_overview(savepath="overview.png")
120
+ network.plot_uncertainty_boxplots(savepath="uncertainty_boxplots.png")
121
+ network.plot_station_location_uncertainty(savepath="station_location_uncertainty.png")
122
+ network.plot_stats(savepath="stats.png")
123
+ network.plot_pick_histograms(savepath="histograms.png")
124
+ network.plot_pick_stats(savepath="pick_stats.png")
125
+ ```
126
+
127
+ # Thanks
128
+
129
+ Thanks to the [UT Dallas HPC team](https://hpc.utdallas.edu/) for providing the computational resources for this dataset.
130
+
131
+ We also thank the seismology and AI communities for their work in earthquake research, and Hugging Face for hosting and sharing open datasets.
132
+
133
+ We welcome feedback and contributions!
134
+
135
+ # Authors
136
+
137
+ <table>
138
+ <tr>
139
+ <td valign="middle">
140
+ <strong>Emmanuel Castillo</strong><br>
141
+ University of Texas at Dallas<br>
142
+ <a href="https://www.linkedin.com/in/ecastillot/" target="_blank">
143
+ <img src="https://img.shields.io/badge/LinkedIn-Follow-blue?logo=linkedin&logoColor=white&style=flat" height="20">
144
+ </a>
145
+ <a href="mailto:castillo.280997@gmail.com" target="_blank">
146
+ <img src="https://img.shields.io/badge/Email-Send-red?logo=gmail&logoColor=white&style=flat" height="20">
147
+ </a>
148
+ </td>
149
+ <td width="100" align="center">
150
+ <img src="docs/source/_static/photos/emmanuel.jpg" alt="Emmanuel" width="80" height="80" style="border-radius:50%; object-fit:cover;">
151
+ </td>
152
+ </tr>
153
+ <tr>
154
+ <td valign="middle">
155
+ <strong>Nadine Ushakov</strong><br>
156
+ University of Texas at Dallas<br>
157
+ <a href="https://www.linkedin.com/in/nadineushakov/" target="_blank">
158
+ <img src="https://img.shields.io/badge/LinkedIn-Follow-blue?logo=linkedin&logoColor=white&style=flat" height="20">
159
+ </a>
160
+ <a href="mailto:nadine.igonin@utdallas.edu" target="_blank">
161
+ <img src="https://img.shields.io/badge/Email-Send-red?logo=gmail&logoColor=white&style=flat" height="20">
162
+ </a>
163
+ </td>
164
+ <td width="100" align="center">
165
+ <img src="docs/source/_static/photos/nadine.jpg" alt="Nadine" width="80" height="80" style="border-radius:50%; object-fit:cover;">
166
+ </td>
167
+ </tr>
168
+ <tr>
169
+ <td valign="middle">
170
+ <strong>Marine Denolle</strong><br>
171
+ University of Washington<br>
172
+ <a href="https://www.linkedin.com/in/marine-denolle-b528144b/" target="_blank">
173
+ <img src="https://img.shields.io/badge/LinkedIn-Follow-blue?logo=linkedin&logoColor=white&style=flat" height="20">
174
+ </a>
175
+ <a href="mailto:mdenolle@uw.edu" target="_blank">
176
+ <img src="https://img.shields.io/badge/Email-Send-red?logo=gmail&logoColor=white&style=flat" height="20">
177
+ </a>
178
+ </td>
179
+ <td width="100" align="center">
180
+ <img src="docs/source/_static/photos/marine.jpg" alt="Marine" width="80" height="80" style="border-radius:50%; object-fit:cover;">
181
+ </td>
182
+ </tr>
183
+ </table>
184
+
185
+
@@ -20,9 +20,11 @@ Usage
20
20
  >>> net.events.head()
21
21
 
22
22
  """
23
- __version__ = "0.1"
23
+ __version__ = "0.2"
24
24
 
25
25
  from .core.utdquake import Dataset, Network
26
26
  from .core.data import download_snapshot, load
27
+ from .core.patch import utdquake_obspy_patch
27
28
 
28
- __all__ = ["Dataset", "Network", "download_snapshot", "load"]
29
+ utdquake_obspy_patch()
30
+ __all__ = ["Dataset", "Network", "download_snapshot", "load"]