eqcctpro 0.4.6__py3-none-any.whl → 0.4.8__py3-none-any.whl
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.
Potentially problematic release.
This version of eqcctpro might be problematic. Click here for more details.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: eqcctpro
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.8
|
|
4
4
|
Summary: EQCCTPro: A powerful seismic event detection toolkit
|
|
5
5
|
Author-email: Constantinos Skevofilax <constantinos.skevofilax@austin.utexas.edu>, Victor Salles <victor.salles@beg.utexas.edu>
|
|
6
6
|
Project-URL: Homepage, https://pypi.org/project/eqcctpro/
|
|
@@ -31,40 +31,51 @@ Requires-Dist: absl-py==2.1.0
|
|
|
31
31
|
Requires-Dist: h5py==3.12.1
|
|
32
32
|
Requires-Dist: pynvml==12.0.0
|
|
33
33
|
|
|
34
|
-
# EQCCTPro: powerful seismic event detection toolkit
|
|
34
|
+
# **EQCCTPro: powerful seismic event detection toolkit**
|
|
35
35
|
|
|
36
|
-
EQCCTPro is a high-performace seismic event detection and processing framework that leverages EQCCT to process seismic data efficiently. It enables users to fully leverage the computational ability of their computing resources for maximum performance for simultaneous seismic waveform processing, achieving real-time performance by identifying and utilizing the optimal computational configurations for their hardware. More information about the development, capabilities, and real-world applications about EQCCTPro can be read about in our research publication here.
|
|
36
|
+
EQCCTPro is a high-performace seismic event detection and processing framework that leverages DL-pickers, like EQCCT, to process seismic data efficiently. It enables users to fully leverage the computational ability of their computing resources for maximum performance for simultaneous seismic waveform processing, achieving real-time performance by identifying and utilizing the optimal computational configurations for their hardware. More information about the development, capabilities, and real-world applications about EQCCTPro can be read about in our research publication here.
|
|
37
37
|
|
|
38
|
-
## Features
|
|
38
|
+
## **Features**
|
|
39
39
|
- Supports both CPU and GPU execution
|
|
40
40
|
- Configurable parallelism execution for optimized performance
|
|
41
41
|
- Includes tools for evaluating system performance for optimal usecase configurations
|
|
42
42
|
- Automatic selection of best-usecase configurations
|
|
43
43
|
- Efficient handling of large-scale seismic data
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
1. Install **EQCCTPro** out the box with no sample waveform data to test the application with (experts)
|
|
48
|
-
2. Install **EQCCTPro** with the sample waveform data as provided from the Github folder (first-time users)
|
|
45
|
+
# **Installation Guide**
|
|
46
|
+
There are **two installation methods** for EQCCTPro:
|
|
49
47
|
|
|
50
|
-
|
|
48
|
+
1. **Method 1: Install EQCCTPro out of the box** (for experienced users)
|
|
49
|
+
2. **Method 2: Install EQCCTPro with sample waveform data** (recommended for first-time users)
|
|
51
50
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
**
|
|
51
|
+
It is **highly recommended** that first-time users pull the `EQCCTPro` folder, which includes sample waveform data and code to help get acquainted with **EQCCTPro**.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## **Method 1: Install EQCCTPro (No Sample Data)**
|
|
56
|
+
This method installs only the EQCCTPro package **without** the sample waveform data.
|
|
57
|
+
|
|
58
|
+
### **Step 1: Create a Clean Conda Environment for the Install**
|
|
59
|
+
EQCCTPro **requires Python 3.10.14 or higher as well as minimum Tensorflow packages**. If you have a clean working environment, you can simply run `pip install eqcctpro`. However, if you have a nonclean environment, its highly recommended to create a new conda environment so that you can install the necessary packages safely with no issues. You can create a new conda environment with the correct Python version by using the following commands:
|
|
57
60
|
|
|
58
|
-
You can install Python 3.10.14 using either traditional methods or do the following commands:
|
|
59
61
|
```sh
|
|
60
62
|
[skevofilaxc] conda create --name yourenvironemntname python=3.10.14 -y
|
|
61
63
|
[skevofilaxc] conda activate yourenvironemntname
|
|
62
64
|
[skevofilaxc] python3 --version
|
|
63
|
-
|
|
65
|
+
```
|
|
66
|
+
Expected output:
|
|
67
|
+
```
|
|
68
|
+
Python 3.10.14
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
After activating your new conda environment, run the following command:
|
|
72
|
+
```sh
|
|
64
73
|
[skevofilaxc] pip install eqcctpro
|
|
65
74
|
```
|
|
66
|
-
You will have access to
|
|
67
|
-
|
|
75
|
+
You will have access to EQCCTPro and its functionality. However you will not have immediate access to the provided sample waveform data to use for testing. Youcan pull the waveform data either by downloading the .zip file from the repository or by following step 3.
|
|
76
|
+
|
|
77
|
+
### **Step 3 (Optional): Pull the EQCCTPro Folder**
|
|
78
|
+
Although not required, **it is highly recommended** to pull the `EQCCTPro` folder to gain access to sample waveform data for testing.
|
|
68
79
|
|
|
69
80
|
```sh
|
|
70
81
|
[skevofilaxc] mkdir my_work_directory
|
|
@@ -74,62 +85,94 @@ You can pull the `EQCCTPro` folder by running the following commands:
|
|
|
74
85
|
[skevofilaxc] git sparse-checkout set eqcctpro
|
|
75
86
|
```
|
|
76
87
|
|
|
77
|
-
|
|
78
|
-
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## **Method 2: Install EQCCTPro with Sample Data (Recommended for First-Time Users)**
|
|
91
|
+
This method sets up EQCCTPro **with a pre-created conda environment and sample waveform data**.
|
|
79
92
|
|
|
80
|
-
|
|
93
|
+
### **Step 1: Clone the EQCCTPro Repository**
|
|
81
94
|
```sh
|
|
82
95
|
[skevofilaxc] mkdir my_work_directory
|
|
83
96
|
[skevofilaxc] cd my_work_directory
|
|
84
97
|
[skevofilaxc] git clone --depth 1 --filter=tree:0 https://github.com/ut-beg-texnet/eqcct.git --sparse
|
|
85
98
|
[skevofilaxc] cd eqcct
|
|
86
99
|
[skevofilaxc] git sparse-checkout set eqcctpro
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### **Step 2: Create and Activate the Conda Environment**
|
|
103
|
+
A **pre-configured conda environment** is included in the repository to handle all dependencies.
|
|
104
|
+
|
|
105
|
+
```sh
|
|
87
106
|
[skevofilaxc] conda env create -f environment.yml
|
|
88
107
|
[skevofilaxc] conda activate eqcctpro
|
|
89
108
|
```
|
|
90
109
|
|
|
91
|
-
|
|
110
|
+
### **Step 3: Install EQCCTPro**
|
|
111
|
+
After activating the environment, install the EQCCTPro package:
|
|
92
112
|
```sh
|
|
93
113
|
[skevofilaxc] pip install eqcctpro
|
|
94
114
|
```
|
|
95
|
-
The pip package will install the remaining packages needed for **EQCCTPro** to work. More information on the eqcctpro pip package can be found at our PyPi project link here [(EQCCTPro)](https://pypi.org/project/eqcctpro/).
|
|
96
115
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
116
|
+
This will install any remaining dependencies needed for **EQCCTPro**.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## **More Information**
|
|
121
|
+
For additional details and package updates, visit the **EQCCTPro PyPI page**:
|
|
122
|
+
🔗 [EQCCTPro on PyPI](https://pypi.org/project/eqcctpro/)
|
|
123
|
+
|
|
124
|
+
---
|
|
100
125
|
|
|
101
|
-
|
|
126
|
+
### **Using Sample Waveform Data**
|
|
127
|
+
To understand how **EQCCTPro** works, it is **highly recommended** to use provided sample seismic waveform data as the data source when testing the package.
|
|
128
|
+
|
|
129
|
+
Sample seismic waveform data from 50 TexNet stations have provided in the repository under `sample_1_minute_data.zip`.
|
|
130
|
+
|
|
131
|
+
### **Step 1: Unzip the Sample Wavefrom Data**
|
|
132
|
+
After downloading the `.zip` file through the GitHub methods above, run:
|
|
102
133
|
```sh
|
|
103
134
|
[skevofilaxc] unzip sample_1_minute_data.zip
|
|
104
135
|
```
|
|
105
|
-
|
|
136
|
+
### **Step 2: Check and Understand the Directory Structure**
|
|
137
|
+
The extracted data will contain multiple station directories:
|
|
106
138
|
```sh
|
|
107
139
|
[skevofilaxc sample_1_minute_data]$ ls
|
|
108
140
|
AT01 CF01 DG05 EF54 EF76 HBVL MB09 MB21 MID02 ODSA PB16 PB25 PB35 PB52 PH02 SM03 WB11
|
|
109
141
|
BB01 CT02 DG09 EF63 FOAK4 HNDO MB13 MB25 MID03 PB04 PB17 PB26 PB39 PB54 PL01 SMWD WB12
|
|
110
142
|
BP01 DB02 EF02 EF75 FW13 MB06 MB19 MID01 MO01 PB11 PB18 PB34 PB42 PECS SM02 WB06
|
|
111
143
|
```
|
|
112
|
-
|
|
144
|
+
Each subdirectory contains **mSEED** files of different waveform components:
|
|
113
145
|
```sh
|
|
114
146
|
[skevofilaxc PB35]$ ls
|
|
115
147
|
TX.PB35.00.HH1__20241215T115800Z__20241215T120100Z.mseed TX.PB35.00.HHZ__20241215T115800Z__20241215T120100Z.mseed
|
|
116
148
|
TX.PB35.00.HH2__20241215T115800Z__20241215T120100Z.mseed
|
|
117
149
|
```
|
|
118
|
-
EQCCT
|
|
150
|
+
EQCCT (i.e., the ML model) requires at least one pose per station for detection, but using multiple poses enhances P and S wave directionality.
|
|
119
151
|
|
|
120
|
-
You
|
|
121
|
-
|
|
152
|
+
You have successfully installed EQCCTPro and set up the required sample waveform dataset for testing.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
### **Using EQCCTPro**
|
|
122
156
|
There are three main capabilities of EQCCTPro:
|
|
123
|
-
1. Process mSEED data from singular or multiple seismic stations using either CPUs or GPUs
|
|
124
|
-
2. Evaluate your system to identify the optimal parallelization configurations needed to get the minimum runtime performance out of your system
|
|
125
|
-
3. Identify and return back the optimal parallelization configurations for both specific and general-use usecases for both CPU (a) and GPU applications (b)
|
|
157
|
+
1. **Process mSEED data from singular or multiple seismic stations using either CPUs or GPUs**
|
|
158
|
+
2. **Evaluate your system to identify the optimal parallelization configurations needed to get the minimum runtime performance out of your system**
|
|
159
|
+
3. **Identify and return back the optimal parallelization configurations for both specific and general-use usecases for both CPU (a) and GPU applications (b)**
|
|
160
|
+
|
|
126
161
|
|
|
127
|
-
These capabilities are achieved
|
|
128
|
-
**EQCCTMSeedRunner (1)**, **EvaluateSystem (2)**, **OptimalCPUConfigurationFinder (3a)**, **OptimalGPUConfigurationFinder (3b)**.
|
|
162
|
+
These capabilities are achieved using the following core functions:
|
|
129
163
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
**
|
|
164
|
+
- **EQCCTMSeedRunner** (for processing mSEED data)
|
|
165
|
+
|
|
166
|
+
- **EvaluateSystem** (for system evaluation)
|
|
167
|
+
|
|
168
|
+
- **OptimalCPUConfigurationFinder** (for CPU configuration optimization)
|
|
169
|
+
|
|
170
|
+
- **OptimalGPUConfigurationFinder** (for GPU configuration optimization)
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
### **Processing mSEED data using EQCCTPro (EQCCTMSeedRunner)**
|
|
174
|
+
To process mSEED from various seismic stations, use the **EQCCTMSeedRunner** class.
|
|
175
|
+
**EQCCTMSeedRunner** enables users to process multiple mSEED from a given input directory, which consists of station directories formatted as follows:
|
|
133
176
|
|
|
134
177
|
```sh
|
|
135
178
|
[skevofilaxc sample_1_minute_data]$ ls
|
|
@@ -137,7 +180,7 @@ AT01 CF01 DG05 EF54 EF76 HBVL MB09 MB21 MID02 ODSA PB16 PB25 PB35
|
|
|
137
180
|
BB01 CT02 DG09 EF63 FOAK4 HNDO MB13 MB25 MID03 PB04 PB17 PB26 PB39 PB54 PL01 SMWD WB12
|
|
138
181
|
BP01 DB02 EF02 EF75 FW13 MB06 MB19 MID01 MO01 PB11 PB18 PB34 PB42 PECS SM02 WB06
|
|
139
182
|
```
|
|
140
|
-
Where each subdirectory is named after station code. If you wish to use create your own input directory with custom
|
|
183
|
+
Where each subdirectory is named after station code. If you wish to use create your own input directory with custom waveform mSEED files, **please follow the above naming convention.** Otherwise, EQCCTPro will **not** work.
|
|
141
184
|
|
|
142
185
|
Within each subdirectory, such as PB35, it is made up of mSEED files of different poses (EX. N, E, Z):
|
|
143
186
|
```sh
|
|
@@ -231,7 +274,10 @@ eqcct_runner.run_eqcctpro()
|
|
|
231
274
|
- List that defines which specific CPU cores that sched_setaffinity will allocate for executing the current EQCCTPro process.
|
|
232
275
|
- Allows for specific allocation and limitation of CPUs for a given EQCCTPro process
|
|
233
276
|
- "I want this program to run only on these specific cores."
|
|
234
|
-
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
### **Evaluating Your Systems Runtime Performance Capabilites**
|
|
235
281
|
To evaluate your system’s runtime performance capabilites for both your CPU(s) and GPU(s), the **EvaluateSystem** class allows you to autonomously evaluate your system:
|
|
236
282
|
|
|
237
283
|
```python
|
|
@@ -299,6 +345,17 @@ The following input parameters need to be configurated for **EvaluateSystem** to
|
|
|
299
345
|
- Allows for specific allocation and limitation of CPUs for a given EQCCTPro process
|
|
300
346
|
- "I want this program to run only on these specific cores."
|
|
301
347
|
- Must be at least 1 CPU if using GPUs (Ray needs CPUs to manage the Raylets (concurrent tasks), however the processing of the waveform is done on the GPU)
|
|
348
|
+
- **`starting_amount_of_stations (int)`: default = 1**
|
|
349
|
+
- For evaluating your system, you have the option to set a starting amount of stations you want to use in the test
|
|
350
|
+
- By default, the test will start using 1 station but now is configurable
|
|
351
|
+
- **`station_list_step_size (int)`: default = 1**
|
|
352
|
+
- You can set a step size for the station list that is generated
|
|
353
|
+
- For example if the stepsize is set to 10 and you start with 50 stations with a max of 100, then your list would be: [50, 60, 70, 80, 80, 100]
|
|
354
|
+
- Using 1 will use the default step size of 1-10, then step size of 5 up to station2use
|
|
355
|
+
- **`min_cpu_amount (int)`: default = 1**
|
|
356
|
+
- Is the minimum amount of CPUs you want to start your trials with
|
|
357
|
+
- By default, trials will start iterating with 1 CPU up to the maximum allocated
|
|
358
|
+
- Can now set a value as the starting point, such as 15 CPUs up to the maximum of for instance 25
|
|
302
359
|
- **`set_vram_mb (float)`**
|
|
303
360
|
- Value of the maximum amount of VRAM EQCCTPro can use
|
|
304
361
|
- Must be a real value that is based on your hardware's physical memory space, if it exceeds the space the code will break due to OutOfMemoryError
|
|
@@ -306,7 +363,9 @@ The following input parameters need to be configurated for **EvaluateSystem** to
|
|
|
306
363
|
- List of GPU IDs on your computer you want to use if `mode = 'gpu'`
|
|
307
364
|
- Non-existing GPU IDs will cause the code to exit
|
|
308
365
|
|
|
309
|
-
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
### **Finding Optimal CPU/GPU Configurations**
|
|
310
369
|
After running **EvalutateSystem**, you can use either the **OptimalCPUConfigurationFinder** or the **OptimalGPUConfigurationFinder** determine the best CPU or GPU configurations (respectively) for your specific usecase:
|
|
311
370
|
|
|
312
371
|
```python
|
|
@@ -362,12 +421,12 @@ For **OptimalGPUConfigurationFinder.find_optimal_for()**, the function requires
|
|
|
362
421
|
- **`station_count (int)`**
|
|
363
422
|
- The number of station(s) you want to use in your application
|
|
364
423
|
|
|
365
|
-
## Configuration
|
|
424
|
+
## **Configuration**
|
|
366
425
|
The `environment.yml` file specifies the dependencies required to run EQCCTPro. Ensure you have the correct versions installed by using the provided conda environment setup.
|
|
367
426
|
|
|
368
|
-
## License
|
|
427
|
+
## **License**
|
|
369
428
|
EQCCTPro is provided under an open-source license. See LICENSE for details.
|
|
370
429
|
|
|
371
|
-
## Contact
|
|
430
|
+
## **Contact**
|
|
372
431
|
For inquiries or issues, please contact constantinos.skevofilax@austin.utexas.edu or victor.salles@beg.utexas.edu.
|
|
373
432
|
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
eqcctpro/__init__.py,sha256=JK27ZrLxVDNHsdorp7UAislI8haH23rZhnEivVM7hgA,141
|
|
2
|
+
eqcctpro-0.4.8.dist-info/METADATA,sha256=LGJ-8Ybjlqz6JK9O_2zDj0XcV3AifWl1oSlSy52y6g0,23016
|
|
3
|
+
eqcctpro-0.4.8.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
|
4
|
+
eqcctpro-0.4.8.dist-info/top_level.txt,sha256=u0cu2JdF7Z0ob7y4XdUCLoSGp_xOudAYz-fbsQ-B1yY,9
|
|
5
|
+
eqcctpro-0.4.8.dist-info/RECORD,,
|
eqcctpro-0.4.6.dist-info/RECORD
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
eqcctpro/__init__.py,sha256=JK27ZrLxVDNHsdorp7UAislI8haH23rZhnEivVM7hgA,141
|
|
2
|
-
eqcctpro-0.4.6.dist-info/METADATA,sha256=fgPT7RLqvOJvQxZYgDnF8doCIg--4I8l4BwbeDW7sVU,21373
|
|
3
|
-
eqcctpro-0.4.6.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
|
4
|
-
eqcctpro-0.4.6.dist-info/top_level.txt,sha256=u0cu2JdF7Z0ob7y4XdUCLoSGp_xOudAYz-fbsQ-B1yY,9
|
|
5
|
-
eqcctpro-0.4.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|