eqcctpro 0.4.6__py3-none-any.whl → 0.4.7__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.6
3
+ Version: 0.4.7
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,56 @@ 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
- ## Installation
46
- To install `EQCCTPro`, there are two installation approaches:
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
- It is **highly** recommended you pull the `EQCCTPro` folder to gain access to the sample waveform data and code to help you get acquainted with **EQCCTPro** and its capabilites.
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
- However, if you wish to install **only the EQCCTPro Python package and use it out of the box** (method 1), run:
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: Install EQCCTPro**
59
+ Run the following command:
53
60
  ```sh
54
61
  pip install eqcctpro
55
62
  ```
56
- **You must have at least Python verison 3.10.14 for the application to run**.
57
63
 
58
- You can install Python 3.10.14 using either traditional methods or do the following commands:
64
+ ### **Step 2: Ensure Python 3.10.14 is Installed**
65
+ EQCCTPro **requires Python 3.10.14 or higher**. If you don’t have it installed, you can create a conda environment with the correct Python version:
66
+
59
67
  ```sh
60
68
  [skevofilaxc] conda create --name yourenvironemntname python=3.10.14 -y
61
69
  [skevofilaxc] conda activate yourenvironemntname
62
70
  [skevofilaxc] python3 --version
63
- Python 3.10.14 (it should return)
71
+ ```
72
+ Expected output:
73
+ ```
74
+ Python 3.10.14
75
+ ```
76
+
77
+ Now, reinstall EQCCTPro:
78
+ ```sh
64
79
  [skevofilaxc] pip install eqcctpro
65
80
  ```
66
- You will have access to **EQCCTPro** and its capabilities, however, it is **highly** recommended you pull the `EQCCTPro` folder to gain access to the sample waveform data to help you get acquainted with **EQCCTPro's** functionality.
67
- You can pull the `EQCCTPro` folder by running the following commands:
81
+
82
+ ### **Step 3 (Optional): Pull the EQCCTPro Folder**
83
+ Although not required, **it is highly recommended** to pull the `EQCCTPro` folder to gain access to sample waveform data.
68
84
 
69
85
  ```sh
70
86
  [skevofilaxc] mkdir my_work_directory
@@ -74,62 +90,94 @@ You can pull the `EQCCTPro` folder by running the following commands:
74
90
  [skevofilaxc] git sparse-checkout set eqcctpro
75
91
  ```
76
92
 
77
- If you wish to install **EQCCTPro** with the sample waveform data as **originally intended for first-time users**, and or are having trouble installing Python 3.10.14, there has been a precreated conda environment under the `EQCCTPro` folder that will install the necessary packages
78
- and dependencies needed for **EQCCTPro** to run (method 2).
93
+ ---
94
+
95
+ ## **Method 2: Install EQCCTPro with Sample Data (Recommended for First-Time Users)**
96
+ This method sets up EQCCTPro **with a pre-created conda environment and sample waveform data**.
79
97
 
80
- You can pull the `EQCCTPro` folder, create the precreated conda environment, and activate it as originally intended for first-time users using the following commands:
98
+ ### **Step 1: Clone the EQCCTPro Repository**
81
99
  ```sh
82
100
  [skevofilaxc] mkdir my_work_directory
83
101
  [skevofilaxc] cd my_work_directory
84
102
  [skevofilaxc] git clone --depth 1 --filter=tree:0 https://github.com/ut-beg-texnet/eqcct.git --sparse
85
103
  [skevofilaxc] cd eqcct
86
104
  [skevofilaxc] git sparse-checkout set eqcctpro
105
+ ```
106
+
107
+ ### **Step 2: Create and Activate the Conda Environment**
108
+ A **pre-configured conda environment** is included in the repository to handle all dependencies.
109
+
110
+ ```sh
87
111
  [skevofilaxc] conda env create -f environment.yml
88
112
  [skevofilaxc] conda activate eqcctpro
89
113
  ```
90
114
 
91
- After creating and activating the conda environment, install the **EQCCTPro Python package** using the following command:
115
+ ### **Step 3: Install EQCCTPro**
116
+ After activating the environment, install the EQCCTPro package:
92
117
  ```sh
93
118
  [skevofilaxc] pip install eqcctpro
94
119
  ```
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
120
 
