yasir-agdo-mt 1.0.0__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 (40) hide show
  1. yasir_agdo_mt-1.0.0/LICENSE +21 -0
  2. yasir_agdo_mt-1.0.0/PKG-INFO +538 -0
  3. yasir_agdo_mt-1.0.0/README.md +504 -0
  4. yasir_agdo_mt-1.0.0/pyproject.toml +67 -0
  5. yasir_agdo_mt-1.0.0/setup.cfg +4 -0
  6. yasir_agdo_mt-1.0.0/tests/test_agdo.py +222 -0
  7. yasir_agdo_mt-1.0.0/tests/test_edi.py +178 -0
  8. yasir_agdo_mt-1.0.0/tests/test_forward.py +11 -0
  9. yasir_agdo_mt-1.0.0/tests/test_initialization.py +37 -0
  10. yasir_agdo_mt-1.0.0/tests/test_inversion.py +232 -0
  11. yasir_agdo_mt-1.0.0/tests/test_levy.py +15 -0
  12. yasir_agdo_mt-1.0.0/tests/test_objective.py +22 -0
  13. yasir_agdo_mt-1.0.0/tests/test_synthetic.py +132 -0
  14. yasir_agdo_mt-1.0.0/tests/test_visualization.py +202 -0
  15. yasir_agdo_mt-1.0.0/yasir_agdo_mt/__init__.py +76 -0
  16. yasir_agdo_mt-1.0.0/yasir_agdo_mt/constants.py +15 -0
  17. yasir_agdo_mt-1.0.0/yasir_agdo_mt/core/__init__.py +31 -0
  18. yasir_agdo_mt-1.0.0/yasir_agdo_mt/core/forward.py +253 -0
  19. yasir_agdo_mt-1.0.0/yasir_agdo_mt/core/inversion.py +204 -0
  20. yasir_agdo_mt-1.0.0/yasir_agdo_mt/core/objective.py +128 -0
  21. yasir_agdo_mt-1.0.0/yasir_agdo_mt/exceptions.py +15 -0
  22. yasir_agdo_mt-1.0.0/yasir_agdo_mt/io/__init__.py +18 -0
  23. yasir_agdo_mt-1.0.0/yasir_agdo_mt/io/edi.py +334 -0
  24. yasir_agdo_mt-1.0.0/yasir_agdo_mt/optimizers/__init__.py +26 -0
  25. yasir_agdo_mt-1.0.0/yasir_agdo_mt/optimizers/agdo.py +368 -0
  26. yasir_agdo_mt-1.0.0/yasir_agdo_mt/optimizers/initialization.py +61 -0
  27. yasir_agdo_mt-1.0.0/yasir_agdo_mt/optimizers/levy.py +60 -0
  28. yasir_agdo_mt-1.0.0/yasir_agdo_mt/synthetic/__init__.py +20 -0
  29. yasir_agdo_mt-1.0.0/yasir_agdo_mt/synthetic/models.py +106 -0
  30. yasir_agdo_mt-1.0.0/yasir_agdo_mt/synthetic/noise.py +61 -0
  31. yasir_agdo_mt-1.0.0/yasir_agdo_mt/utils/__init__.py +0 -0
  32. yasir_agdo_mt-1.0.0/yasir_agdo_mt/utils/helpers.py +0 -0
  33. yasir_agdo_mt-1.0.0/yasir_agdo_mt/version.py +5 -0
  34. yasir_agdo_mt-1.0.0/yasir_agdo_mt/visualization/__init__.py +15 -0
  35. yasir_agdo_mt-1.0.0/yasir_agdo_mt/visualization/plots.py +248 -0
  36. yasir_agdo_mt-1.0.0/yasir_agdo_mt.egg-info/PKG-INFO +538 -0
  37. yasir_agdo_mt-1.0.0/yasir_agdo_mt.egg-info/SOURCES.txt +38 -0
  38. yasir_agdo_mt-1.0.0/yasir_agdo_mt.egg-info/dependency_links.txt +1 -0
  39. yasir_agdo_mt-1.0.0/yasir_agdo_mt.egg-info/requires.txt +9 -0
  40. yasir_agdo_mt-1.0.0/yasir_agdo_mt.egg-info/top_level.txt +1 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Muhammad Fadhilah Al Yasir Harahap
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,538 @@
1
+ Metadata-Version: 2.4
2
+ Name: yasir-agdo-mt
3
+ Version: 1.0.0
4
+ Summary: A Python library for one-dimensional magnetotelluric inversion using the Adam Gradient Descent Optimizer (AGDO).
5
+ Author-email: Muhammad Fadhilah Al Yasir Harahap <alyasirharahap@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/<USERNAME>/AGDO-MT-Inversion
8
+ Project-URL: Repository, https://github.com/<USERNAME>/AGDO-MT-Inversion
9
+ Project-URL: Issues, https://github.com/<USERNAME>/AGDO-MT-Inversion/issues
10
+ Keywords: magnetotellurics,geophysics,inversion,optimization,AGDO,electromagnetics
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: Intended Audience :: Education
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Scientific/Engineering
21
+ Classifier: Topic :: Scientific/Engineering :: Physics
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: numpy>=1.24
26
+ Requires-Dist: scipy>=1.10
27
+ Requires-Dist: matplotlib>=3.7
28
+ Provides-Extra: dev
29
+ Requires-Dist: pytest>=8.0; extra == "dev"
30
+ Requires-Dist: pytest-cov>=5.0; extra == "dev"
31
+ Requires-Dist: build>=1.2; extra == "dev"
32
+ Requires-Dist: twine>=6.0; extra == "dev"
33
+ Dynamic: license-file
34
+
35
+ # AGDO-MT
36
+
37
+ <p align="center">
38
+
39
+ ![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)
40
+ ![Tests](https://img.shields.io/badge/Tests-36%20Passed-brightgreen.svg)
41
+ ![License](https://img.shields.io/badge/License-MIT-green.svg)
42
+ ![Platform](https://img.shields.io/badge/Platform-Windows-lightgrey.svg)
43
+
44
+ </p>
45
+
46
+ <p align="center">
47
+
48
+ <b>A Python package for One-Dimensional Magnetotelluric (MT) Forward Modelling and Inversion using the Adam Gradient Descent Optimizer (AGDO).</b>
49
+
50
+ </p>
51
+
52
+ <p align="center">
53
+
54
+ Scientific Python Package • Forward Modelling • AGDO Optimization • SEG-EDI Reader • Visualization
55
+
56
+ </p>
57
+
58
+ ---
59
+
60
+ <p align="center">
61
+
62
+ <img src="figures/workflow.png" width="900">
63
+
64
+ </p>
65
+
66
+ AGDO-MT is an open-source Python package designed for one-dimensional (1D) magnetotelluric (MT) forward modelling and inversion. The package provides a complete workflow, including MT forward modelling, synthetic data generation, SEG-EDI file processing, visualization, and inversion using the Adam Gradient Descent Optimizer (AGDO).
67
+
68
+ Originally developed as part of undergraduate research at Institut Teknologi Sumatera (ITERA), AGDO-MT has subsequently been described in a peer-reviewed journal publication. The package aims to provide a reproducible, extensible, and research-oriented framework for one-dimensional magnetotelluric inversion studies.
69
+
70
+ # Features
71
+
72
+ ### Forward Modelling
73
+
74
+ - One-dimensional layered-earth MT forward modelling
75
+ - Apparent resistivity computation
76
+ - Phase computation
77
+
78
+ ### Inversion
79
+
80
+ - Adam Gradient Descent Optimizer (AGDO)
81
+ - Early stopping criterion
82
+ - Adaptive learning rate
83
+ - Population-based exploration
84
+ - Levy Flight strategy
85
+
86
+ ### Data Processing
87
+
88
+ - SEG-EDI file reader
89
+ - MT response extraction
90
+ - Synthetic MT model generation
91
+ - Gaussian noise simulation
92
+
93
+ ### Visualization
94
+
95
+ - MT response plots
96
+ - Layered resistivity models
97
+ - Convergence curves
98
+ - Ensemble inversion analysis
99
+
100
+ ### Software Engineering
101
+
102
+ - Modular Python package
103
+ - Unit-tested implementation (36 tests)
104
+ - Validation notebooks
105
+ - Type hints and NumPy-style documentation
106
+
107
+ # Installation
108
+
109
+ Clone the repository
110
+
111
+ ```bash
112
+ git clone https://github.com/alyasirharahap/AGDO-MT-Inversion.git
113
+ cd AGDO-MT-Inversion
114
+ ```
115
+
116
+ Create a virtual environment (optional but recommended)
117
+
118
+ ```bash
119
+ python -m venv .venv
120
+ ```
121
+
122
+ Activate the environment
123
+
124
+ Windows
125
+
126
+ ```bash
127
+ .venv\Scripts\activate
128
+ ```
129
+
130
+ Linux / macOS
131
+
132
+ ```bash
133
+ source .venv/bin/activate
134
+ ```
135
+
136
+ Install the package
137
+
138
+ ```bash
139
+ pip install -e .
140
+ ```
141
+
142
+ # Quick Start
143
+
144
+ ## Read an EDI file
145
+
146
+ ```python
147
+ from yasir_agdo_mt.io import read_edi
148
+
149
+ edi = read_edi("data/edi/L09S10_edt.edi")
150
+ ```
151
+
152
+ ## Perform forward modelling
153
+
154
+ ```python
155
+ from yasir_agdo_mt.core import mt1d
156
+
157
+ Z, rho, phase = mt1d(
158
+ frequency,
159
+ resistivity,
160
+ thickness
161
+ )
162
+
163
+ ```
164
+ ## Optimizer Configuration
165
+
166
+ The optimizer behavior can be customized using `AGDOConfig`.
167
+
168
+ ```python
169
+ from yasir_agdo_mt import AGDOConfig
170
+
171
+ config = AGDOConfig(
172
+ npop=200,
173
+ niter=300,
174
+ learning_rate=0.05,
175
+ tolerance=1e-3,
176
+ patience=25,
177
+ )
178
+
179
+ result = invert_mt1d(
180
+ frequency,
181
+ rho_obs,
182
+ phase_obs,
183
+ lb,
184
+ ub,
185
+ config=config,
186
+ )
187
+ ```
188
+
189
+ ## Run inversion
190
+
191
+ ```python
192
+ from yasir_agdo_mt.core import invert_mt1d
193
+
194
+ result = invert_mt1d(...)
195
+ ```
196
+
197
+ ## Visualize
198
+
199
+ ```python
200
+ from yasir_agdo_mt.visualization import (
201
+ plot_model,
202
+ plot_mt_response,
203
+ plot_convergence,
204
+ )
205
+
206
+ plot_model(result)
207
+ ```
208
+ # Validation
209
+
210
+ The package has been validated using:
211
+
212
+ - Analytical forward modelling
213
+ - Synthetic layered-earth models
214
+ - Field MT datasets
215
+ - Benchmark optimization functions
216
+ - Automated unit testing
217
+
218
+ | Component | Status |
219
+ |----------|:------:|
220
+ | Forward Modelling | ✅ |
221
+ | AGDO Optimizer | ✅ |
222
+ | SEG-EDI Reader | ✅ |
223
+ | Visualization | ✅ |
224
+ | Synthetic Data | ✅ |
225
+ | Unit Tests | ✅ (36 Passed) |
226
+
227
+ ---
228
+
229
+ # Scientific Background
230
+
231
+ Magnetotelluric (MT) inversion is a nonlinear and non-unique optimization problem aimed at estimating subsurface electrical resistivity models from observed apparent resistivity and phase responses. Conventional optimization methods often depend on the initial model and may become trapped in local minima.
232
+
233
+ AGDO-MT addresses these challenges by implementing the Adam Gradient Descent Optimizer (AGDO), which combines adaptive gradient optimization with population-based exploration to achieve stable convergence while maintaining computational efficiency.
234
+
235
+ The package has been validated using benchmark functions, synthetic MT models, and real field datasets, providing a reproducible framework for magnetotelluric inversion research.
236
+
237
+ # Experimental Setup
238
+
239
+ The performance of the proposed AGDO algorithm was evaluated through three consecutive experiments designed to assess its optimization capability, inversion accuracy, and applicability to real magnetotelluric (MT) data.
240
+
241
+ | Stage | Objective |
242
+ |--------|-----------|
243
+ | Benchmark Function | Evaluate the global optimization capability of AGDO |
244
+ | Synthetic MT Inversion | Assess inversion accuracy using controlled layered-earth resistivity models |
245
+ | Field MT Inversion | Validate the proposed algorithm using real MT observations |
246
+
247
+ # Synthetic Dataset
248
+
249
+ Synthetic MT responses were generated from one-dimensional layered-earth resistivity models using forward modelling. To simulate realistic measurement conditions, Gaussian noise with a standard deviation of 5% was added to the calculated apparent resistivity and phase responses.
250
+
251
+ | Parameter | Value |
252
+ |-----------|------:|
253
+ | Earth Model | Layered Earth |
254
+ | Frequency Range | 10⁻³ – 10⁴ Hz |
255
+ | Number of Frequencies | 56 |
256
+ | Noise Level | 5% Gaussian Noise |
257
+ | Independent Runs | 100 |
258
+
259
+ # Field Dataset
260
+
261
+ Field validation was performed using publicly available magnetotelluric (MT) data acquired from the Cloncurry region, Queensland, Australia. The dataset is provided in SEG-EDI format and contains frequency, impedance tensor, apparent resistivity, and phase information.
262
+
263
+ An example dataset included in this repository is:
264
+
265
+ ```text
266
+ data/edi/L09S10_edt.edi
267
+ ```
268
+
269
+ The EDI files serve as the input for the one-dimensional inversion workflow implemented in AGDO-MT.
270
+
271
+ # AGDO Parameters
272
+
273
+ Two optimization configurations were used throughout the experiments.
274
+
275
+ | Parameter | Synthetic | Field |
276
+ |-----------|----------:|------:|
277
+ | Population Size | 120 | 200 |
278
+ | Maximum Iterations | 150 | 300 |
279
+ | Learning Rate | 0.05 | Adaptive |
280
+ | β₁ | 0.9 | 0.9 |
281
+ | β₂ | 0.999 | 0.999 |
282
+ | Early Stopping | Enabled | Enabled |
283
+
284
+ The parameter settings were selected empirically to provide stable convergence while maintaining computational efficiency for both synthetic and field inversion experiments.
285
+
286
+ # Results
287
+
288
+ The proposed AGDO algorithm was evaluated using benchmark optimization problems, synthetic MT inversion experiments, and field MT datasets. Overall, the results demonstrate stable convergence, accurate reconstruction of layered-earth resistivity models, and consistent performance across repeated optimization runs.
289
+
290
+ ## Benchmark Function
291
+
292
+ The Peaks benchmark function was used to verify the global optimization capability of AGDO before applying the algorithm to MT inversion.
293
+
294
+ <p align="center">
295
+ <img src="figures/peaks.png" width="850">
296
+ </p>
297
+
298
+ The optimization process demonstrates AGDO's ability to efficiently explore the search space during the early iterations and gradually converge toward the global optimum.
299
+
300
+ ## Synthetic MT Inversion
301
+
302
+ Four synthetic layered-earth resistivity models with different geological configurations were used to evaluate the inversion performance of AGDO.
303
+
304
+ ### Model 1
305
+
306
+ <p align="center">
307
+ <img src="figures/synthetic_model1.png" width="850">
308
+ </p>
309
+
310
+ ### Model 2
311
+
312
+ <p align="center">
313
+ <img src="figures/synthetic_model2.png" width="850">
314
+ </p>
315
+
316
+ ### Model 3
317
+
318
+ <p align="center">
319
+ <img src="figures/synthetic_model3.png" width="850">
320
+ </p>
321
+
322
+ ### Model 4
323
+
324
+ <p align="center">
325
+ <img src="figures/synthetic_model4.png" width="850">
326
+ </p>
327
+
328
+ Across all four synthetic models, AGDO successfully reconstructed the original layered-earth resistivity structures with low RMSE values and stable convergence behavior.
329
+
330
+ ## Convergence Analysis
331
+
332
+ <p align="center">
333
+ <img src="figures/convergence.png" width="800">
334
+ </p>
335
+
336
+ The convergence curves show a rapid decrease in RMSE during the initial iterations, followed by gradual convergence toward stable solutions. This behavior indicates that AGDO effectively balances global exploration and local exploitation throughout the optimization process.
337
+
338
+ ## Field MT Inversion
339
+
340
+ The proposed algorithm was further validated using three MT stations from the Cloncurry region, Queensland, Australia.
341
+
342
+ ### Station L02S18
343
+
344
+ <p align="center">
345
+ <img src="figures/field_L02S18.png" width="850">
346
+ </p>
347
+
348
+ ### Station L19S12
349
+
350
+ <p align="center">
351
+ <img src="figures/field_L19S12.png" width="850">
352
+ </p>
353
+
354
+ ### Station L19S10
355
+
356
+ <p align="center">
357
+ <img src="figures/field_L19S10.png" width="850">
358
+ </p>
359
+
360
+ The calculated apparent resistivity and phase responses show good agreement with the observed data, demonstrating that AGDO can successfully recover realistic subsurface resistivity models from field MT measurements.
361
+
362
+ # Computational Performance
363
+
364
+ The performance of AGDO-MT was evaluated on the following hardware configuration.
365
+
366
+ | Component | Specification |
367
+ |-----------|---------------|
368
+ | Processor | AMD Ryzen 5 7535HS |
369
+ | Memory | 16 GB RAM |
370
+ | GPU | NVIDIA GeForce RTX 3050 Laptop GPU |
371
+ | Operating System | Windows 11 |
372
+ | Python Version | Python 3.10 |
373
+
374
+ The average execution time for a single inversion run is approximately **20 seconds** under the experimental settings used in this study. Actual execution time may vary depending on the optimization parameters, model complexity, hardware specifications, and Python environment.
375
+
376
+ # Main Findings
377
+
378
+ The experimental results demonstrate that:
379
+
380
+ - AGDO successfully reconstructs one-dimensional layered-earth resistivity models from both synthetic and field MT data.
381
+ - The optimizer achieves stable convergence while maintaining a balance between global exploration and local exploitation.
382
+ - Synthetic inversion experiments produce low RMSE values and accurately recover the original resistivity structures.
383
+ - Field inversion results show good agreement between observed and calculated apparent resistivity and phase responses.
384
+ - The modular implementation facilitates reproducible research and future algorithm development.
385
+
386
+ # Limitations
387
+
388
+ The current implementation focuses on one-dimensional magnetotelluric (MT) inversion under the assumption of horizontally layered earth models. The package does not currently support:
389
+
390
+ - Two-dimensional (2D) MT inversion
391
+ - Three-dimensional (3D) MT inversion
392
+ - Joint geophysical inversion
393
+ - Parallel or distributed optimization
394
+
395
+ # Future Work
396
+
397
+ Potential future developments of AGDO-MT include:
398
+
399
+ - Extension to two-dimensional (2D) MT inversion
400
+ - Extension to three-dimensional (3D) MT inversion
401
+ - GPU acceleration for faster optimization
402
+ - Parallel optimization strategies
403
+ - Comparative studies with other optimization algorithms (e.g., PSO, GWO, and OOBO)
404
+ - Adaptive population strategies
405
+ - Multi-objective optimization
406
+ - Joint geophysical inversion
407
+
408
+ # Repository Gallery
409
+
410
+ The following figures summarize the major stages and results of the AGDO-MT inversion workflow.
411
+
412
+ ---
413
+
414
+ ## Benchmark Optimization
415
+
416
+ <p align="center">
417
+ <img src="figures/peaks.png" width="850">
418
+ </p>
419
+
420
+ The Peaks benchmark function was used to evaluate the global optimization capability of AGDO prior to MT inversion.
421
+
422
+ ---
423
+
424
+ ## Synthetic MT Inversion
425
+
426
+ <p align="center">
427
+ <img src="figures/synthetic_model1.png" width="850">
428
+ </p>
429
+
430
+ <p align="center">
431
+ <img src="figures/synthetic_model2.png" width="850">
432
+ </p>
433
+
434
+ <p align="center">
435
+ <img src="figures/synthetic_model3.png" width="850">
436
+ </p>
437
+
438
+ <p align="center">
439
+ <img src="figures/synthetic_model4.png" width="850">
440
+ </p>
441
+
442
+ Four synthetic layered-earth models were used to evaluate inversion accuracy under different resistivity configurations.
443
+
444
+ ---
445
+
446
+ ## Convergence Analysis
447
+
448
+ <p align="center">
449
+ <img src="figures/convergence.png" width="800">
450
+ </p>
451
+
452
+ The convergence history illustrates the optimization behavior of AGDO throughout the inversion process.
453
+
454
+ ---
455
+
456
+ ## Field MT Inversion
457
+
458
+ ### Station L02S18
459
+
460
+ <p align="center">
461
+ <img src="figures/field_L02S18.png" width="850">
462
+ </p>
463
+
464
+ ### Station L19S12
465
+
466
+ <p align="center">
467
+ <img src="figures/field_L19S12.png" width="850">
468
+ </p>
469
+
470
+ ### Station L19S10
471
+
472
+ <p align="center">
473
+ <img src="figures/field_L19S10.png" width="850">
474
+ </p>
475
+
476
+ The field inversion results demonstrate good agreement between observed and calculated MT responses, indicating the applicability of AGDO to real MT datasets.
477
+
478
+ # Citation
479
+
480
+ If you use AGDO-MT in your research, please cite the associated publication.
481
+
482
+ ```bibtex
483
+ @article{harahap2026agdo,
484
+ author = {Muhammad Fadhilah Al Yasir Harahap and Ledi Defita Yeni},
485
+ title = {Application of the Adam Gradient Descent Optimizer (AGDO) for One-Dimensional Magnetotelluric (MT) Data Inversion},
486
+ journal = {Phi: Jurnal Pendidikan Fisika dan Terapan},
487
+ volume = {12},
488
+ number = {2},
489
+ pages = {316--331},
490
+ year = {2026},
491
+ doi = {},
492
+ url = {https://jurnal.ar-raniry.ac.id/index.php/jurnalphi/article/view/34593}
493
+ }
494
+ }
495
+ ```
496
+
497
+ **Publication**
498
+
499
+ https://jurnal.ar-raniry.ac.id/index.php/jurnalphi/article/view/34593
500
+
501
+ # License
502
+
503
+ This project is released under the MIT License. See the `LICENSE` file for more information.
504
+
505
+ # Author
506
+
507
+ **Muhammad Fadhilah Al Yasir Harahap**
508
+
509
+ Department of Geophysical Engineering
510
+
511
+ Faculty of Industrial Technology
512
+
513
+ Institut Teknologi Sumatera (ITERA)
514
+
515
+ Indonesia
516
+
517
+ # Acknowledgements
518
+
519
+ The author gratefully acknowledges:
520
+
521
+ - Institut Teknologi Sumatera (ITERA)
522
+ - Department of Geophysical Engineering
523
+ - Geoscience Australia for providing the public MT dataset
524
+ - Researchers whose previous work contributed to the development of this study
525
+
526
+ # Contact
527
+
528
+ For questions, suggestions, or collaboration:
529
+
530
+ **Email:** alyasirharahap@gmail.com
531
+
532
+ ---
533
+
534
+ <p align="center">
535
+
536
+ ⭐ If you find AGDO-MT useful for your research, please consider giving this repository a star.
537
+
538
+ </p>