pycsamt 2.2.0__tar.gz → 2.2.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 (1102) hide show
  1. {pycsamt-2.2.0/pycsamt.egg-info → pycsamt-2.2.2}/PKG-INFO +4 -3
  2. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/__init__.py +1 -1
  3. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/_session.py +4 -4
  4. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/plot.py +4 -13
  5. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/util.py +6 -6
  6. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/view/frame.py +17 -1
  7. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/core/_registry.py +4 -4
  8. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/core/registry.py +4 -4
  9. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/plot.py +1 -1
  10. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/em1d.py +77 -124
  11. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/doc.py +28 -15
  12. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/export.py +7 -7
  13. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/mesh.py +2 -2
  14. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/objective.py +1 -1
  15. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/plot.py +7 -7
  16. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/regularization.py +2 -2
  17. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/results.py +2 -2
  18. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/plot.py +16 -4
  19. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/blocks.py +6 -6
  20. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/cbase.py +3 -3
  21. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/collection.py +2 -2
  22. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/heads.py +6 -6
  23. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/j.py +16 -16
  24. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/property.py +4 -4
  25. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/validation.py +1 -1
  26. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/base.py +2 -2
  27. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/config.py +2 -2
  28. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/runner.py +1 -1
  29. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/source.py +1 -1
  30. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/base.py +1 -1
  31. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/builder.py +3 -3
  32. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/config.py +3 -3
  33. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/control.py +2 -2
  34. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/covariance.py +3 -3
  35. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/data.py +2 -2
  36. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/log.py +2 -2
  37. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/model2d.py +2 -2
  38. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/model3d.py +2 -2
  39. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/results.py +2 -2
  40. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/runner.py +1 -1
  41. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/__init__.py +3 -3
  42. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/builder.py +3 -3
  43. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/config.py +2 -2
  44. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/data.py +3 -3
  45. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/log.py +3 -3
  46. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/mesh.py +30 -7
  47. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/model.py +3 -3
  48. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/plot.py +4 -4
  49. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/response.py +3 -3
  50. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/results.py +2 -2
  51. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/runner.py +4 -4
  52. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/startup.py +4 -4
  53. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/cbase.py +3 -3
  54. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/collection.py +3 -3
  55. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/edi.py +4 -4
  56. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/heads.py +10 -10
  57. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/other.py +3 -3
  58. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/spectra.py +15 -15
  59. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/survey.py +4 -4
  60. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/time_series.py +4 -4
  61. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/utils.py +1 -1
  62. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/validation.py +2 -2
  63. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/base.py +8 -8
  64. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/compute.py +7 -7
  65. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/edit.py +16 -16
  66. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/export.py +3 -3
  67. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/selection.py +6 -6
  68. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/transformers/_base.py +3 -3
  69. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/transformers/jedi.py +4 -4
  70. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/z/base.py +3 -3
  71. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/z/resphase.py +8 -8
  72. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/z/tipper.py +19 -19
  73. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/z/z.py +9 -9
  74. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/avg.py +8 -8
  75. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/proc_utils.py +4 -4
  76. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/processing.py +2 -2
  77. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/resphase.py +2 -2
  78. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/var_std.py +2 -2
  79. {pycsamt-2.2.0 → pycsamt-2.2.2/pycsamt.egg-info}/PKG-INFO +4 -3
  80. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt.egg-info/requires.txt +3 -2
  81. {pycsamt-2.2.0 → pycsamt-2.2.2}/pyproject.toml +10 -5
  82. {pycsamt-2.2.0 → pycsamt-2.2.2}/LICENSE.md +0 -0
  83. {pycsamt-2.2.0 → pycsamt-2.2.2}/MANIFEST.in +0 -0
  84. {pycsamt-2.2.0 → pycsamt-2.2.2}/README.md +0 -0
  85. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/_typing.py +0 -0
  86. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/__init__.py +0 -0
  87. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/__main__.py +0 -0
  88. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/_base.py +0 -0
  89. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/_corrections.py +0 -0
  90. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/_package_context.py +0 -0
  91. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/_param_schemas.py +0 -0
  92. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/_pricing.py +0 -0
  93. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/_topography.py +0 -0
  94. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/_workflow_plan.py +0 -0
  95. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/_workflows.py +0 -0
  96. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/ai_inversion.py +0 -0
  97. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/anomaly_agent.py +0 -0
  98. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/batch_survey.py +0 -0
  99. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/code_gen.py +0 -0
  100. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/context.py +0 -0
  101. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/coordinator.py +0 -0
  102. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/denoising.py +0 -0
  103. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/edi_export.py +0 -0
  104. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/ensemble_agent.py +0 -0
  105. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/forward.py +0 -0
  106. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/freq_decimation.py +0 -0
  107. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/hybrid_agent.py +0 -0
  108. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/interpretation.py +0 -0
  109. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/inv2d_agent.py +0 -0
  110. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/inv3d_agent.py +0 -0
  111. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/inversion_backend.py +0 -0
  112. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/inversion_comparison.py +0 -0
  113. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/inversion_eval.py +0 -0
  114. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/inversion_prep.py +0 -0
  115. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/iot_agent.py +0 -0
  116. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/joint_agent.py +0 -0
  117. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/loader.py +0 -0
  118. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/mare2dem_agent.py +0 -0
  119. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/master.py +0 -0
  120. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/metrics.py +0 -0
  121. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/model_zoo_agent.py +0 -0
  122. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/modem_agent.py +0 -0
  123. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/occam2d_agent.py +0 -0
  124. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/orchestrator.py +0 -0
  125. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/package_qa.py +0 -0
  126. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/phase_analysis.py +0 -0
  127. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/pinn_agent.py +0 -0
  128. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/pipeline_agent.py +0 -0
  129. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/plotting.py +0 -0
  130. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/qc.py +0 -0
  131. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/report.py +0 -0
  132. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/resistivity_map.py +0 -0
  133. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/router.py +0 -0
  134. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/sensitivity.py +0 -0
  135. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/static_shift.py +0 -0
  136. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/tensor_rotation.py +0 -0
  137. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/tipper_analysis.py +0 -0
  138. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/tooling.py +0 -0
  139. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/agents/web.py +0 -0
  140. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/__init__.py +0 -0
  141. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/_backend_utils.py +0 -0
  142. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/_base.py +0 -0
  143. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/_zoo.py +0 -0
  144. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/data/__init__.py +0 -0
  145. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/data/contracts.py +0 -0
  146. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/data/manifest.py +0 -0
  147. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/data/normalization.py +0 -0
  148. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/data/splits.py +0 -0
  149. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/domain_gap/__init__.py +0 -0
  150. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/domain_gap/audit.py +0 -0
  151. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/domain_gap/report.py +0 -0
  152. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/domain_gap/simulator.py +0 -0
  153. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/domain_gap/survey_fit.py +0 -0
  154. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/experiments/__init__.py +0 -0
  155. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/experiments/config.py +0 -0
  156. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/geology/__init__.py +0 -0
  157. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/geology/fields.py +0 -0
  158. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/geology/layers.py +0 -0
  159. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/geology/lenses.py +0 -0
  160. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/geology/topography.py +0 -0
  161. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/__init__.py +0 -0
  162. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/_pinn_ops.py +0 -0
  163. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/_pinn_ops_tf.py +0 -0
  164. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/_pinn_ops_torch.py +0 -0
  165. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/_sites_bridge.py +0 -0
  166. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/calibration.py +0 -0
  167. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/config.py +0 -0
  168. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/ensemble.py +0 -0
  169. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/hybrid1d.py +0 -0
  170. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/hybrid2d.py +0 -0
  171. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/hybrid3d.py +0 -0
  172. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/inv1d.py +0 -0
  173. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/inv2d.py +0 -0
  174. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/inv3d.py +0 -0
  175. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/joint.py +0 -0
  176. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/pinn1d.py +0 -0
  177. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/pinn2d.py +0 -0
  178. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/pinn3d.py +0 -0
  179. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/inversion/run_config.py +0 -0
  180. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/losses/__init__.py +0 -0
  181. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/losses/_common.py +0 -0
  182. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/losses/boundary.py +0 -0
  183. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/losses/model.py +0 -0
  184. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/losses/response.py +0 -0
  185. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/losses/spatial.py +0 -0
  186. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/losses/uncertainty.py +0 -0
  187. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/nets/__init__.py +0 -0
  188. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/nets/cnn1d.py +0 -0
  189. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/nets/drcnn.py +0 -0
  190. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/nets/fcn.py +0 -0
  191. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/nets/gcn.py +0 -0
  192. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/nets/resnet.py +0 -0
  193. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/nets/unet.py +0 -0
  194. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/plot/__init__.py +0 -0
  195. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/plot/_style.py +0 -0
  196. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/plot/compare.py +0 -0
  197. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/plot/convergence.py +0 -0
  198. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/plot/diagnostics.py +0 -0
  199. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/plot/inversion.py +0 -0
  200. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/plot/section.py +0 -0
  201. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/processing/__init__.py +0 -0
  202. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/processing/anomaly.py +0 -0
  203. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/processing/classify.py +0 -0
  204. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/processing/denoise.py +0 -0
  205. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/processing/plot.py +0 -0
  206. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/processing/qc.py +0 -0
  207. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/training/__init__.py +0 -0
  208. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/training/augment.py +0 -0
  209. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/training/dataset.py +0 -0
  210. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/training/dataset2d.py +0 -0
  211. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/training/dataset2d_tri.py +0 -0
  212. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/training/dataset3d.py +0 -0
  213. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/training/metrics.py +0 -0
  214. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/training/trainer.py +0 -0
  215. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/validation/__init__.py +0 -0
  216. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/validation/calibration.py +0 -0
  217. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/validation/ood.py +0 -0
  218. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/validation/recovery.py +0 -0
  219. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ai/validation/residuals.py +0 -0
  220. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/__init__.py +0 -0
  221. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/_rose_style.py +0 -0
  222. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/agents.py +0 -0
  223. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/bunch.py +0 -0
  224. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/cli/__init__.py +0 -0
  225. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/cli/config.py +0 -0
  226. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/cli/options.py +0 -0
  227. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/cli/params.py +0 -0
  228. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/control.py +0 -0
  229. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/docs.py +0 -0
  230. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/interp.py +0 -0
  231. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/labels.py +0 -0
  232. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/mesh.py +0 -0
  233. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/ordering.py +0 -0
  234. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/pipe/__init__.py +0 -0
  235. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/pipe/config.py +0 -0
  236. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/property.py +0 -0
  237. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/section.py +0 -0
  238. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/station.py +0 -0
  239. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/style.py +0 -0
  240. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/topo/__init__.py +0 -0
  241. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/typing.py +0 -0
  242. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/view/__init__.py +0 -0
  243. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/view/config.py +0 -0
  244. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/view/io.py +0 -0
  245. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/view/progress.py +0 -0
  246. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/view/result.py +0 -0
  247. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/view/survey.py +0 -0
  248. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/api/view/tables.py +0 -0
  249. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/__init__.py +0 -0
  250. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/__init__.py +0 -0
  251. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/__main__.py +0 -0
  252. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/_ids.py +0 -0
  253. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/_markdown.py +0 -0
  254. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/_providers.py +0 -0
  255. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/app.py +0 -0
  256. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/__init__.py +0 -0
  257. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/chat.py +0 -0
  258. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/edi.py +0 -0
  259. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/help.py +0 -0
  260. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/inv_params.py +0 -0
  261. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/line_sel.py +0 -0
  262. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/outdir.py +0 -0
  263. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/params.py +0 -0
  264. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/plus.py +0 -0
  265. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/postproc.py +0 -0
  266. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/preview.py +0 -0
  267. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/session.py +0 -0
  268. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/settings.py +0 -0
  269. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/sidebar.py +0 -0
  270. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/callbacks/splash.py +0 -0
  271. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/agent_master/layout.py +0 -0
  272. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/__init__.py +0 -0
  273. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/__main__.py +0 -0
  274. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/agent_master_bridge.py +0 -0
  275. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/agent_registry.py +0 -0
  276. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/controllers/__init__.py +0 -0
  277. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/controllers/advanced_controller.py +0 -0
  278. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/controllers/app_controller.py +0 -0
  279. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/controllers/correction_controller.py +0 -0
  280. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/controllers/data_controller.py +0 -0
  281. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/controllers/forward_controller.py +0 -0
  282. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/controllers/interp_controller.py +0 -0
  283. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/controllers/pipeline_controller.py +0 -0
  284. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/controllers/plot_controller.py +0 -0
  285. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/controllers/qc_controller.py +0 -0
  286. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/controllers/settings_controller.py +0 -0
  287. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/controllers/tdem_controller.py +0 -0
  288. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/dialogs/__init__.py +0 -0
  289. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/dialogs/about_dialog.py +0 -0
  290. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/dialogs/export_dlg.py +0 -0
  291. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/dialogs/inversion_dlg.py +0 -0
  292. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/dialogs/load_data_dlg.py +0 -0
  293. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/dialogs/no_data_dialog.py +0 -0
  294. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/dialogs/preferences_dlg.py +0 -0
  295. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/dialogs/recompute_dlg.py +0 -0
  296. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/dialogs/run_agent_dlg.py +0 -0
  297. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/dialogs/settings_dialog.py +0 -0
  298. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/main_window.py +0 -0
  299. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/models/__init__.py +0 -0
  300. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/models/session.py +0 -0
  301. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/models/station_model.py +0 -0
  302. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/panels/__init__.py +0 -0
  303. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/panels/agent_panel.py +0 -0
  304. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/panels/log_panel.py +0 -0
  305. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/panels/map_panel.py +0 -0
  306. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/panels/profile_panel.py +0 -0
  307. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/panels/qc_panel.py +0 -0
  308. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/panels/section_panel.py +0 -0
  309. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/panels/station_panel.py +0 -0
  310. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/dark_theme.qss +0 -0
  311. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/3d.svg +0 -0
  312. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/EDI-validator.svg +0 -0
  313. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/advanced-tools.svg +0 -0
  314. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/agents.svg +0 -0
  315. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/ai.svg +0 -0
  316. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/batch-export.svg +0 -0
  317. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/chat.svg +0 -0
  318. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/conversion.svg +0 -0
  319. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/coordinate-transformer.svg +0 -0
  320. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/coverage.svg +0 -0
  321. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/depth.svg +0 -0
  322. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/dimensionnality.svg +0 -0
  323. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/distorsion.svg +0 -0
  324. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/docs.svg +0 -0
  325. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/elevation.svg +0 -0
  326. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/export.svg +0 -0
  327. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/file.svg +0 -0
  328. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/format-converter.svg +0 -0
  329. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/forward.svg +0 -0
  330. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/frequency-editor.svg +0 -0
  331. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/github.svg +0 -0
  332. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/help.svg +0 -0
  333. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/impendance-tensor.svg +0 -0
  334. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/induction.svg +0 -0
  335. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/interpret.svg +0 -0
  336. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/inversion.svg +0 -0
  337. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/layered-model.svg +0 -0
  338. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/load-edis.svg +0 -0
  339. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/log.svg +0 -0
  340. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/map-view.svg +0 -0
  341. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/more.svg +0 -0
  342. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/open.svg +0 -0
  343. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/overview.svg +0 -0
  344. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/phase-tensor.svg +0 -0
  345. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/phase.svg +0 -0
  346. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/pipeline.svg +0 -0
  347. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/pop-out.svg +0 -0
  348. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/processing.svg +0 -0
  349. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/profile-view.svg +0 -0
  350. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/pycsamt-v2-symbol.ico +0 -0
  351. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/pycsamt-v2-symbol.svg +0 -0
  352. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/pycsamt.ico +0 -0
  353. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/pycsamt_256.png +0 -0
  354. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/pycsamt_logo.svg +0 -0
  355. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/qc.svg +0 -0
  356. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/quit.svg +0 -0
  357. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/recompute.svg +0 -0
  358. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/reset.svg +0 -0
  359. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/resistivity.svg +0 -0
  360. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/results.svg +0 -0
  361. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/save-session.svg +0 -0
  362. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/save.svg +0 -0
  363. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/shift.svg +0 -0
  364. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/sites-correction.svg +0 -0
  365. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/skew.svg +0 -0
  366. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/static-shift.svg +0 -0
  367. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/station-response.svg +0 -0
  368. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/strike-analyzer.svg +0 -0
  369. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/strike-profile.svg +0 -0
  370. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/summary.svg +0 -0
  371. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/survey-tools.svg +0 -0
  372. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/tdem.svg +0 -0
  373. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/text-strike.svg +0 -0
  374. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/tools.svg +0 -0
  375. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/topography.svg +0 -0
  376. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/icons/utilities.svg +0 -0
  377. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/resources/light_theme.qss +0 -0
  378. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/__init__.py +0 -0
  379. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/batch_export_tool.py +0 -0
  380. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/converter_tool.py +0 -0
  381. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/coord_tool.py +0 -0
  382. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/dimensionality_tool.py +0 -0
  383. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/elevation_tool.py +0 -0
  384. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/frequency_editor_tool.py +0 -0
  385. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/layered_model_tool.py +0 -0
  386. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/phase_tensor_map_tool.py +0 -0
  387. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/phase_tensor_strip_grid_tool.py +0 -0
  388. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/station_response_tool.py +0 -0
  389. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/strike_profile_tool.py +0 -0
  390. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/strike_tool.py +0 -0
  391. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/tools/validator_tool.py +0 -0
  392. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/__init__.py +0 -0
  393. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/agent_browser.py +0 -0
  394. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/category_bar.py +0 -0
  395. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/colorbar_widget.py +0 -0
  396. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/freq_selector.py +0 -0
  397. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/mpl_canvas.py +0 -0
  398. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/overlay_combo.py +0 -0
  399. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/searchable_combo.py +0 -0
  400. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/settings_pages/__init__.py +0 -0
  401. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/settings_pages/base_page.py +0 -0
  402. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/settings_pages/display_page.py +0 -0
  403. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/settings_pages/interpretation_page.py +0 -0
  404. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/settings_pages/pseudosections_page.py +0 -0
  405. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/settings_pages/topography_page.py +0 -0
  406. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/settings_pages/view_controls_page.py +0 -0
  407. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/station_detail.py +0 -0
  408. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/station_table.py +0 -0
  409. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/widgets/survey_overview.py +0 -0
  410. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/__init__.py +0 -0
  411. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/_base.py +0 -0
  412. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/advanced_window.py +0 -0
  413. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/agent_window.py +0 -0
  414. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/correction_window.py +0 -0
  415. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/forward_window.py +0 -0
  416. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/interp_window.py +0 -0
  417. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/inversion_window.py +0 -0
  418. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/map_window.py +0 -0
  419. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/pipeline_window.py +0 -0
  420. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/profile_window.py +0 -0
  421. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/publication_view_dialog.py +0 -0
  422. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/qc_window.py +0 -0
  423. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/windows/tdem_window.py +0 -0
  424. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/workers/__init__.py +0 -0
  425. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/workers/agent_worker.py +0 -0
  426. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/workers/ai_inversion_worker.py +0 -0
  427. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/workers/forward_worker.py +0 -0
  428. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/workers/inversion_worker.py +0 -0
  429. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/workers/loader_worker.py +0 -0
  430. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/workers/pipeline_worker.py +0 -0
  431. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/desktop/workers/recompute_worker.py +0 -0
  432. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/__init__.py +0 -0
  433. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/__main__.py +0 -0
  434. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/_ids.py +0 -0
  435. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/_render.py +0 -0
  436. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/app.py +0 -0
  437. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/assets/edi_loader.js +0 -0
  438. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/assets/favicon.ico +0 -0
  439. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/assets/mapview.css +0 -0
  440. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/assets/modem_loader.js +0 -0
  441. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/cache.py +0 -0
  442. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/callbacks/__init__.py +0 -0
  443. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/callbacks/chrome.py +0 -0
  444. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/callbacks/controls.py +0 -0
  445. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/callbacks/export.py +0 -0
  446. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/callbacks/inversion_import.py +0 -0
  447. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/callbacks/lines.py +0 -0
  448. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/callbacks/load.py +0 -0
  449. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/callbacks/session.py +0 -0
  450. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/callbacks/settings.py +0 -0
  451. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/callbacks/toolbar.py +0 -0
  452. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/callbacks/topo.py +0 -0
  453. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/callbacks/view.py +0 -0
  454. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/mapview/layout.py +0 -0
  455. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/__init__.py +0 -0
  456. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/__main__.py +0 -0
  457. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/app.py +0 -0
  458. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/assets/analytics_carousel.js +0 -0
  459. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/assets/custom.css +0 -0
  460. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/assets/favicon.ico +0 -0
  461. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/assets/folder_loader.js +0 -0
  462. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/assets/popout.js +0 -0
  463. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/assets/profile_panzoom.js +0 -0
  464. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/cache.py +0 -0
  465. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/__init__.py +0 -0
  466. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/_session.py +0 -0
  467. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/advanced.py +0 -0
  468. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/agents.py +0 -0
  469. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/correction.py +0 -0
  470. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/dashboard.py +0 -0
  471. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/data.py +0 -0
  472. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/forward.py +0 -0
  473. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/freq.py +0 -0
  474. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/help.py +0 -0
  475. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/interp.py +0 -0
  476. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/inv_results.py +0 -0
  477. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/inversion.py +0 -0
  478. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/lines.py +0 -0
  479. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/map.py +0 -0
  480. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/map3d.py +0 -0
  481. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/navigation.py +0 -0
  482. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/pipeline.py +0 -0
  483. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/profile.py +0 -0
  484. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/qc.py +0 -0
  485. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/recompute.py +0 -0
  486. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/settings.py +0 -0
  487. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/tdem.py +0 -0
  488. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/theme.py +0 -0
  489. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks/tools.py +0 -0
  490. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/callbacks.py +0 -0
  491. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/layout.py +0 -0
  492. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/__init__.py +0 -0
  493. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/advanced.py +0 -0
  494. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/agents_page.py +0 -0
  495. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/correction.py +0 -0
  496. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/forward.py +0 -0
  497. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/home.py +0 -0
  498. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/interpretation.py +0 -0
  499. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/inv_results.py +0 -0
  500. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/inversion.py +0 -0
  501. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/map3d.py +0 -0
  502. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/pipeline.py +0 -0
  503. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/qc_page.py +0 -0
  504. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/pages/tdem.py +0 -0
  505. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/utils.py +0 -0
  506. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/app/web/utils_pinn.py +0 -0
  507. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/__init__.py +0 -0
  508. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/evals/__init__.py +0 -0
  509. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/evals/harness.py +0 -0
  510. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/memory/__init__.py +0 -0
  511. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/memory/project_state.py +0 -0
  512. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/memory/session_state.py +0 -0
  513. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/memory/workflow_history.py +0 -0
  514. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/__init__.py +0 -0
  515. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/__main__.py +0 -0
  516. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/ast_indexer.py +0 -0
  517. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/cli.py +0 -0
  518. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/config.py +0 -0
  519. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/context_builder.py +0 -0
  520. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/doc_indexer.py +0 -0
  521. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/embeddings.py +0 -0
  522. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/expansion.py +0 -0
  523. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/feedback.py +0 -0
  524. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/graph.py +0 -0
  525. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/index_store.py +0 -0
  526. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/ingest.py +0 -0
  527. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/rerank.py +0 -0
  528. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/retriever.py +0 -0
  529. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/rewrite.py +0 -0
  530. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/rag/schemas.py +0 -0
  531. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/tools/__init__.py +0 -0
  532. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/tools/plot_tools.py +0 -0
  533. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/tools/project_registry.py +0 -0
  534. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/tools/validation_tools.py +0 -0
  535. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/assistant/tools/workflow_tools.py +0 -0
  536. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/backends/__init__.py +0 -0
  537. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/backends/_base.py +0 -0
  538. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/backends/_config.py +0 -0
  539. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/backends/_detect.py +0 -0
  540. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/backends/_tensorflow.py +0 -0
  541. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/backends/_torch.py +0 -0
  542. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/__init__.py +0 -0
  543. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/__main__.py +0 -0
  544. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/_base.py +0 -0
  545. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/__init__.py +0 -0
  546. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/avg/__init__.py +0 -0
  547. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/avg/_base.py +0 -0
  548. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/avg/correct.py +0 -0
  549. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/avg/export.py +0 -0
  550. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/avg/info.py +0 -0
  551. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/avg/stations.py +0 -0
  552. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/avg/validate.py +0 -0
  553. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/build/__init__.py +0 -0
  554. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/build/_base.py +0 -0
  555. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/build/commands.py +0 -0
  556. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/config/__init__.py +0 -0
  557. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/config/_base.py +0 -0
  558. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/config/config.py +0 -0
  559. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/convert.py +0 -0
  560. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/edi/__init__.py +0 -0
  561. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/edi/_base.py +0 -0
  562. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/edi/info.py +0 -0
  563. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/edi/profile.py +0 -0
  564. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/edi/rotate.py +0 -0
  565. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/edi/select.py +0 -0
  566. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/edi/stations.py +0 -0
  567. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/edi/validate.py +0 -0
  568. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/forward/__init__.py +0 -0
  569. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/forward/_base.py +0 -0
  570. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/forward/generate.py +0 -0
  571. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/forward/model.py +0 -0
  572. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/forward/run.py +0 -0
  573. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/info.py +0 -0
  574. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/interp/__init__.py +0 -0
  575. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/interp/_base.py +0 -0
  576. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/interp/classify.py +0 -0
  577. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/interp/export.py +0 -0
  578. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/interp/rocks.py +0 -0
  579. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/invert/__init__.py +0 -0
  580. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/invert/_base.py +0 -0
  581. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/invert/build.py +0 -0
  582. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/invert/plot.py +0 -0
  583. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/invert/results.py +0 -0
  584. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/invert/run.py +0 -0
  585. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/invert/status.py +0 -0
  586. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/jones/__init__.py +0 -0
  587. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/jones/_base.py +0 -0
  588. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/jones/blocks.py +0 -0
  589. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/jones/info.py +0 -0
  590. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/jones/select.py +0 -0
  591. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/jones/stations.py +0 -0
  592. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/jones/validate.py +0 -0
  593. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/map/__init__.py +0 -0
  594. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/map/_base.py +0 -0
  595. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/map/plot.py +0 -0
  596. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/map/stations.py +0 -0
  597. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/pipe/__init__.py +0 -0
  598. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/pipe/_base.py +0 -0
  599. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/pipe/init.py +0 -0
  600. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/pipe/presets.py +0 -0
  601. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/pipe/run.py +0 -0
  602. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/pipe/show.py +0 -0
  603. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/pipe/steps.py +0 -0
  604. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/site/__init__.py +0 -0
  605. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/site/_base.py +0 -0
  606. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/site/compute.py +0 -0
  607. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/site/edit.py +0 -0
  608. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/site/export.py +0 -0
  609. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/site/info.py +0 -0
  610. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/site/recompute.py +0 -0
  611. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/site/select.py +0 -0
  612. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/survey.py +0 -0
  613. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/tdem/__init__.py +0 -0
  614. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/tdem/_base.py +0 -0
  615. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/tdem/convert.py +0 -0
  616. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/tdem/info.py +0 -0
  617. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/tdem/plot.py +0 -0
  618. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/transform/__init__.py +0 -0
  619. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/transform/_base.py +0 -0
  620. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/transform/avg.py +0 -0
  621. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/transform/j.py +0 -0
  622. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/commands/transform/spectra.py +0 -0
  623. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/cli/survey.py +0 -0
  624. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/compat/__init__.py +0 -0
  625. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/compat/aliases.py +0 -0
  626. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/compat/matplotlib.py +0 -0
  627. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/compat/numpy.py +0 -0
  628. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/compat/pandas.py +0 -0
  629. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/compat/python.py +0 -0
  630. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/compat/qt.py +0 -0
  631. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/compat/sklearn.py +0 -0
  632. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/config.py +0 -0
  633. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/constants.py +0 -0
  634. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/context.py +0 -0
  635. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/core/__init__.py +0 -0
  636. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/core/base.py +0 -0
  637. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/core/config.py +0 -0
  638. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/core/mixins.py +0 -0
  639. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/decorators.py +0 -0
  640. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/__init__.py +0 -0
  641. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/_core.py +0 -0
  642. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/_rose_style.py +0 -0
  643. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/advanced.py +0 -0
  644. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/anisotropy.py +0 -0
  645. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/csumt.py +0 -0
  646. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/diag.py +0 -0
  647. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/dimensionality.py +0 -0
  648. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/fieldzone.py +0 -0
  649. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/frequency.py +0 -0
  650. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/gb.py +0 -0
  651. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/gradient_imaging.py +0 -0
  652. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/impedance.py +0 -0
  653. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/inspect.py +0 -0
  654. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/lcurve.py +0 -0
  655. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/legacy.py +0 -0
  656. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/qc.py +0 -0
  657. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/remove_noise.py +0 -0
  658. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/skew.py +0 -0
  659. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/source_array.py +0 -0
  660. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/source_effects.py +0 -0
  661. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/spectra.py +0 -0
  662. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/ss.py +0 -0
  663. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/strike.py +0 -0
  664. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/tensor.py +0 -0
  665. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/emtools/tf.py +0 -0
  666. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/exceptions.py +0 -0
  667. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/__init__.py +0 -0
  668. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/batch.py +0 -0
  669. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/config.py +0 -0
  670. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/config2d.py +0 -0
  671. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/config3d.py +0 -0
  672. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/em2d.py +0 -0
  673. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/em3d.py +0 -0
  674. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/grid2d.py +0 -0
  675. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/grid3d.py +0 -0
  676. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/__init__.py +0 -0
  677. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/adapters.py +0 -0
  678. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/backends.py +0 -0
  679. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/batch.py +0 -0
  680. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/benchmarks.py +0 -0
  681. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/cache.py +0 -0
  682. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/contracts.py +0 -0
  683. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/contracts_tri.py +0 -0
  684. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/external.py +0 -0
  685. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/mare2dem.py +0 -0
  686. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/mesh.py +0 -0
  687. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/modem3d.py +0 -0
  688. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/mt2d.py +0 -0
  689. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/mt3d.py +0 -0
  690. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/tri_fem2d.py +0 -0
  691. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/maxwell/tri_mesh_gen.py +0 -0
  692. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/noise.py +0 -0
  693. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/plot.py +0 -0
  694. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/forward/synthetic.py +0 -0
  695. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/gis/__init__.py +0 -0
  696. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/gis/config.py +0 -0
  697. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/gis/constants.py +0 -0
  698. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/gis/coord_correction.py +0 -0
  699. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/gis/utils.py +0 -0
  700. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/__init__.py +0 -0
  701. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/_base.py +0 -0
  702. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/borehole.py +0 -0
  703. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/calibrate.py +0 -0
  704. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/constraints.py +0 -0
  705. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/export.py +0 -0
  706. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/fusion.py +0 -0
  707. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/hydro.py +0 -0
  708. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/hydromodel.py +0 -0
  709. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/lithology.py +0 -0
  710. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/petrophysics.py +0 -0
  711. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/plot.py +0 -0
  712. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/timelapse.py +0 -0
  713. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/interp/uncertainty.py +0 -0
  714. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/__init__.py +0 -0
  715. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/_method.py +0 -0
  716. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/amt/__init__.py +0 -0
  717. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/amt/inv1d.py +0 -0
  718. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/amt/inv2d.py +0 -0
  719. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/backends/__init__.py +0 -0
  720. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/backends/builtin.py +0 -0
  721. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/backends/modem.py +0 -0
  722. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/backends/occam2d.py +0 -0
  723. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/backends/pygimli.py +0 -0
  724. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/backends/simpeg.py +0 -0
  725. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/base.py +0 -0
  726. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/config.py +0 -0
  727. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/data.py +0 -0
  728. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/emap/__init__.py +0 -0
  729. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/emap/inv2d.py +0 -0
  730. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/model.py +0 -0
  731. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/mt/__init__.py +0 -0
  732. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/mt/inv1d.py +0 -0
  733. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/mt/inv2d.py +0 -0
  734. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/mt/inv3d.py +0 -0
  735. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/tdem/__init__.py +0 -0
  736. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/tdem/inv1d.py +0 -0
  737. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/tdem/inv2d.py +0 -0
  738. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/inversion/workflow.py +0 -0
  739. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/io/__init__.py +0 -0
  740. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/io/config.py +0 -0
  741. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/io/parsers.py +0 -0
  742. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/__init__.py +0 -0
  743. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/_common.py +0 -0
  744. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/bridge.py +0 -0
  745. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/core.py +0 -0
  746. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/edge.py +0 -0
  747. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/edge_amt.py +0 -0
  748. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/edge_csamt.py +0 -0
  749. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/edge_csem.py +0 -0
  750. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/methods.py +0 -0
  751. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/monitoring.py +0 -0
  752. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/power.py +0 -0
  753. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/protocols/__init__.py +0 -0
  754. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/protocols/base.py +0 -0
  755. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/protocols/file.py +0 -0
  756. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/protocols/http.py +0 -0
  757. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/protocols/mqtt.py +0 -0
  758. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/protocols/serial.py +0 -0
  759. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/protocols/store_forward.py +0 -0
  760. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/protocols/websocket.py +0 -0
  761. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/provenance.py +0 -0
  762. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/schemas.py +0 -0
  763. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/security.py +0 -0
  764. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/session.py +0 -0
  765. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/sim.py +0 -0
  766. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/station.py +0 -0
  767. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/iot/sync.py +0 -0
  768. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/__init__.py +0 -0
  769. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/base.py +0 -0
  770. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/components.py +0 -0
  771. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/config.py +0 -0
  772. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/utils.py +0 -0
  773. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/jones/xa.py +0 -0
  774. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/loc.py +0 -0
  775. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/log/__init__.py +0 -0
  776. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/log/_config.py +0 -0
  777. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/log/logger.py +0 -0
  778. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/log/p.configlog.yml +0 -0
  779. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/__init__.py +0 -0
  780. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/_app.py +0 -0
  781. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/_backends.py +0 -0
  782. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/_core.py +0 -0
  783. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/config.py +0 -0
  784. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/export.py +0 -0
  785. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/geometry.py +0 -0
  786. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/inversion.py +0 -0
  787. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/loader.py +0 -0
  788. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/overlays.py +0 -0
  789. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/profile.py +0 -0
  790. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/station.py +0 -0
  791. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/styles.py +0 -0
  792. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/topo.py +0 -0
  793. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/view.py +0 -0
  794. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/map/volume.py +0 -0
  795. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/metadata/__init__.py +0 -0
  796. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/metadata/_property.py +0 -0
  797. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/metadata/e.g.data.json +0 -0
  798. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/metadata/e.g.data.yml +0 -0
  799. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/metadata/frequency.py +0 -0
  800. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/metadata/geology.py +0 -0
  801. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/metadata/instrument.py +0 -0
  802. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/metadata/quality.py +0 -0
  803. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/metadata/rocks.py +0 -0
  804. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/metadata/survey.py +0 -0
  805. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/__init__.py +0 -0
  806. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/_solver_build/README.md +0 -0
  807. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/_solver_build/build.sh +0 -0
  808. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/_solver_build/lib/common.sh +0 -0
  809. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/_solver_build/mare2dem.sh +0 -0
  810. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/_solver_build/modem2d.sh +0 -0
  811. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/_solver_build/modem3d.sh +0 -0
  812. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/_solver_build/occam2d.sh +0 -0
  813. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/config_io.py +0 -0
  814. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/__init__.py +0 -0
  815. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/builder.py +0 -0
  816. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/data.py +0 -0
  817. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/diff.py +0 -0
  818. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/doc.py +0 -0
  819. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/edi.py +0 -0
  820. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/geom/__init__.py +0 -0
  821. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/geom/area_of_interest.py +0 -0
  822. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/geom/centroids.py +0 -0
  823. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/geom/intersections.py +0 -0
  824. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/geom/line_orientation.py +0 -0
  825. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/geom/simplify.py +0 -0
  826. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/geom/simplify_poly.py +0 -0
  827. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/geom/topo.py +0 -0
  828. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/geom/triangle_regions.py +0 -0
  829. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/geom/utm.py +0 -0
  830. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/grid_to_m2d.py +0 -0
  831. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/import_topo.py +0 -0
  832. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/iotools/__init__.py +0 -0
  833. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/iotools/codes.py +0 -0
  834. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/iotools/data_group.py +0 -0
  835. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/iotools/emdata.py +0 -0
  836. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/iotools/group_rms.py +0 -0
  837. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/iotools/most_recent.py +0 -0
  838. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/iotools/poly.py +0 -0
  839. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/iotools/resistivity.py +0 -0
  840. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/iotools/settings.py +0 -0
  841. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/log.py +0 -0
  842. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/merge.py +0 -0
  843. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/mesh.py +0 -0
  844. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/noise.py +0 -0
  845. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/plot.py +0 -0
  846. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/results.py +0 -0
  847. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/survey.py +0 -0
  848. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/tri_mesh.py +0 -0
  849. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/triangle_exec.py +0 -0
  850. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/validation.py +0 -0
  851. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/mare2dem/zmm.py +0 -0
  852. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/__init__.py +0 -0
  853. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/DICT/dataTypes.f90 +0 -0
  854. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/DICT/receivers.f90 +0 -0
  855. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/DICT/transmitters.f90 +0 -0
  856. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/DataFunc.f90 +0 -0
  857. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/DataIO.f90 +0 -0
  858. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/EMfield.f90 +0 -0
  859. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/EMfieldInterp.f90 +0 -0
  860. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/FWD/FwdTEmod.f90 +0 -0
  861. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/FWD/FwdTMmod.f90 +0 -0
  862. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/FWD/WSfwd2D.f90 +0 -0
  863. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/ForwardSolver.f90 +0 -0
  864. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/GridDef.f90 +0 -0
  865. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/Main.f90 +0 -0
  866. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/SolnSpace.f90 +0 -0
  867. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/SolverSens.f90 +0 -0
  868. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/Sub_MPI.f90 +0 -0
  869. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/ioMod/ioAscii.f90 +0 -0
  870. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/ioMod/ioBinary.f90 +0 -0
  871. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/modelParam/ModelMap.inc +0 -0
  872. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/modelParam/ModelParam_MPI.inc +0 -0
  873. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/modelParam/ModelSpace.f90 +0 -0
  874. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/modelParam/modelCov/Diffusion.hd +0 -0
  875. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/modelParam/modelCov/Diffusion.inc +0 -0
  876. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/modelParam/modelParamIO/Binary.inc +0 -0
  877. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/modelParam/modelParamIO/Mackie.inc +0 -0
  878. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/2D_MT/mtInvSetup.f90 +0 -0
  879. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/INV/DCG.f90 +0 -0
  880. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/INV/INVcore.f90 +0 -0
  881. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/INV/NLCG.f90 +0 -0
  882. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/LAPACK/wsBLAS.f90 +0 -0
  883. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/LAPACK/wsLAPACK.f90 +0 -0
  884. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/LAPACK/wsio.f90 +0 -0
  885. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/MPI/Declaration_MPI.f90 +0 -0
  886. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/MPI/Main_MPI.f90 +0 -0
  887. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/Makefile +0 -0
  888. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/Mod2DMT.f90 +0 -0
  889. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/SENS/DataSens.f90 +0 -0
  890. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/SENS/DataSpace.f90 +0 -0
  891. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/SENS/SensComp.f90 +0 -0
  892. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/SENS/SensMatrix.f90 +0 -0
  893. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/SENS/SymmetryTest.f90 +0 -0
  894. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/UTILS/elements.f90 +0 -0
  895. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/UTILS/file_units.f90 +0 -0
  896. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/UTILS/math_constants.f90 +0 -0
  897. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/UTILS/polpak.f90 +0 -0
  898. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/UTILS/utilities.f90 +0 -0
  899. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/2D/UserCtrl.f90 +0 -0
  900. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/DICT/dataTypes.f90 +0 -0
  901. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/DICT/receivers.f90 +0 -0
  902. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/DICT/transmitters.f90 +0 -0
  903. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/DataFunc.f90 +0 -0
  904. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/DataIO.f90 +0 -0
  905. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/EMfieldInterp.f90 +0 -0
  906. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/FWD/EMsolve3D.f90 +0 -0
  907. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/FWD/Mod2d/FWDtest.f90 +0 -0
  908. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/FWD/Mod2d/FwdTEmod.f90 +0 -0
  909. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/FWD/Mod2d/FwdTMmod.f90 +0 -0
  910. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/FWD/Mod2d/WSfwd1Dmod.f90 +0 -0
  911. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/FWD/Mod2d/WSfwd2Dmod.f90 +0 -0
  912. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/FWD/Mod2d/WSfwd2Dpar.f90 +0 -0
  913. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/FWD/Mod2d/WSutils.f90 +0 -0
  914. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/FWD/boundary_ws.f90 +0 -0
  915. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/FWD/modelOperator3D.f90 +0 -0
  916. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/FWD/nestedEM.f90 +0 -0
  917. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/FWD/solver.f90 +0 -0
  918. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/ForwardSolver.f90 +0 -0
  919. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/GridCalc.f90 +0 -0
  920. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/GridDef.f90 +0 -0
  921. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/Main.f90 +0 -0
  922. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/SolnSpace.f90 +0 -0
  923. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/SolverSens.f90 +0 -0
  924. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/Sub_MPI.f90 +0 -0
  925. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/ioMod/ioAscii.f90 +0 -0
  926. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/ioMod/ioBinary.f90 +0 -0
  927. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/modelParam/ModelMap.inc +0 -0
  928. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/modelParam/ModelParam_MPI.inc +0 -0
  929. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/modelParam/ModelSpace.f90 +0 -0
  930. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/modelParam/modelCov/Diffusion.hd +0 -0
  931. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/modelParam/modelCov/Diffusion.inc +0 -0
  932. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/modelParam/modelCov/RecursiveAR.hd +0 -0
  933. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/modelParam/modelCov/RecursiveAR.inc +0 -0
  934. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/modelParam/modelParamIO/Binary.inc +0 -0
  935. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/modelParam/modelParamIO/Mackie.inc +0 -0
  936. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/modelParam/modelParamIO/WS.inc +0 -0
  937. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/3D_MT/mtInvSetup.f90 +0 -0
  938. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/FIELDS/FiniteDiff3D/sg_boundary.f90 +0 -0
  939. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/FIELDS/FiniteDiff3D/sg_diff_oper.f90 +0 -0
  940. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/FIELDS/FiniteDiff3D/sg_scalar.f90 +0 -0
  941. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/FIELDS/FiniteDiff3D/sg_sparse_vector.f90 +0 -0
  942. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/FIELDS/FiniteDiff3D/sg_spherical.f90 +0 -0
  943. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/FIELDS/FiniteDiff3D/sg_vector.f90 +0 -0
  944. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/INV/DCG.f90 +0 -0
  945. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/INV/INVcore.f90 +0 -0
  946. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/INV/NLCG.f90 +0 -0
  947. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/LAPACK/wsBLAS.f90 +0 -0
  948. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/LAPACK/wsLAPACK.f90 +0 -0
  949. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/LAPACK/wsio.f90 +0 -0
  950. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/MPI/Declaration_MPI.f90 +0 -0
  951. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/MPI/Main_MPI.f90 +0 -0
  952. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/Makefile +0 -0
  953. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/Mod3DMT.f90 +0 -0
  954. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/SENS/DataSens.f90 +0 -0
  955. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/SENS/DataSpace.f90 +0 -0
  956. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/SENS/SensComp.f90 +0 -0
  957. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/SENS/SensMatrix.f90 +0 -0
  958. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/SENS/SymmetryTest.f90 +0 -0
  959. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/UTILS/elements.f90 +0 -0
  960. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/UTILS/file_units.f90 +0 -0
  961. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/UTILS/math_constants.f90 +0 -0
  962. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/UTILS/polpak.f90 +0 -0
  963. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/UTILS/utilities.f90 +0 -0
  964. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/3D/UserCtrl.f90 +0 -0
  965. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/COPYRIGHT +0 -0
  966. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/Code_availability.txt +0 -0
  967. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/Egbert&Kelbert_2012_ModEM_GJI.pdf +0 -0
  968. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/Kelbert_et_al_2014_ModEM.pdf +0 -0
  969. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/README +0 -0
  970. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/User_instructions.txt +0 -0
  971. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/_source/install_sources.sh +0 -0
  972. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/doc.py +0 -0
  973. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/iotools/__init__.py +0 -0
  974. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/iotools/export.py +0 -0
  975. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/iotools/impedance.py +0 -0
  976. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/iotools/interpolate.py +0 -0
  977. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/iotools/mackie.py +0 -0
  978. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/iotools/utils.py +0 -0
  979. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/plot.py +0 -0
  980. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/section.py +0 -0
  981. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/modem/validation.py +0 -0
  982. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/_source/MT2D.f90 +0 -0
  983. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/_source/MT2DModules.f90 +0 -0
  984. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/_source/Makefile +0 -0
  985. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/_source/Occam.f90 +0 -0
  986. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/_source/OccamModules.f90 +0 -0
  987. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/base.py +0 -0
  988. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/doc.py +0 -0
  989. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/models/occam2d/validation.py +0 -0
  990. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/pipeline/__init__.py +0 -0
  991. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/pipeline/_base.py +0 -0
  992. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/pipeline/_config.py +0 -0
  993. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/pipeline/_output.py +0 -0
  994. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/pipeline/_pipeline.py +0 -0
  995. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/pipeline/_presets.py +0 -0
  996. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/pipeline/_registry.py +0 -0
  997. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/pipeline/_report.py +0 -0
  998. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/pipeline/_steps.py +0 -0
  999. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/pipeline/plot.py +0 -0
  1000. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/pipeline/stratagem.py +0 -0
  1001. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/projection.py +0 -0
  1002. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/property.py +0 -0
  1003. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/__init__.py +0 -0
  1004. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/base.py +0 -0
  1005. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/components.py +0 -0
  1006. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/config.py +0 -0
  1007. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/meas.py +0 -0
  1008. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/mtemap.py +0 -0
  1009. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/ops.py +0 -0
  1010. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/property.py +0 -0
  1011. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/schema.py +0 -0
  1012. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/sections.py +0 -0
  1013. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/seg/xa.py +0 -0
  1014. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/session.py +0 -0
  1015. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/__init__.py +0 -0
  1016. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/lines.py +0 -0
  1017. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/location.py +0 -0
  1018. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/metadata.py +0 -0
  1019. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/profile.py +0 -0
  1020. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/recompute.py +0 -0
  1021. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/report.py +0 -0
  1022. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/site/utils.py +0 -0
  1023. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/stratagem/__init__.py +0 -0
  1024. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/stratagem/gis_correct.py +0 -0
  1025. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/stratagem/io.py +0 -0
  1026. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/stratagem/process.py +0 -0
  1027. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/stratagem/qc.py +0 -0
  1028. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/stratagem/rename.py +0 -0
  1029. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/stratagem/survey.py +0 -0
  1030. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/__init__.py +0 -0
  1031. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/_base.py +0 -0
  1032. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/avg.py +0 -0
  1033. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/coordinates.py +0 -0
  1034. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/io.py +0 -0
  1035. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/log.py +0 -0
  1036. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/plot.py +0 -0
  1037. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/reader.py +0 -0
  1038. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/survey.py +0 -0
  1039. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/transform.py +0 -0
  1040. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/waveform.py +0 -0
  1041. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/workflow.py +0 -0
  1042. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/tdem/zplot.py +0 -0
  1043. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/topo/__init__.py +0 -0
  1044. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/topo/config.py +0 -0
  1045. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/topo/drape.py +0 -0
  1046. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/topo/extract.py +0 -0
  1047. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/topo/overlay.py +0 -0
  1048. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/topo/section.py +0 -0
  1049. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/transformers/__init__.py +0 -0
  1050. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/transformers/spectra.py +0 -0
  1051. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/transformers/ts.py +0 -0
  1052. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ts/__init__.py +0 -0
  1053. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ts/_base.py +0 -0
  1054. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ts/convert.py +0 -0
  1055. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ts/process.py +0 -0
  1056. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/ts/readers.py +0 -0
  1057. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/__init__.py +0 -0
  1058. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/_dependency.py +0 -0
  1059. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/arrayops.py +0 -0
  1060. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/cleaner.py +0 -0
  1061. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/conversion.py +0 -0
  1062. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/deps.py +0 -0
  1063. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/em.py +0 -0
  1064. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/exmath.py +0 -0
  1065. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/features.py +0 -0
  1066. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/funcutils.py +0 -0
  1067. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/generic.py +0 -0
  1068. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/handlers.py +0 -0
  1069. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/io.py +0 -0
  1070. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/mathext.py +0 -0
  1071. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/plot.py +0 -0
  1072. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/progress.py +0 -0
  1073. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/stats.py +0 -0
  1074. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/text.py +0 -0
  1075. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/validation.py +0 -0
  1076. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/version.py +0 -0
  1077. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/utils/zmath.py +0 -0
  1078. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/z/__init__.py +0 -0
  1079. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/z/utils.py +0 -0
  1080. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/__init__.py +0 -0
  1081. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/_transfer.py +0 -0
  1082. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/base.py +0 -0
  1083. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/components.py +0 -0
  1084. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/config.py +0 -0
  1085. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/heads.py +0 -0
  1086. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/info.py +0 -0
  1087. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/meas.py +0 -0
  1088. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/ops.py +0 -0
  1089. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/property.py +0 -0
  1090. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/qc.py +0 -0
  1091. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/schema.py +0 -0
  1092. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/survey.py +0 -0
  1093. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/tensor.py +0 -0
  1094. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/tipper.py +0 -0
  1095. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/utils.py +0 -0
  1096. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/var_pc.py +0 -0
  1097. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt/zonge/z.py +0 -0
  1098. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt.egg-info/SOURCES.txt +0 -0
  1099. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt.egg-info/dependency_links.txt +0 -0
  1100. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt.egg-info/entry_points.txt +0 -0
  1101. {pycsamt-2.2.0 → pycsamt-2.2.2}/pycsamt.egg-info/top_level.txt +0 -0
  1102. {pycsamt-2.2.0 → pycsamt-2.2.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycsamt
3
- Version: 2.2.0
3
+ Version: 2.2.2
4
4
  Summary: Scientific Python for electromagnetic geophysics — processing, inversion, AI agents, and apps
5
5
  Author-email: Laurent Kouadio <etanoyau@gmail.com>
6
6
  Maintainer-email: Laurent Kouadio <etanoyau@gmail.com>
@@ -36,6 +36,9 @@ Requires-Dist: tqdm>=4.60
36
36
  Requires-Dist: click>=8.1
37
37
  Requires-Dist: rich>=13.0
38
38
  Requires-Dist: typing_extensions>=4.1; python_version < "3.10"
39
+ Requires-Dist: scikit-learn>=1.1
40
+ Requires-Dist: empymod>=2.5
41
+ Requires-Dist: h5py>=3.8
39
42
  Provides-Extra: torch
40
43
  Requires-Dist: torch>=1.13; extra == "torch"
41
44
  Provides-Extra: tensorflow
@@ -44,7 +47,6 @@ Provides-Extra: geo
44
47
  Requires-Dist: pyproj>=3.3; extra == "geo"
45
48
  Requires-Dist: xarray>=2022.6; extra == "geo"
46
49
  Requires-Dist: contextily>=1.6; extra == "geo"
47
- Requires-Dist: h5py>=3.8; extra == "geo"
48
50
  Provides-Extra: dev
49
51
  Requires-Dist: pytest>=7.2; extra == "dev"
50
52
  Requires-Dist: pytest-cov>=4.0; extra == "dev"
@@ -52,7 +54,6 @@ Requires-Dist: pytest-timeout>=2.3; extra == "dev"
52
54
  Requires-Dist: pytest-xdist>=3.5; extra == "dev"
53
55
  Requires-Dist: ruff>=0.4; extra == "dev"
54
56
  Requires-Dist: pre-commit>=3.0; extra == "dev"
55
- Requires-Dist: scikit-learn>=1.1; extra == "dev"
56
57
  Provides-Extra: docs
57
58
  Requires-Dist: sphinx>=7.2; extra == "docs"
58
59
  Requires-Dist: pydata-sphinx-theme>=0.15; extra == "docs"
@@ -17,7 +17,7 @@ try:
17
17
 
18
18
  __version__ = _pkg_version(__name__)
19
19
  except Exception:
20
- __version__ = "2.2.0"
20
+ __version__ = "2.2.2"
21
21
 
22
22
  # ── Removed v1 names ──────────────────────────────────────────────────────────
23
23
  # Defined BEFORE logging (and before __getattr__) so this dict is always
@@ -145,8 +145,8 @@ class Session(CoreObject):
145
145
 
146
146
  References
147
147
  ----------
148
- .. [1] Python Stdlib. *context managers* (`with` statement).
149
- .. [2] NumPy. *np.savez_compressed* used by registry packers.
148
+ .. [Session-1] Python Stdlib. *context managers* (`with` statement).
149
+ .. [Session-2] NumPy. *np.savez_compressed* used by registry packers.
150
150
  """
151
151
 
152
152
  def __init__(
@@ -473,8 +473,8 @@ class Normalize(CoreObject):
473
473
 
474
474
  References
475
475
  ----------
476
- .. [1] D. Wight (1991). *SEG MT/EMAP EDI Standard*.
477
- .. [2] Zonge International. *AVG data format*, tech notes.
476
+ .. [Normalize-1] D. Wight (1991). *SEG MT/EMAP EDI Standard*.
477
+ .. [Normalize-2] Zonge International. *AVG data format*, tech notes.
478
478
  """
479
479
 
480
480
  def __init__(
@@ -107,19 +107,10 @@ Each token is a format extension (without the leading dot):
107
107
  Supported formats: ``png``, ``svg``, ``pdf``, ``eps``, ``tiff``,
108
108
  ``jpg``/``jpeg``.
109
109
 
110
- PlotConfig attributes
111
- ---------------------
112
- .. autosummary::
113
-
114
- PlotConfig.fmt
115
- PlotConfig.base_fmt
116
- PlotConfig.dpi
117
- PlotConfig.bbox_inches
118
- PlotConfig.transparent
119
- PlotConfig.facecolor
120
- PlotConfig.savedir
121
- PlotConfig.close_after_save
122
- PlotConfig.verbose
110
+ See :class:`PlotConfig` below for the full list of configurable
111
+ attributes (``fmt``, ``base_fmt``, ``dpi``, ``bbox_inches``,
112
+ ``transparent``, ``facecolor``, ``savedir``, ``close_after_save``,
113
+ ``verbose``).
123
114
  """
124
115
 
125
116
  from __future__ import annotations
@@ -56,9 +56,9 @@ class TerminalSize:
56
56
 
57
57
  References
58
58
  ----------
59
- .. [1] Python Software Foundation. Python Language Reference, version 3.9.
59
+ .. [TerminalSize-1] Python Software Foundation. Python Language Reference, version 3.9.
60
60
  Available at http://www.python.org
61
- .. [2] Python `shutil` module documentation. Available at
61
+ .. [TerminalSize-2] Python `shutil` module documentation. Available at
62
62
  https://docs.python.org/3/library/shutil.html#get_terminal_size
63
63
  """
64
64
 
@@ -667,7 +667,7 @@ def get_table_width_from(
667
667
 
668
668
  References
669
669
  ----------
670
- .. [1] McKinney, Wes. "Data Structures for Statistical Computing in Python."
670
+ .. [get-table-width-from-1] McKinney, Wes. "Data Structures for Statistical Computing in Python."
671
671
  Proceedings of the 9th Python in Science Conference. 2010.
672
672
  """
673
673
  border_lines = [
@@ -1452,9 +1452,9 @@ def count_functions(
1452
1452
 
1453
1453
  References
1454
1454
  ----------
1455
- .. [1] Python Software Foundation. Python Language Reference, version 3.9.
1455
+ .. [count-functions-1] Python Software Foundation. Python Language Reference, version 3.9.
1456
1456
  Available at http://www.python.org
1457
- .. [2] Python `ast` module documentation. Available at
1457
+ .. [count-functions-2] Python `ast` module documentation. Available at
1458
1458
  https://docs.python.org/3/library/ast.html
1459
1459
  """
1460
1460
 
@@ -1592,7 +1592,7 @@ def round_numeric_values(df, precision=4):
1592
1592
 
1593
1593
  References
1594
1594
  ----------
1595
- .. [1] "NumPy Documentation", https://numpy.org/doc/stable/
1595
+ .. [round-numeric-values-1] "NumPy Documentation", https://numpy.org/doc/stable/
1596
1596
 
1597
1597
  """
1598
1598
 
@@ -391,7 +391,23 @@ def maybe_wrap_frame(
391
391
  if api is False:
392
392
  return data
393
393
  if api is True:
394
- # Explicit per-call override: always produce an APIFrame.
394
+ # Explicit per-call override: always wrap. A configured custom
395
+ # wrapper still applies here -- only an explicit "pandas"/disabled
396
+ # backend is overridden, since that would contradict "always wrap".
397
+ from .config import PYCSAMT_API_VIEW
398
+
399
+ if callable(PYCSAMT_API_VIEW.backend):
400
+ return wrap_frame(
401
+ data,
402
+ name=name,
403
+ kind=kind,
404
+ source=source,
405
+ units=units,
406
+ meta=meta,
407
+ description=description,
408
+ copy=copy,
409
+ **frame_kwargs,
410
+ )
395
411
  return _default_wrap_frame(
396
412
  data,
397
413
  name=name,
@@ -508,8 +508,8 @@ class FileManifestStore(ManifestStore):
508
508
 
509
509
  References
510
510
  ----------
511
- .. [1] Python Standard Library. *json* module.
512
- .. [2] Python 3.11+. *tomllib* — TOML parser.
511
+ .. [FileManifestStore-1] Python Standard Library. *json* module.
512
+ .. [FileManifestStore-2] Python 3.11+. *tomllib* — TOML parser.
513
513
  """
514
514
 
515
515
  def load(self, path: Path) -> Manifest:
@@ -654,9 +654,9 @@ class Registry(CoreObject):
654
654
 
655
655
  References
656
656
  ----------
657
- .. [1] D. Wight (1991). *SEG MT/EMAP EDI Standard*.
657
+ .. [Registry-1] D. Wight (1991). *SEG MT/EMAP EDI Standard*.
658
658
  Society of Exploration Geophysicists.
659
- .. [2] Python Standard Library. *pathlib* module.
659
+ .. [Registry-2] Python Standard Library. *pathlib* module.
660
660
  """
661
661
 
662
662
  def __init__(
@@ -76,7 +76,7 @@ def register_packer(kind: str, packer: Packer) -> None:
76
76
 
77
77
  References
78
78
  ----------
79
- .. [1] NumPy. ``np.savez_compressed`` for NPZ payloads.
79
+ .. [register-packer-1] NumPy. ``np.savez_compressed`` for NPZ payloads.
80
80
  """
81
81
 
82
82
  if not kind or not isinstance(kind, str):
@@ -275,7 +275,7 @@ def pack_to_file(
275
275
 
276
276
  References
277
277
  ----------
278
- .. [1] NumPy Reference. *np.savez_compressed*.
278
+ .. [pack-to-file-1] NumPy Reference. *np.savez_compressed*.
279
279
  """
280
280
 
281
281
  p = Path(path)
@@ -423,8 +423,8 @@ class RegistryAPI(CoreObject):
423
423
 
424
424
  References
425
425
  ----------
426
- .. [1] D. Wight (1991). *SEG MT/EMAP EDI Standard*.
427
- .. [2] NumPy Reference. *np.savez_compressed*, *np.load*.
426
+ .. [RegistryAPI-1] D. Wight (1991). *SEG MT/EMAP EDI Standard*.
427
+ .. [RegistryAPI-2] NumPy Reference. *np.savez_compressed*, *np.load*.
428
428
  """
429
429
 
430
430
  def __init__(
@@ -1429,7 +1429,7 @@ def plot_response_tipper(
1429
1429
  bbox_to_anchor=(0.38, -0.015),
1430
1430
  fontsize=8,
1431
1431
  )
1432
- if show_tipper_legend:
1432
+ if show_tipper_legend and tips:
1433
1433
  real_style = PYCSAMT_STYLE.mt.xy
1434
1434
  imag_style = PYCSAMT_STYLE.mt.yx.copy(
1435
1435
  ls="--",
@@ -12,11 +12,9 @@ Three EM methods are provided, all using the same
12
12
  MT/AMT/CSAMT far-field training data.
13
13
 
14
14
  ``TEM1DForward``
15
- Central-loop time-domain EM (step-off waveform). Computes the
16
- frequency-domain H_z via a Hankel transform of the TE admittance
17
- kernel, then converts to time via a cosine transform. Uses
18
- ``scipy.integrate`` (correct but not optimised; a DLF
19
- acceleration layer is planned for Phase 2).
15
+ Central-loop time-domain EM (step-off waveform). Delegates the
16
+ Hankel/Fourier transform to :mod:`empymod`'s validated digital
17
+ linear filters rather than a hand-rolled quadrature.
20
18
 
21
19
  ``CSAMT1DForward``
22
20
  Controlled-source AMT. In the far-field limit this reduces to
@@ -192,82 +190,9 @@ def _z_surface_mt(omega: float, rho: np.ndarray, thick: np.ndarray) -> complex:
192
190
  return Z
193
191
 
194
192
 
195
- def _te_admittance(
196
- lam: np.ndarray, omega: float, rho: np.ndarray, thick: np.ndarray
197
- ) -> np.ndarray:
198
- """
199
- Vectorised TE-mode surface admittance Y_TE(λ, ω) for all λ at once.
200
-
201
- Parameters
202
- ----------
203
- lam : ndarray (n_lam,)
204
- Horizontal wavenumbers [1/m].
205
- omega : float
206
- Angular frequency [rad/s].
207
- rho, thick : as in _z_surface_mt
208
-
209
- Returns
210
- -------
211
- Y_TE : ndarray (n_lam,), complex
212
- """
213
- sigma = 1.0 / rho # conductivities
214
-
215
- # Vertical wavenumber ν_j² = λ² + iωμ₀σ_j
216
- # Shape broadcast: (n_lam, n_layers)
217
- nu = np.sqrt(lam[:, None] ** 2 + 1j * omega * MU0 * sigma[None, :])
218
-
219
- # Intrinsic TE admittance Y0_j = ν_j / (iωμ₀)
220
- Y0 = nu / (1j * omega * MU0) # (n_lam, n_layers)
221
-
222
- # Start from halfspace
223
- Y = Y0[:, -1].copy() # (n_lam,)
224
-
225
- for j in range(len(rho) - 2, -1, -1):
226
- Y0j = Y0[:, j]
227
- nu_j = nu[:, j]
228
- th = np.tanh(nu_j * thick[j])
229
- Y = Y0j * (Y + Y0j * th) / (Y0j + Y * th)
230
-
231
- return Y
232
-
233
-
234
- def _hankel_hz_fd(
235
- omega: float,
236
- rho: np.ndarray,
237
- thick: np.ndarray,
238
- loop_radius: float,
239
- n_lam: int = 150,
240
- ) -> complex:
241
- """
242
- Frequency-domain H_z at the centre of a horizontal circular loop of
243
- radius *loop_radius* over a 1-D earth.
244
-
245
- The integral ∫₀^∞ λ · r_TE(λ,ω) · J₁(λa) dλ is evaluated with
246
- Gauss-Legendre quadrature in log(λ) space.
247
-
248
- Returns H_z per unit moment [1/m³].
249
- """
250
- from numpy.polynomial.legendre import leggauss
251
- from scipy.special import j1 as J1
252
-
253
- a = loop_radius
254
- lam_lo = np.log(1e-5 / a)
255
- lam_hi = np.log(1e5 / a)
256
-
257
- nodes, wts = leggauss(n_lam)
258
- t = 0.5 * (lam_hi - lam_lo) * nodes + 0.5 * (lam_hi + lam_lo)
259
- lam = np.exp(t)
260
- jac = 0.5 * (lam_hi - lam_lo)
261
-
262
- Y_TE = _te_admittance(lam, omega, rho, thick)
263
- Y0_air = lam / (1j * omega * MU0) # air admittance ν₀/iωμ₀ ≈ λ/iωμ₀
264
-
265
- r_TE = (Y0_air - Y_TE) / (Y0_air + Y_TE)
266
-
267
- # Kernel: λ · r_TE · J₁(λa) × λ (Jacobian for log substitution)
268
- integrand = lam * r_TE * J1(lam * a) * lam
269
-
270
- return jac * complex(np.dot(wts, integrand)) / (4.0 * np.pi)
193
+ # TEM1DForward's frequency-domain Hankel transform and time-domain Fourier
194
+ # transform are delegated to empymod (Werthmüller, 2017) rather than
195
+ # hand-rolled here -- see TEM1DForward's docstring for why.
271
196
 
272
197
 
273
198
  # ─────────────────────────────────────────────────────────────────────────────
@@ -358,15 +283,28 @@ class TEM1DForward(_Base1DForward):
358
283
  """
359
284
  1-D central-loop TEM forward solver (step-off waveform).
360
285
 
361
- Computes the vertical magnetic field H_z(ω) via a numerical Hankel
362
- transform of the TE admittance kernel, then converts to the step-off
363
- time-domain dBz/dt via a cosine transform.
286
+ Computes the vertical magnetic field via :mod:`empymod`'s validated
287
+ digital-linear-filter Hankel and Fourier transforms
288
+ (Werthmüller, 2017), rather than a hand-rolled quadrature.
364
289
 
365
290
  .. note::
366
- This implementation uses ``scipy.integrate`` for correctness.
367
- It is suitable for generating training datasets of moderate size
368
- (up to ~10 000 samples). A Digital Linear Filter (DLF)
369
- optimisation yielding 100× speed-up is planned for Phase 2.
291
+ An earlier from-scratch implementation (fixed-order Gauss-Legendre
292
+ Hankel transform + naive trapezoidal cosine transform) did not
293
+ converge at realistic time ranges -- its own frequency-domain
294
+ kernel grew unboundedly at high frequency instead of decaying, and
295
+ refining either quadrature's resolution changed the answer's
296
+ *sign*, not just its accuracy, at several requested times. That
297
+ implementation is gone; :mod:`empymod` is a peer-reviewed,
298
+ independently validated EM modelling library built specifically
299
+ for this class of problem, and is verified byte-for-byte against
300
+ Ward & Hohmann (1988)'s own closed-form half-space dBz/dt formula
301
+ (their eq. 4.70) as part of this module's test suite.
302
+
303
+ The loop itself is represented as a small tangential electric bipole
304
+ at the loop radius, scaled by the loop's circumference -- the same
305
+ "loop as a scaled dipole segment" construction :mod:`empymod` uses to
306
+ reproduce Ward & Hohmann's own central-loop figures (4.7-4.8), valid
307
+ by the axisymmetry of a horizontal circular loop.
370
308
 
371
309
  Parameters
372
310
  ----------
@@ -377,14 +315,20 @@ class TEM1DForward(_Base1DForward):
377
315
  Transmitter loop radius [m]. Default 50 m.
378
316
  moment : float
379
317
  Transmitter magnetic moment [A·m²]. Default 1 A·m².
380
- n_freqs : int
381
- Number of frequency-domain evaluation points used in the
382
- cosine transform. Higher → better accuracy at early times.
318
+ n_freqs, n_lam : int
319
+ Unused. Accepted only so existing callers (e.g.
320
+ :class:`pycsamt.inversion.backends.builtin.Builtin1DBackend`,
321
+ which threads ``backend_options`` straight through) do not break;
322
+ :mod:`empymod`'s own filters pick their resolution automatically.
383
323
 
384
324
  References
385
325
  ----------
386
326
  Ward & Hohmann (1988), *Electromagnetic Methods in Applied
387
327
  Geophysics*, Vol. 1.
328
+
329
+ Werthmüller, D. (2017). An open-source full 3D electromagnetic
330
+ modeler for 1D VTI media in Python: empymod. *Geophysics*, 82(6),
331
+ WB9-WB19.
388
332
  """
389
333
 
390
334
  def __init__(
@@ -400,16 +344,40 @@ class TEM1DForward(_Base1DForward):
400
344
  self.moment = float(moment)
401
345
  self.n_freqs = n_freqs
402
346
  self.n_lam = n_lam
403
- # Pre-compute frequency grid for the cosine transform
347
+ # Frequency grid for the (informational) hz_freq field only --
348
+ # not used by the dBz/dt computation itself.
404
349
  t_min = self.times.min()
405
350
  t_max = self.times.max()
406
- # Cover 4 decades below/above the time window
407
351
  self._omega = np.logspace(
408
352
  np.log10(2.0 * np.pi / (10.0 * t_max)),
409
353
  np.log10(2.0 * np.pi / (t_min / 10.0)),
410
354
  n_freqs,
411
355
  )
412
356
 
357
+ def _empymod_kwargs(self, model) -> dict:
358
+ rho = np.asarray(model.resistivity, dtype=float)
359
+ thick = np.asarray(model.thickness, dtype=float)
360
+ a = self.loop_radius
361
+
362
+ res = np.concatenate(([2e14], rho)) # air, then earth layers
363
+ depth = np.concatenate(([0.0], np.cumsum(thick)))
364
+
365
+ # A loop driven by current I has magnetic moment m = I * area;
366
+ # empymod's loop-as-bipole trick wants strength = I * circumference
367
+ # = (m / area) * (2*pi*a) = 2*m/a.
368
+ strength = 2.0 * self.moment / a
369
+
370
+ return dict(
371
+ src=[a, 0.0, 0.0, 90.0, 0.0],
372
+ rec=[0.0, 0.0, 0.0, 0.0, 90.0],
373
+ depth=depth.tolist(),
374
+ res=res.tolist(),
375
+ strength=strength,
376
+ mrec=True,
377
+ epermH=[0.0] * res.size, # reduces early-time numerical noise
378
+ verb=0,
379
+ )
380
+
413
381
  def run(self, model) -> ForwardResponse:
414
382
  """
415
383
  Compute the TEM 1-D step-off response for *model*.
@@ -424,24 +392,25 @@ class TEM1DForward(_Base1DForward):
424
392
  ForwardResponse
425
393
  Fields populated: ``dBz_dt``, ``hz_freq``, ``times``.
426
394
  """
427
- rho = model.resistivity
428
- thick = model.thickness
395
+ import empymod
429
396
 
430
- # Frequency-domain H_z at each ω
431
- hz_fd = (
432
- np.array(
433
- [
434
- _hankel_hz_fd(w, rho, thick, self.loop_radius, self.n_lam)
435
- for w in self._omega
436
- ],
437
- dtype=complex,
438
- )
439
- * self.moment
397
+ kwargs = self._empymod_kwargs(model)
398
+
399
+ # signal=0 (impulse response) is dBz/dt for a step-off source --
400
+ # standard LTI result: d/dt of the switch-off step equals minus
401
+ # the impulse response, and empymod returns that derivative
402
+ # directly (verified against Ward & Hohmann 1988 eq. 4.70).
403
+ dBz_dt = np.asarray(
404
+ empymod.bipole(freqtime=self.times, signal=0, **kwargs).real,
405
+ dtype=float,
440
406
  )
441
407
 
442
- # Time-domain dBz/dt via cosine transform
443
- # dBz/dt(t) ≈ (2/π) × ∫₀^∞ ω · Im[H_z(ω)] · cos(ωt) dω
444
- dBz_dt = self._cosine_transform(hz_fd)
408
+ hz_fd = np.asarray(
409
+ empymod.bipole(
410
+ freqtime=self._omega / (2.0 * np.pi), signal=None, **kwargs
411
+ ),
412
+ dtype=complex,
413
+ )
445
414
 
446
415
  return ForwardResponse(
447
416
  method="TEM1D",
@@ -451,22 +420,6 @@ class TEM1DForward(_Base1DForward):
451
420
  model=model,
452
421
  )
453
422
 
454
- def _cosine_transform(self, hz_fd: np.ndarray) -> np.ndarray:
455
- """Numerical cosine transform → dBz/dt at self.times."""
456
- omega = self._omega
457
- dlog_omega = np.diff(np.log(omega)) # spacings
458
- # Trapezoidal integration in log(ω) space
459
- # ∫ f(ω) dω ≈ Σ f(ω_k) · ω_k · Δlog(ω)
460
- result = np.empty(len(self.times))
461
- for i, t in enumerate(self.times):
462
- integrand = omega * np.imag(hz_fd) * np.cos(omega * t)
463
- # Trapezoidal in log-space: integrate f(ω)*ω d(log ω)
464
- pts = integrand * omega # f·ω for log spacing
465
- result[i] = (2.0 / np.pi) * np.sum(
466
- 0.5 * (pts[:-1] + pts[1:]) * dlog_omega
467
- )
468
- return result
469
-
470
423
 
471
424
  # ─────────────────────────────────────────────────────────────────────────────
472
425
  # CSAMT 1-D forward
@@ -105,9 +105,9 @@ Run from a dictionary in one line::
105
105
  references="""
106
106
  References
107
107
  ----------
108
- .. [1] Aster, R. C., Borchers, B. and Thurber, C. H. (2018). *Parameter
108
+ .. [workflow-1] Aster, R. C., Borchers, B. and Thurber, C. H. (2018). *Parameter
109
109
  Estimation and Inverse Problems*, 3rd edition. Elsevier.
110
- .. [2] Chave, A. D. and Jones, A. G. (2012). *The Magnetotelluric Method:
110
+ .. [workflow-2] Chave, A. D. and Jones, A. G. (2012). *The Magnetotelluric Method:
111
111
  Theory and Practice*. Cambridge University Press.
112
112
  """,
113
113
  )
@@ -182,10 +182,10 @@ Coerce a mapping supplied in a configuration file::
182
182
  references="""
183
183
  References
184
184
  ----------
185
- .. [1] Constable, S. C., Parker, R. L. and Constable, C. G. (1987). Occam's
185
+ .. [model-1] Constable, S. C., Parker, R. L. and Constable, C. G. (1987). Occam's
186
186
  inversion: A practical algorithm for generating smooth models from
187
187
  electromagnetic sounding data. *Geophysics*, 52(3), 289-300.
188
- .. [2] Aster, R. C., Borchers, B. and Thurber, C. H. (2018). *Parameter
188
+ .. [model-2] Aster, R. C., Borchers, B. and Thurber, C. H. (2018). *Parameter
189
189
  Estimation and Inverse Problems*, 3rd edition. Elsevier.
190
190
  """,
191
191
  )
@@ -228,11 +228,11 @@ Use component masks to down-weight stations or samples::
228
228
  error_model_references="""
229
229
  References
230
230
  ----------
231
- .. [1] Tarantola, A. (2005). *Inverse Problem Theory and Methods for Model
231
+ .. [errors-1] Tarantola, A. (2005). *Inverse Problem Theory and Methods for Model
232
232
  Parameter Estimation*. SIAM.
233
- .. [2] Aster, R. C., Borchers, B. and Thurber, C. H. (2018). *Parameter
233
+ .. [errors-2] Aster, R. C., Borchers, B. and Thurber, C. H. (2018). *Parameter
234
234
  Estimation and Inverse Problems*, 3rd edition. Elsevier.
235
- .. [3] Chave, A. D. and Jones, A. G. (2012). *The Magnetotelluric Method:
235
+ .. [errors-3] Chave, A. D. and Jones, A. G. (2012). *The Magnetotelluric Method:
236
236
  Theory and Practice*. Cambridge University Press.
237
237
  """,
238
238
  )
@@ -317,12 +317,12 @@ Read shared settings from an inversion config::
317
317
  references="""
318
318
  References
319
319
  ----------
320
- .. [1] Tikhonov, A. N. and Arsenin, V. Y. (1977). *Solutions of Ill-Posed
320
+ .. [regularization-1] Tikhonov, A. N. and Arsenin, V. Y. (1977). *Solutions of Ill-Posed
321
321
  Problems*. Winston.
322
- .. [2] Constable, S. C., Parker, R. L. and Constable, C. G. (1987). Occam's
322
+ .. [regularization-2] Constable, S. C., Parker, R. L. and Constable, C. G. (1987). Occam's
323
323
  inversion: A practical algorithm for generating smooth models from
324
324
  electromagnetic sounding data. *Geophysics*, 52(3), 289-300.
325
- .. [3] Farquharson, C. G. and Oldenburg, D. W. (1998). Non-linear inversion
325
+ .. [regularization-3] Farquharson, C. G. and Oldenburg, D. W. (1998). Non-linear inversion
326
326
  using general measures of data misfit and model structure. *Geophysical
327
327
  Journal International*, 134(1), 213-227.
328
328
  """,
@@ -396,10 +396,23 @@ Summarize a result in logs or notebooks::
396
396
  references="""
397
397
  References
398
398
  ----------
399
- .. [1] Constable, S. C., Parker, R. L. and Constable, C. G. (1987). Occam's
399
+ .. [result-1] Constable, S. C., Parker, R. L. and Constable, C. G. (1987). Occam's
400
400
  inversion: A practical algorithm for generating smooth models from
401
401
  electromagnetic sounding data. *Geophysics*, 52(3), 289-300.
402
- .. [2] Aster, R. C., Borchers, B. and Thurber, C. H. (2018). *Parameter
402
+ .. [result-2] Aster, R. C., Borchers, B. and Thurber, C. H. (2018). *Parameter
403
+ Estimation and Inverse Problems*, 3rd edition. Elsevier.
404
+ """,
405
+ # Same citations as `references`, but with distinct footnote labels:
406
+ # both blocks are interpolated into different classes' docstrings that
407
+ # render on the same page (pycsamt.inversion.results), so the labels
408
+ # must not collide.
409
+ references_uncertainty="""
410
+ References
411
+ ----------
412
+ .. [result-unc-1] Constable, S. C., Parker, R. L. and Constable, C. G. (1987). Occam's
413
+ inversion: A practical algorithm for generating smooth models from
414
+ electromagnetic sounding data. *Geophysics*, 52(3), 289-300.
415
+ .. [result-unc-2] Aster, R. C., Borchers, B. and Thurber, C. H. (2018). *Parameter
403
416
  Estimation and Inverse Problems*, 3rd edition. Elsevier.
404
417
  """,
405
418
  )
@@ -531,11 +544,11 @@ Build TDEM data from time gates and decay values::
531
544
  references="""
532
545
  References
533
546
  ----------
534
- .. [1] Simpson, F. and Bahr, K. (2005). *Practical Magnetotellurics*.
547
+ .. [data-1] Simpson, F. and Bahr, K. (2005). *Practical Magnetotellurics*.
535
548
  Cambridge University Press.
536
- .. [2] Chave, A. D. and Jones, A. G. (2012). *The Magnetotelluric Method:
549
+ .. [data-2] Chave, A. D. and Jones, A. G. (2012). *The Magnetotelluric Method:
537
550
  Theory and Practice*. Cambridge University Press.
538
- .. [3] Nabighian, M. N. and Macnae, J. C. (1991). Time domain electromagnetic
551
+ .. [data-3] Nabighian, M. N. and Macnae, J. C. (1991). Time domain electromagnetic
539
552
  prospecting methods. In *Electromagnetic Methods in Applied Geophysics*,
540
553
  volume 2, SEG.
541
554
  """,
@@ -61,7 +61,7 @@ def to_csv(
61
61
 
62
62
  References
63
63
  ----------
64
- .. [1] Shafranovich, Y. (2005). Common Format and MIME Type for
64
+ .. [to-csv-1] Shafranovich, Y. (2005). Common Format and MIME Type for
65
65
  Comma-Separated Values (CSV) Files. RFC 4180.
66
66
  """
67
67
  model = result.to_resistivity_model()
@@ -116,7 +116,7 @@ def to_npz(result: InversionResult, path: PathLike) -> Path:
116
116
 
117
117
  References
118
118
  ----------
119
- .. [1] NumPy Developers. ``numpy.savez_compressed`` documentation.
119
+ .. [to-npz-1] NumPy Developers. ``numpy.savez_compressed`` documentation.
120
120
  """
121
121
  model = result.to_resistivity_model()
122
122
  out = Path(path)
@@ -187,7 +187,7 @@ def to_geojson(
187
187
 
188
188
  References
189
189
  ----------
190
- .. [1] Butler, H. et al. (2016). The GeoJSON Format. RFC 7946.
190
+ .. [to-geojson-1] Butler, H. et al. (2016). The GeoJSON Format. RFC 7946.
191
191
  """
192
192
  model = result.to_resistivity_model()
193
193
  rho = np.asarray(model.rho_2d, dtype=float)
@@ -281,7 +281,7 @@ def to_vtk(
281
281
 
282
282
  References
283
283
  ----------
284
- .. [1] Schroeder, W., Martin, K. and Lorensen, B. (2006). *The
284
+ .. [to-vtk-1] Schroeder, W., Martin, K. and Lorensen, B. (2006). *The
285
285
  Visualization Toolkit*, 4th edition.
286
286
  """
287
287
  model = result.to_resistivity_model()
@@ -352,8 +352,8 @@ def to_geotiff(
352
352
 
353
353
  References
354
354
  ----------
355
- .. [1] Ritter, N. and Ruth, M. (1997). GeoTIFF Format Specification.
356
- .. [2] Gillies, S. et al. Rasterio documentation.
355
+ .. [to-geotiff-1] Ritter, N. and Ruth, M. (1997). GeoTIFF Format Specification.
356
+ .. [to-geotiff-2] Gillies, S. et al. Rasterio documentation.
357
357
  """
358
358
  try:
359
359
  import rasterio
@@ -440,7 +440,7 @@ def to_archive(
440
440
 
441
441
  References
442
442
  ----------
443
- .. [1] PKWARE Inc. ZIP File Format Specification.
443
+ .. [to-archive-1] PKWARE Inc. ZIP File Format Specification.
444
444
  """
445
445
  out = Path(path)
446
446
  out.parent.mkdir(parents=True, exist_ok=True)
@@ -57,7 +57,7 @@ class InversionMesh(PyCSAMTObject, MetadataMixin):
57
57
 
58
58
  References
59
59
  ----------
60
- .. [1] Oldenburg, D. W. and Li, Y. (2005). Inversion for applied
60
+ .. [InversionMesh-1] Oldenburg, D. W. and Li, Y. (2005). Inversion for applied
61
61
  geophysics: A tutorial. In *Near-Surface Geophysics*, SEG.
62
62
  """
63
63
 
@@ -146,7 +146,7 @@ def depth_widths(
146
146
 
147
147
  References
148
148
  ----------
149
- .. [1] Ward, S. H. and Hohmann, G. W. (1988). Electromagnetic theory for
149
+ .. [depth-widths-1] Ward, S. H. and Hohmann, G. W. (1988). Electromagnetic theory for
150
150
  geophysical applications. In *Electromagnetic Methods in Applied
151
151
  Geophysics*, volume 1, SEG.
152
152
  """
@@ -370,7 +370,7 @@ def weighted_rms(observed, predicted, errors=None) -> float:
370
370
 
371
371
  References
372
372
  ----------
373
- .. [1] Tarantola, A. (2005). *Inverse Problem Theory and Methods for Model
373
+ .. [weighted-rms-1] Tarantola, A. (2005). *Inverse Problem Theory and Methods for Model
374
374
  Parameter Estimation*. SIAM.
375
375
  """
376
376
  obs = np.asarray(observed, dtype=float)