97
- ## Creating a Test Workspace Environment
98
- It's highly suggested to create a workspace environment to first understand how eqcctpro works.
99
- Sample seismic waveform data from 50 TexNet stations have provided in the eqcctpro repository under the `sample_1_minute_data.zip` file.
121
+ This will install any remaining dependencies needed for **EQCCTPro**.
122
+
123
+ ---
124
+
125
+ ## **More Information**
126
+ For additional details and package updates, visit the **EQCCTPro PyPI page**:
127
+ 🔗 [EQCCTPro on PyPI](https://pypi.org/project/eqcctpro/)
128
+
129
+ ---
100
130
 
101
- After downloading the .zip file, either individually or through the git pull methods, run the following command to unzip it:
131
+ ### **Using Sample Waveform Data**
132
+ To understand how **EQCCTPro** works, it is **highly recommended** to use provided sample seismic waveform data as the data source when testing the package.
133
+
134
+ Sample seismic waveform data from 50 TexNet stations have provided in the repository under `sample_1_minute_data.zip`.
135
+
136
+ ### **Step 1: Unzip the Sample Wavefrom Data**
137
+ After downloading the `.zip` file through the GitHub methods above, run:
102
138
  ```sh
103
139
  [skevofilaxc] unzip sample_1_minute_data.zip
104
140
  ```
105
- It's contents will look like:
141
+ ### **Step 2: Check and Understand the Directory Structure**
142
+ The extracted data will contain multiple station directories:
106
143
  ```sh
107
144
  [skevofilaxc sample_1_minute_data]$ ls
108
145
  AT01 CF01 DG05 EF54 EF76 HBVL MB09 MB21 MID02 ODSA PB16 PB25 PB35 PB52 PH02 SM03 WB11
109
146
  BB01 CT02 DG09 EF63 FOAK4 HNDO MB13 MB25 MID03 PB04 PB17 PB26 PB39 PB54 PL01 SMWD WB12
110
147
  BP01 DB02 EF02 EF75 FW13 MB06 MB19 MID01 MO01 PB11 PB18 PB34 PB42 PECS SM02 WB06
111
148
  ```
112
- Where each subdirectory is named after station code, and is made up of mSEED files of different poses:
149
+ Each subdirectory contains **mSEED** files of different waveform components:
113
150
  ```sh
114
151
  [skevofilaxc PB35]$ ls
115
152
  TX.PB35.00.HH1__20241215T115800Z__20241215T120100Z.mseed TX.PB35.00.HHZ__20241215T115800Z__20241215T120100Z.mseed
116
153
  TX.PB35.00.HH2__20241215T115800Z__20241215T120100Z.mseed
117
154
  ```
118
- EQCCT only needs one pose for the detection to occur, however more poses allow for better detection of the direction of the P and S waves.
155
+ 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.
156
+
157
+ You have successfully installed EQCCTPro and set up the required sample waveform dataset for testing.
119
158
 
120
- You are now set up for testing.
121
- ## Usage
159
+ ---
160
+ ### **Using EQCCTPro**
122
161
  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)
162
+ 1. **Process mSEED data from singular or multiple seismic stations using either CPUs or GPUs**
163
+ 2. **Evaluate your system to identify the optimal parallelization configurations needed to get the minimum runtime performance out of your system**
164
+ 3. **Identify and return back the optimal parallelization configurations for both specific and general-use usecases for both CPU (a) and GPU applications (b)**
126
165
 
127
- These capabilities are achieved by the following functions in order respect to the above descriptions:
128
- **EQCCTMSeedRunner (1)**, **EvaluateSystem (2)**, **OptimalCPUConfigurationFinder (3a)**, **OptimalGPUConfigurationFinder (3b)**.
129
166
 
