eqcctpro 0.6.2__tar.gz → 0.6.4__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.

Potentially problematic release.


This version of eqcctpro might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eqcctpro
3
- Version: 0.6.2
3
+ Version: 0.6.4
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/
@@ -13,7 +13,6 @@ Requires-Dist: numpy==1.26.4
13
13
  Requires-Dist: pandas==2.2.3
14
14
  Requires-Dist: matplotlib==3.10.0
15
15
  Requires-Dist: obspy==1.4.1
16
- Requires-Dist: progress==1.6
17
16
  Requires-Dist: psutil==6.1.1
18
17
  Requires-Dist: ray==2.42.1
19
18
  Requires-Dist: schedule==1.2.2
@@ -72,7 +71,7 @@ After activating your new conda environment, run the following command:
72
71
  ```sh
73
72
  pip install eqcctpro
74
73
  ```
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.
74
+ 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. You can pull the waveform data either by downloading the .zip file from the repository or by following step 3.
76
75
 
77
76
  ### **Step 3 (Optional): Pull the EQCCTPro Folder**
78
77
  Although not required, **it is highly recommended** to pull the `EQCCTPro` folder to gain access to sample waveform data for testing.
@@ -107,18 +106,8 @@ conda env create -f environment.yml
107
106
  conda activate eqcctpro
108
107
  ```
109
108
 
110
- ### **Step 3: Install EQCCTPro**
111
- After activating the environment, install the EQCCTPro package:
112
- ```sh
113
- pip install eqcctpro
114
- ```
115
-
116
- This will install any remaining dependencies needed for **EQCCTPro**.
117
-
118
- ---
119
-
120
109
  ## **More Information**
121
- For additional details and package updates, visit the **EQCCTPro PyPI page**:
110
+ For additional package updates, continue to check either this repository or visit the **EQCCTPro PyPI page**:
122
111
  🔗 [EQCCTPro on PyPI](https://pypi.org/project/eqcctpro/)
123
112
 
124
113
  ---
@@ -166,7 +155,7 @@ There are three main capabilities of EQCCTPro:
166
155
 
167
156
  These capabilities are achieved using the following core functions:
168
157
 
169
- - **EQCCTMSeedRunner** (for processing mSEED data)
158
+ - **RunEQCCTPro** (for processing mSEED data)
170
159
 
171
160
  - **EvaluateSystem** (for system evaluation)
172
161
 
@@ -175,9 +164,9 @@ These capabilities are achieved using the following core functions:
175
164
  - **OptimalGPUConfigurationFinder** (for GPU configuration optimization)
176
165
 
177
166
  ---
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:
167
+ ### **Processing mSEED data using EQCCTPro (RunEQCCTPro)**
168
+ To process mSEED from various seismic stations, use the **RunEQCCTPro** class.
169
+ **RunEQCCTPro** enables users to process multiple mSEED from a given input directory, which consists of station directories formatted as follows:
181
170
 
182
171
  ```sh
183
172
  [skevofilaxc 230_stations_1_min_dt]$ ls
@@ -210,12 +199,12 @@ TX.PB35.00.HH2__20241215T115800Z__20241215T120100Z.mseed
210
199
  ```
211
200
  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.
212
201
 
213
- After setting up or utilizing the provided sample waveform directory, and install eqcctpro, import **EQCCTMseedRunner** as show below:
202
+ After setting up or utilizing the provided sample waveform directory, and install eqcctpro, import **RunEQCCTPro** as show below:
214
203
 
215
204
  ```python
216
- from eqcctpro import EQCCTMSeedRunner
205
+ from eqcctpro import RunEQCCTPro
217
206
 