130
- ### Processing mSEED data using EQCCTPro (EQCCTMSeedRunner)
131
- To use EQCCTPro to process mSEED from various seismic stations, use the **EQCCTMSeedRunner** class.
132
- **EQCCTMSeedRunner** enables users to process multiple mSEED from a given input directory. The input directory is made up of station directories such as:
167
+ These capabilities are achieved using the following core functions:
168
+
169
+ - **EQCCTMSeedRunner** (for processing mSEED data)
170
+
171
+ - **EvaluateSystem** (for system evaluation)
172
+
173
+ - **OptimalCPUConfigurationFinder** (for CPU configuration optimization)
174
+
175
+ - **OptimalGPUConfigurationFinder** (for GPU configuration optimization)
176
+
177
+ ---
178
+ ### **Processing mSEED data using EQCCTPro (EQCCTMSeedRunner)**
179
+ To process mSEED from various seismic stations, use the **EQCCTMSeedRunner** class.
180
+ **EQCCTMSeedRunner** enables users to process multiple mSEED from a given input directory, which consists of station directories formatted as follows:
133
181
 
134
182
  ```sh
135
183
  [skevofilaxc sample_1_minute_data]$ ls
@@ -137,7 +185,7 @@ AT01 CF01 DG05 EF54 EF76 HBVL MB09 MB21 MID02 ODSA PB16 PB25 PB35
137
185
  BB01 CT02 DG09 EF63 FOAK4 HNDO MB13 MB25 MID03 PB04 PB17 PB26 PB39 PB54 PL01 SMWD WB12
138
186
  BP01 DB02 EF02 EF75 FW13 MB06 MB19 MID01 MO01 PB11 PB18 PB34 PB42 PECS SM02 WB06
139
187
  ```
140
- Where each subdirectory is named after station code. If you wish to use create your own input directory with custom information, **please follow the above naming convention.** Otherwise, EQCCTPro will **not** work.
188
+ 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
189
 
142
190
  Within each subdirectory, such as PB35, it is made up of mSEED files of different poses (EX. N, E, Z):
143
191
  ```sh
@@ -231,7 +279,10 @@ eqcct_runner.run_eqcctpro()
231
279
  - List that defines which specific CPU cores that sched_setaffinity will allocate for executing the current EQCCTPro process.
232
280
  - Allows for specific allocation and limitation of CPUs for a given EQCCTPro process
233
281
  - "I want this program to run only on these specific cores."
234
- ### Evaluating Your Systems Runtime Performance Capabilites
282
+
283
+ ---
284
+
285
+ ### **Evaluating Your Systems Runtime Performance Capabilites**
235
286
  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
287
 
237
288
  ```python
@@ -306,7 +357,8 @@ The following input parameters need to be configurated for **EvaluateSystem** to
306
357
  - List of GPU IDs on your computer you want to use if `mode = 'gpu'`
307
358
  - Non-existing GPU IDs will cause the code to exit
308
359
 
309
- ### Finding Optimal CPU/GPU Configurations
360
+ ---
361
+ ### **Finding Optimal CPU/GPU Configurations**
310
362
  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
363
 
312
364
  ```python
@@ -362,12 +414,12 @@ For **OptimalGPUConfigurationFinder.find_optimal_for()**, the function requires
362
414
  - **`station_count (int)`**
363
415
  - The number of station(s) you want to use in your application
364
416
 
365
- ## Configuration
417
+ ## **Configuration**
366
418
  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
419
 
368
- ## License
420
+ ## **License**
369
421
  EQCCTPro is provided under an open-source license. See LICENSE for details.
370
422
 
371
- ## Contact
423
+ ## **Contact**
372
424
  For inquiries or issues, please contact constantinos.skevofilax@austin.utexas.edu or victor.salles@beg.utexas.edu.
373
425
 
@@ -0,0 +1,5 @@
1
+ eqcctpro/__init__.py,sha256=JK27ZrLxVDNHsdorp7UAislI8haH23rZhnEivVM7hgA,141
2
+ eqcctpro-0.4.7.dist-info/METADATA,sha256=Qjzli5w8XTma5poz8X8lYOoTE9eSGwAhcJrBLqIusHE,21567
3
+ eqcctpro-0.4.7.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
4
+ eqcctpro-0.4.7.dist-info/top_level.txt,sha256=u0cu2JdF7Z0ob7y4XdUCLoSGp_xOudAYz-fbsQ-B1yY,9
5
+ eqcctpro-0.4.7.dist-info/RECORD,,
@@ -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,,