218
- eqcct_runner = EQCCTMSeedRunner(
207
+ eqcct_runner = RunEQCCTPro(
219
208
  use_gpu=False,
220
209
  intra_threads=1,
221
210
  inter_threads=1,
@@ -232,7 +221,7 @@ eqcct_runner = EQCCTMSeedRunner(
232
221
  best_usecase_config=True,
233
222
  csv_dir='/path/to/csv',
234
223
  selected_gpus=[0],
235
- set_vram_mb=24750,
224
+ vram_mb=24750,
236
225
  specific_stations='AT01, BP01, DG05',
237
226
  start_time='2024-12-14 12:00:00',
238
227
  end_time='2024-12-15 12:00:00',
@@ -242,7 +231,7 @@ eqcct_runner = EQCCTMSeedRunner(
242
231
  eqcct_runner.run_eqcctpro()
243
232
  ```
244
233
 
245
- **EQCCTMseedRunner** has multiple input parameters that need to be configured and are defined below:
234
+ **RunEQCCTPro** has multiple input parameters that need to be configured and are defined below:
246
235
 
247
236
  - **`use_gpu (bool)`: True or False**
248
237
  - Tells Ray to use either the GPU(s) (True) or CPUs (False) on your computer to process the waveforms in the entire workflow
@@ -291,7 +280,7 @@ eqcct_runner.run_eqcctpro()
291
280
  - **`selected_gpus (list)`: default = None**
292
281
  - List of GPU IDs on your computer you want to use if `use_gpu = True`
293
282
  - None existing GPU IDs will cause the code to exit
294
- - **`set_vram_mb (float)`**
283
+ - **`vram_mb (float)`**
295
284
  - Value of the maximum amount of VRAM EQCCTPro can use
296
285
  - 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**
297
286
  - **`specific_stations (str)`: default = None**
@@ -324,28 +313,6 @@ eqcct_runner.run_eqcctpro()
324
313
  ### **Evaluating Your Systems Runtime Performance Capabilites**
325
314
  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:
326
315
 
327
- ```python
328
- from eqcctpro import EvaluateSystem
329
-
330
- eval_gpu = EvaluateSystem(
331
- mode='gpu',
332
- intra_threads=1,
333
- inter_threads=1,
334
- input_dir='/path/to/mseed',
335
- output_dir='/path/to/outputs',
336
- log_filepath='/path/to/outputs/eqcctpro.log',
337
- csv_dir='/path/to/csv',
338
- P_threshold=0.001,
339
- S_threshold=0.02,
340
- p_model_filepath='/path/to/model_p.h5',
341
- s_model_filepath='/path/to/model_s.h5',
342
- cpu_id_list=[0,1],
343
- set_vram_mb=24750,
344
- selected_gpus=[0],
345
- stations2use=2
346
- )
347
- eval_gpu.evaluate()
348
- ```
349
316
 
350
317
  ```python
351
318
  from eqcctpro import EvaluateSystem
@@ -379,13 +346,36 @@ eval_cpu = EvaluateSystem(
379
346
  eval_cpu.evaluate()
380
347
  ```
381
348
 
349
+ ```python
350
+ from eqcctpro import EvaluateSystem
351
+
352
+ eval_gpu = EvaluateSystem(
353
+ mode='gpu',
354
+ intra_threads=1,
355
+ inter_threads=1,
356
+ input_dir='/path/to/mseed',
357
+ output_dir='/path/to/outputs',
358
+ log_filepath='/path/to/outputs/eqcctpro.log',
359
+ csv_dir='/path/to/csv',
360
+ P_threshold=0.001,
361
+ S_threshold=0.02,
362
+ p_model_filepath='/path/to/model_p.h5',
363
+ s_model_filepath='/path/to/model_s.h5',
364
+ cpu_id_list=[0,1],
365
+ vram_mb=24750,
366
+ selected_gpus=[0],
367
+ stations2use=2
368
+ )
369
+ eval_gpu.evaluate()
370
+ ```
371
+
382
372
  **EvaluateSystem** will iterate through different combinations of CPU(s), Concurrent Timechunk and Station Tasks, as well as GPU(s), and the amount of VRAM (MB) each Concurrent Prediction can use.
383
373
  **EvaluateSystem** will take time, depending on the number of CPU/GPUs, the amount of VRAM available, and the total workload that needs to be tested. However, after doing the testing once for most if not all usecases,
384
- the trial data will be available and can be used to identify the optimal input parallelization configurations for **EQCCTMSeedRunner** to use to get the maximum amount of processing out of your system in the shortest amonut of time.
374
+ the trial data will be available and can be used to identify the optimal input parallelization configurations for **RunEQCCTPro** to use to get the maximum amount of processing out of your system in the shortest amonut of time.
385
375
 
386
376
  The following input parameters need to be configurated for **EvaluateSystem** to evaluate your system based on your desired utilization of EQCCTPro:
387
377
 
388
- - **`mode (str)`**
378
+ - **`eval_mode (str)`**
389
379
  - Can be either `cpu` or `gpu`
390
380
  - Tells `EvaluateSystem` which computing approach the trials should it iterate with
391
381
  - **`intra_threads (int)`: default = 1**
@@ -434,7 +424,7 @@ The following input parameters need to be configurated for **EvaluateSystem** to
434
424
  - **`station_list_step_size (int)`: default = 1**
435
425
  - You can set a step size for the station list that is generated
436
426
  - 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]
437
- - Using 1 will use the default step size of 1-10, then step size of 5 up to station2use
427
+ - Using 1 will use the default step size of 1-10, then step size of 5 up to stations2use
438
428
  - **`min_conc_stations (int)`: default = 1**
439
429
  - Is the minimum amount of concurrent stations predictions you want each trial iteration to start with
440
430
  - By default, if `min_conc_predictions` and `conc_predictions_step_size` are set to 1, a custom step size iteration will be applied to test the 50 sample waveforms. The sequence follows: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, n+5, 50].
@@ -465,9 +455,10 @@ The following input parameters need to be configurated for **EvaluateSystem** to
465
455
  - **`tmp_dir (str)`: default = 1**
466
456
  - A temporary directory to store all temp files produced by EQCCTPro
467
457
  - Used to help ease system cleanup and to not write to system's default temporary directory
468
- - **`set_vram_mb (float)`**
469
- - Value of the maximum amount of VRAM EQCCTPro can use
470
- - 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
458
+ - **`vram_mb (float)`**
459
+ - Maximum amount of VRAM each Raylet can use (float).
460
+ - Must be a real value that is based on your GPU's physical VRAM space, if it exceeds the space the code will break due to OutOfMemoryError
461
+ - Good rule of thumb for calculating `vram_mb` = (GPU VRAM * .90 (to be safe)) / number_of_concurrent_station_predictions * number_of_concurrent_timechunk_predictions
471
462
  - **`selected_gpus (list)`: default = None**
472
463
  - List of GPU IDs on your computer you want to use if `mode = 'gpu'`
473
464
  - Non-existing GPU IDs will cause the code to exit
@@ -39,7 +39,7 @@ After activating your new conda environment, run the following command:
39
39
  ```sh
40
40
  pip install eqcctpro
41
41
  ```
42
- 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.
42
+ 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. You can pull the waveform data either by downloading the .zip file from the repository or by following step 3.
43
43
 
44
44
  ### **Step 3 (Optional): Pull the EQCCTPro Folder**
45
45
  Although not required, **it is highly recommended** to pull the `EQCCTPro` folder to gain access to sample waveform data for testing.
@@ -74,18 +74,8 @@ conda env create -f environment.yml
74
74
  conda activate eqcctpro
75
75
  ```
76
76
 
77
- ### **Step 3: Install EQCCTPro**
78
- After activating the environment, install the EQCCTPro package:
79
- ```sh
80
- pip install eqcctpro
81
- ```
82
-
83
- This will install any remaining dependencies needed for **EQCCTPro**.
84
-
85
- ---
86
-
87
77
  ## **More Information**
88
- For additional details and package updates, visit the **EQCCTPro PyPI page**:
78
+ For additional package updates, continue to check either this repository or visit the **EQCCTPro PyPI page**:
89
79
  🔗 [EQCCTPro on PyPI](https://pypi.org/project/eqcctpro/)
90
80
 
91
81
  ---
@@ -133,7 +123,7 @@ There are three main capabilities of EQCCTPro:
133
123
 
134
124
  These capabilities are achieved using the following core functions:
135
125
 
136
- - **EQCCTMSeedRunner** (for processing mSEED data)
126
+ - **RunEQCCTPro** (for processing mSEED data)
137
127
 
138
128
  - **EvaluateSystem** (for system evaluation)
139
129
 
@@ -142,9 +132,9 @@ These capabilities are achieved using the following core functions:
142
132
  - **OptimalGPUConfigurationFinder** (for GPU configuration optimization)
143
133
 
144
134
  ---
145
- ### **Processing mSEED data using EQCCTPro (EQCCTMSeedRunner)**
146
- To process mSEED from various seismic stations, use the **EQCCTMSeedRunner** class.
147
- **EQCCTMSeedRunner** enables users to process multiple mSEED from a given input directory, which consists of station directories formatted as follows:
135
+ ### **Processing mSEED data using EQCCTPro (RunEQCCTPro)**
136
+ To process mSEED from various seismic stations, use the **RunEQCCTPro** class.
137
+ **RunEQCCTPro** enables users to process multiple mSEED from a given input directory, which consists of station directories formatted as follows:
148
138
 
149
139
  ```sh
150
140
  [skevofilaxc 230_stations_1_min_dt]$ ls
@@ -177,12 +167,12 @@ TX.PB35.00.HH2__20241215T115800Z__20241215T120100Z.mseed
177
167
  ```
178
168
  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.
179
169
 
180
- After setting up or utilizing the provided sample waveform directory, and install eqcctpro, import **EQCCTMseedRunner** as show below:
170
+ After setting up or utilizing the provided sample waveform directory, and install eqcctpro, import **RunEQCCTPro** as show below:
181
171
 
182
172
  ```python
183
- from eqcctpro import EQCCTMSeedRunner
173
+ from eqcctpro import RunEQCCTPro
184
174
 
185
- eqcct_runner = EQCCTMSeedRunner(
175
+ eqcct_runner = RunEQCCTPro(
186
176
  use_gpu=False,
187
177
  intra_threads=1,
188
178
  inter_threads=1,
@@ -199,7 +189,7 @@ eqcct_runner = EQCCTMSeedRunner(
199
189
  best_usecase_config=True,
200
190
  csv_dir='/path/to/csv',
201
191
  selected_gpus=[0],
202
- set_vram_mb=24750,
192
+ vram_mb=24750,
203
193
  specific_stations='AT01, BP01, DG05',
204
194
  start_time='2024-12-14 12:00:00',
205
195
  end_time='2024-12-15 12:00:00',
@@ -209,7 +199,7 @@ eqcct_runner = EQCCTMSeedRunner(
209
199
  eqcct_runner.run_eqcctpro()
210
200
  ```
211
201
 
212
- **EQCCTMseedRunner** has multiple input parameters that need to be configured and are defined below:
202
+ **RunEQCCTPro** has multiple input parameters that need to be configured and are defined below:
213
203
 
214
204
  - **`use_gpu (bool)`: True or False**
215
205
  - Tells Ray to use either the GPU(s) (True) or CPUs (False) on your computer to process the waveforms in the entire workflow
@@ -258,7 +248,7 @@ eqcct_runner.run_eqcctpro()
258
248
  - **`selected_gpus (list)`: default = None**
259
249
  - List of GPU IDs on your computer you want to use if `use_gpu = True`
260
250
  - None existing GPU IDs will cause the code to exit
261
- - **`set_vram_mb (float)`**
251
+ - **`vram_mb (float)`**
262
252
  - Value of the maximum amount of VRAM EQCCTPro can use
263
253
  - 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**
264
254
  - **`specific_stations (str)`: default = None**
@@ -291,28 +281,6 @@ eqcct_runner.run_eqcctpro()
291
281
  ### **Evaluating Your Systems Runtime Performance Capabilites**
292
282
  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:
293
283
 
294
- ```python
295
- from eqcctpro import EvaluateSystem
296
-
297
- eval_gpu = EvaluateSystem(
298
- mode='gpu',
299
- intra_threads=1,
300
- inter_threads=1,
301
- input_dir='/path/to/mseed',
302
- output_dir='/path/to/outputs',
303
- log_filepath='/path/to/outputs/eqcctpro.log',
304
- csv_dir='/path/to/csv',
305
- P_threshold=0.001,
306
- S_threshold=0.02,
307
- p_model_filepath='/path/to/model_p.h5',
308
- s_model_filepath='/path/to/model_s.h5',
309
- cpu_id_list=[0,1],
310
- set_vram_mb=24750,
311
- selected_gpus=[0],
312
- stations2use=2
313
- )
314
- eval_gpu.evaluate()
315
- ```
316
284
 
317
285
  ```python
318
286
  from eqcctpro import EvaluateSystem
@@ -346,13 +314,36 @@ eval_cpu = EvaluateSystem(
346
314
  eval_cpu.evaluate()
347
315
  ```
348
316
 
317
+ ```python
318
+ from eqcctpro import EvaluateSystem
319
+
320
+ eval_gpu = EvaluateSystem(
321
+ mode='gpu',
322
+ intra_threads=1,
323
+ inter_threads=1,
324
+ input_dir='/path/to/mseed',
325
+ output_dir='/path/to/outputs',
326
+ log_filepath='/path/to/outputs/eqcctpro.log',
327
+ csv_dir='/path/to/csv',
328
+ P_threshold=0.001,
329
+ S_threshold=0.02,
330
+ p_model_filepath='/path/to/model_p.h5',
331
+ s_model_filepath='/path/to/model_s.h5',
332
+ cpu_id_list=[0,1],
333
+ vram_mb=24750,
334
+ selected_gpus=[0],
335
+ stations2use=2
336
+ )
337
+ eval_gpu.evaluate()
338
+ ```
339
+
349
340
  **EvaluateSystem** will iterate through different combinations of CPU(s), Concurrent Timechunk and Station Tasks, as well as GPU(s), and the amount of VRAM (MB) each Concurrent Prediction can use.
350
341
  **EvaluateSystem** will take time, depending on the number of CPU/GPUs, the amount of VRAM available, and the total workload that needs to be tested. However, after doing the testing once for most if not all usecases,
351
- the trial data will be available and can be used to identify the optimal input parallelization configurations for **EQCCTMSeedRunner** to use to get the maximum amount of processing out of your system in the shortest amonut of time.
342
+ the trial data will be available and can be used to identify the optimal input parallelization configurations for **RunEQCCTPro** to use to get the maximum amount of processing out of your system in the shortest amonut of time.
352
343
 
353
344
  The following input parameters need to be configurated for **EvaluateSystem** to evaluate your system based on your desired utilization of EQCCTPro:
354
345
 
355
- - **`mode (str)`**
346
+ - **`eval_mode (str)`**
356
347
  - Can be either `cpu` or `gpu`
357
348
  - Tells `EvaluateSystem` which computing approach the trials should it iterate with
358
349
  - **`intra_threads (int)`: default = 1**
@@ -401,7 +392,7 @@ The following input parameters need to be configurated for **EvaluateSystem** to
401
392
  - **`station_list_step_size (int)`: default = 1**
402
393
  - You can set a step size for the station list that is generated
403
394
  - 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]
404
- - Using 1 will use the default step size of 1-10, then step size of 5 up to station2use
395
+ - Using 1 will use the default step size of 1-10, then step size of 5 up to stations2use
405
396
  - **`min_conc_stations (int)`: default = 1**
406
397
  - Is the minimum amount of concurrent stations predictions you want each trial iteration to start with
407
398
  - By default, if `min_conc_predictions` and `conc_predictions_step_size` are set to 1, a custom step size iteration will be applied to test the 50 sample waveforms. The sequence follows: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, n+5, 50].
@@ -432,9 +423,10 @@ The following input parameters need to be configurated for **EvaluateSystem** to
432
423
  - **`tmp_dir (str)`: default = 1**
433
424
  - A temporary directory to store all temp files produced by EQCCTPro
434
425
  - Used to help ease system cleanup and to not write to system's default temporary directory
435
- - **`set_vram_mb (float)`**
436
- - Value of the maximum amount of VRAM EQCCTPro can use
437
- - 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
426
+ - **`vram_mb (float)`**
427
+ - Maximum amount of VRAM each Raylet can use (float).
428
+ - Must be a real value that is based on your GPU's physical VRAM space, if it exceeds the space the code will break due to OutOfMemoryError
429
+ - Good rule of thumb for calculating `vram_mb` = (GPU VRAM * .90 (to be safe)) / number_of_concurrent_station_predictions * number_of_concurrent_timechunk_predictions
438
430
  - **`selected_gpus (list)`: default = None**
439
431
  - List of GPU IDs on your computer you want to use if `mode = 'gpu'`
440
432
  - Non-existing GPU IDs will cause the code to exit
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eqcctpro
3
- Version: 0.6.2
3
+ Version: 0.6.4
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/
@@ -13,7 +13,6 @@ Requires-Dist: numpy==1.26.4
13
13
  Requires-Dist: pandas==2.2.3
14
14
  Requires-Dist: matplotlib==3.10.0
15
15
  Requires-Dist: obspy==1.4.1
16
- Requires-Dist: progress==1.6
17
16
  Requires-Dist: psutil==6.1.1
18
17
  Requires-Dist: ray==2.42.1
19
18
  Requires-Dist: schedule==1.2.2
@@ -72,7 +71,7 @@ After activating your new conda environment, run the following command:
72
71
  ```sh
73
72
  pip install eqcctpro
74
73
  ```
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.
74
+ 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. You can pull the waveform data either by downloading the .zip file from the repository or by following step 3.
76
75
 
77
76
  ### **Step 3 (Optional): Pull the EQCCTPro Folder**
78
77
  Although not required, **it is highly recommended** to pull the `EQCCTPro` folder to gain access to sample waveform data for testing.
@@ -107,18 +106,8 @@ conda env create -f environment.yml
107
106
  conda activate eqcctpro
108
107
  ```
109
108
 
110
- ### **Step 3: Install EQCCTPro**
111
- After activating the environment, install the EQCCTPro package:
112
- ```sh
113
- pip install eqcctpro
114
- ```
115
-
116
- This will install any remaining dependencies needed for **EQCCTPro**.
117
-
118
- ---
119
-
120
109
  ## **More Information**
121
- For additional details and package updates, visit the **EQCCTPro PyPI page**:
110
+ For additional package updates, continue to check either this repository or visit the **EQCCTPro PyPI page**:
122
111
  🔗 [EQCCTPro on PyPI](https://pypi.org/project/eqcctpro/)
123
112
 
124
113
  ---
@@ -166,7 +155,7 @@ There are three main capabilities of EQCCTPro:
166
155
 
167
156
  These capabilities are achieved using the following core functions:
168
157
 
169
- - **EQCCTMSeedRunner** (for processing mSEED data)
158
+ - **RunEQCCTPro** (for processing mSEED data)
170
159
 
171
160
  - **EvaluateSystem** (for system evaluation)
172
161
 
@@ -175,9 +164,9 @@ These capabilities are achieved using the following core functions:
175
164
  - **OptimalGPUConfigurationFinder** (for GPU configuration optimization)
176
165
 
177
166
  ---
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:
167
+ ### **Processing mSEED data using EQCCTPro (RunEQCCTPro)**
168
+ To process mSEED from various seismic stations, use the **RunEQCCTPro** class.
169
+ **RunEQCCTPro** enables users to process multiple mSEED from a given input directory, which consists of station directories formatted as follows:
181
170
 
182
171
  ```sh
183
172
  [skevofilaxc 230_stations_1_min_dt]$ ls
@@ -210,12 +199,12 @@ TX.PB35.00.HH2__20241215T115800Z__20241215T120100Z.mseed
210
199
  ```
211
200
  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.
212
201
 
213
- After setting up or utilizing the provided sample waveform directory, and install eqcctpro, import **EQCCTMseedRunner** as show below:
202
+ After setting up or utilizing the provided sample waveform directory, and install eqcctpro, import **RunEQCCTPro** as show below:
214
203
 
215
204
  ```python
216
- from eqcctpro import EQCCTMSeedRunner
205
+ from eqcctpro import RunEQCCTPro
217
206
 
218
- eqcct_runner = EQCCTMSeedRunner(
207
+ eqcct_runner = RunEQCCTPro(
219
208
  use_gpu=False,
220
209
  intra_threads=1,
221
210
  inter_threads=1,
@@ -232,7 +221,7 @@ eqcct_runner = EQCCTMSeedRunner(
232
221
  best_usecase_config=True,
233
222
  csv_dir='/path/to/csv',
234
223
  selected_gpus=[0],
235
- set_vram_mb=24750,
224
+ vram_mb=24750,
236
225
  specific_stations='AT01, BP01, DG05',
237
226
  start_time='2024-12-14 12:00:00',
238
227
  end_time='2024-12-15 12:00:00',
@@ -242,7 +231,7 @@ eqcct_runner = EQCCTMSeedRunner(
242
231
  eqcct_runner.run_eqcctpro()
243
232
  ```
244
233
 
245
- **EQCCTMseedRunner** has multiple input parameters that need to be configured and are defined below:
234
+ **RunEQCCTPro** has multiple input parameters that need to be configured and are defined below:
246
235
 
247
236
  - **`use_gpu (bool)`: True or False**
248
237
  - Tells Ray to use either the GPU(s) (True) or CPUs (False) on your computer to process the waveforms in the entire workflow
@@ -291,7 +280,7 @@ eqcct_runner.run_eqcctpro()
291
280
  - **`selected_gpus (list)`: default = None**
292
281
  - List of GPU IDs on your computer you want to use if `use_gpu = True`
293
282
  - None existing GPU IDs will cause the code to exit
294
- - **`set_vram_mb (float)`**
283
+ - **`vram_mb (float)`**
295
284
  - Value of the maximum amount of VRAM EQCCTPro can use
296
285
  - 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**
297
286
  - **`specific_stations (str)`: default = None**
@@ -324,28 +313,6 @@ eqcct_runner.run_eqcctpro()
324
313
  ### **Evaluating Your Systems Runtime Performance Capabilites**
325
314
  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:
326
315
 
327
- ```python
328
- from eqcctpro import EvaluateSystem
329
-
330
- eval_gpu = EvaluateSystem(
331
- mode='gpu',
332
- intra_threads=1,
333
- inter_threads=1,
334
- input_dir='/path/to/mseed',
335
- output_dir='/path/to/outputs',
336
- log_filepath='/path/to/outputs/eqcctpro.log',
337
- csv_dir='/path/to/csv',
338
- P_threshold=0.001,
339
- S_threshold=0.02,
340
- p_model_filepath='/path/to/model_p.h5',
341
- s_model_filepath='/path/to/model_s.h5',
342
- cpu_id_list=[0,1],
343
- set_vram_mb=24750,
344
- selected_gpus=[0],
345
- stations2use=2
346
- )
347
- eval_gpu.evaluate()
348
- ```
349
316
 
350
317
  ```python
351
318
  from eqcctpro import EvaluateSystem
@@ -379,13 +346,36 @@ eval_cpu = EvaluateSystem(
379
346
  eval_cpu.evaluate()
380
347
  ```
381
348
 
349
+ ```python
350
+ from eqcctpro import EvaluateSystem
351
+
352
+ eval_gpu = EvaluateSystem(
353
+ mode='gpu',
354
+ intra_threads=1,
355
+ inter_threads=1,
356
+ input_dir='/path/to/mseed',
357
+ output_dir='/path/to/outputs',
358
+ log_filepath='/path/to/outputs/eqcctpro.log',
359
+ csv_dir='/path/to/csv',
360
+ P_threshold=0.001,
361
+ S_threshold=0.02,
362
+ p_model_filepath='/path/to/model_p.h5',
363
+ s_model_filepath='/path/to/model_s.h5',
364
+ cpu_id_list=[0,1],
365
+ vram_mb=24750,
366
+ selected_gpus=[0],
367
+ stations2use=2
368
+ )
369
+ eval_gpu.evaluate()
370
+ ```
371
+
382
372
  **EvaluateSystem** will iterate through different combinations of CPU(s), Concurrent Timechunk and Station Tasks, as well as GPU(s), and the amount of VRAM (MB) each Concurrent Prediction can use.
383
373
  **EvaluateSystem** will take time, depending on the number of CPU/GPUs, the amount of VRAM available, and the total workload that needs to be tested. However, after doing the testing once for most if not all usecases,
384
- the trial data will be available and can be used to identify the optimal input parallelization configurations for **EQCCTMSeedRunner** to use to get the maximum amount of processing out of your system in the shortest amonut of time.
374
+ the trial data will be available and can be used to identify the optimal input parallelization configurations for **RunEQCCTPro** to use to get the maximum amount of processing out of your system in the shortest amonut of time.
385
375
 
386
376
  The following input parameters need to be configurated for **EvaluateSystem** to evaluate your system based on your desired utilization of EQCCTPro:
387
377
 
388
- - **`mode (str)`**
378
+ - **`eval_mode (str)`**
389
379
  - Can be either `cpu` or `gpu`
390
380
  - Tells `EvaluateSystem` which computing approach the trials should it iterate with
391
381
  - **`intra_threads (int)`: default = 1**
@@ -434,7 +424,7 @@ The following input parameters need to be configurated for **EvaluateSystem** to
434
424
  - **`station_list_step_size (int)`: default = 1**
435
425
  - You can set a step size for the station list that is generated
436
426
  - 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]
437
- - Using 1 will use the default step size of 1-10, then step size of 5 up to station2use
427
+ - Using 1 will use the default step size of 1-10, then step size of 5 up to stations2use
438
428
  - **`min_conc_stations (int)`: default = 1**
439
429
  - Is the minimum amount of concurrent stations predictions you want each trial iteration to start with
440
430
  - By default, if `min_conc_predictions` and `conc_predictions_step_size` are set to 1, a custom step size iteration will be applied to test the 50 sample waveforms. The sequence follows: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, n+5, 50].
@@ -465,9 +455,10 @@ The following input parameters need to be configurated for **EvaluateSystem** to
465
455
  - **`tmp_dir (str)`: default = 1**
466
456
  - A temporary directory to store all temp files produced by EQCCTPro
467
457
  - Used to help ease system cleanup and to not write to system's default temporary directory
468
- - **`set_vram_mb (float)`**
469
- - Value of the maximum amount of VRAM EQCCTPro can use
470
- - 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
458
+ - **`vram_mb (float)`**
459
+ - Maximum amount of VRAM each Raylet can use (float).
460
+ - Must be a real value that is based on your GPU's physical VRAM space, if it exceeds the space the code will break due to OutOfMemoryError
461
+ - Good rule of thumb for calculating `vram_mb` = (GPU VRAM * .90 (to be safe)) / number_of_concurrent_station_predictions * number_of_concurrent_timechunk_predictions
471
462
  - **`selected_gpus (list)`: default = None**
472
463
  - List of GPU IDs on your computer you want to use if `mode = 'gpu'`
473
464
  - Non-existing GPU IDs will cause the code to exit
@@ -2,7 +2,6 @@ numpy==1.26.4
2
2
  pandas==2.2.3
3
3
  matplotlib==3.10.0
4
4
  obspy==1.4.1
5
- progress==1.6
6
5
  psutil==6.1.1
7
6
  ray==2.42.1
8
7
  schedule==1.2.2
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "eqcctpro"
7
- version = "0.6.2"
7
+ version = "0.6.4"
8
8
  description = "EQCCTPro: A powerful seismic event detection toolkit"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10.14"
@@ -18,7 +18,6 @@ dependencies = [
18
18
  "pandas==2.2.3",
19
19
  "matplotlib==3.10.0",
20
20
  "obspy==1.4.1",
21
- "progress==1.6",
22
21
  "psutil==6.1.1",
23
22
  "ray==2.42.1",
24
23
  "schedule==1.2.2",
File without changes
File without changes