GEOPY-3046 - #474
Open
domfournier wants to merge 23 commits into
Open
Conversation
# Conflicts: # environments/py-3.12-linux-64-dev.conda.lock.yml # environments/py-3.12-linux-64.conda.lock.yml # environments/py-3.12-win-64-dev.conda.lock.yml # environments/py-3.12-win-64.conda.lock.yml # environments/py-3.13-linux-64-dev.conda.lock.yml # environments/py-3.13-linux-64.conda.lock.yml # environments/py-3.13-win-64-dev.conda.lock.yml # environments/py-3.13-win-64.conda.lock.yml # py-3.12.conda-lock.yml # py-3.13.conda-lock.yml
# Conflicts: # environments/py-3.12-linux-64-dev.conda.lock.yml # environments/py-3.12-win-64-dev.conda.lock.yml # environments/py-3.13-linux-64-dev.conda.lock.yml # environments/py-3.13-win-64-dev.conda.lock.yml # py-3.12.conda-lock.yml # py-3.13.conda-lock.yml
Contributor
There was a problem hiding this comment.
Pull request overview
Adds “borehole tdem” as a first-class EM workflow in simpeg-drivers, including new survey generation paths and UIJSON definitions, plus updates to orientation/projection handling and dependency pinning.
Changes:
- Introduces Borehole TDEM forward/inversion drivers + options and UI JSON assets, and wires them into driver/factory registries.
- Refactors/extends synthetic TDEM survey generation (airborne/ground/borehole) and orientation handling across receiver/entity/simulation utilities.
- Updates development dependency git refs to
developand refreshes conda-lock outputs accordingly.
Reviewed changes
Copilot reviewed 33 out of 34 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/run_tests/oriented_ground_tem_receiver_test.py | New run-test validating receiver orientation workflows (currently contains an ineffective magnitude assertion). |
| tests/run_tests/driver_borehole_tem_test.py | New borehole TDEM forward+inversion run-test (currently not pytest-collectable due to non-fixture args). |
| tests/plate_simulation/leroi_air/init.py | Updates import to new airborne time-domain survey module path. |
| simpeg_drivers/utils/synthetics/surveys/time_domain/ground.py | Generalizes ground TDEM survey generation (adds n_loops) and adjusts geometry/cells construction. |
| simpeg_drivers/utils/synthetics/surveys/time_domain/borehole.py | New borehole TDEM survey generator built on ground TDEM survey generation. |
| simpeg_drivers/utils/synthetics/surveys/time_domain/airborne.py | New airborne TDEM survey generator module. |
| simpeg_drivers/utils/synthetics/surveys/factory.py | Routes “borehole tdem” to borehole survey generator; updates imports for refactored modules. |
| simpeg_drivers/utils/surveys.py | Updates CCW sorting and EM projection logic to support orientation arrays (contains a NumPy truthiness bug). |
| simpeg_drivers/utils/nested.py | Preserves multi-dimensional receiver orientations when creating nested surveys. |
| simpeg_drivers/electromagnetics/borehole_time_domain/options.py | New borehole TDEM forward/inversion options classes + UIJSON linkage. |
| simpeg_drivers/electromagnetics/borehole_time_domain/inversion.py | New borehole TDEM inversion driver entrypoint. |
| simpeg_drivers/electromagnetics/borehole_time_domain/forward.py | New borehole TDEM forward driver entrypoint. |
| simpeg_drivers/electromagnetics/borehole_time_domain/init.py | New package initializer for borehole time-domain module. |
| simpeg_drivers/components/factories/source_factory.py | Tightens factory typing to CoreOptions. |
| simpeg_drivers/components/factories/simulation_factory.py | Adds “borehole tdem” support to simulation selection and assembly logic. |
| simpeg_drivers/components/factories/simpeg_factory.py | Registers “borehole tdem” as a valid factory type. |
| simpeg_drivers/components/factories/receiver_factory.py | Extends receiver orientation mapping and orientation derivation for borehole workflows. |
| simpeg_drivers/components/factories/entity_factory.py | Adds borehole-specific receiver orientation propagation / computed AUV groups (contains a boolean assignment bug). |
| simpeg_drivers/components/factories/directives_factory.py | Enables borehole tdem participation in directive selection paths. |
| simpeg_drivers/components/data.py | Includes borehole tdem in channel-aware data saving logic. |
| simpeg_drivers/init.py | Registers “borehole tdem” in DRIVER_MAP for CLI/app discovery. |
| simpeg_drivers-assets/uijson/borehole_tdem_inversion.ui.json | New UIJSON definition for borehole TDEM inversion. |
| simpeg_drivers-assets/uijson/borehole_tdem_forward.ui.json | New UIJSON definition for borehole TDEM forward. |
| pyproject.toml | Updates git dependency refs to develop. |
| py-3.13.conda-lock.yml | Updates resolved dependency lock for Python 3.13. |
| py-3.12.conda-lock.yml | Updates resolved dependency lock for Python 3.12. |
| environments/py-3.13-win-64.conda.lock.yml | Updates platform-specific lock output (py3.13 win-64). |
| environments/py-3.13-win-64-dev.conda.lock.yml | Updates dev platform-specific lock output (py3.13 win-64 dev). |
| environments/py-3.13-linux-64.conda.lock.yml | Updates platform-specific lock output (py3.13 linux-64). |
| environments/py-3.13-linux-64-dev.conda.lock.yml | Updates dev platform-specific lock output (py3.13 linux-64 dev). |
| environments/py-3.12-win-64.conda.lock.yml | Updates platform-specific lock output (py3.12 win-64). |
| environments/py-3.12-win-64-dev.conda.lock.yml | Updates dev platform-specific lock output (py3.12 win-64 dev). |
| environments/py-3.12-linux-64.conda.lock.yml | Updates platform-specific lock output (py3.12 linux-64). |
| environments/py-3.12-linux-64-dev.conda.lock.yml | Updates dev platform-specific lock output (py3.12 linux-64 dev). |
Suppressed comments (3)
simpeg_drivers/utils/synthetics/surveys/time_domain/ground.py:14
y_rotation_matrixis imported but never used in this module, which will fail linting/static analysis. Remove the unused import (or use it).
simpeg_drivers/utils/synthetics/surveys/time_domain/ground.py:40center(and the flatten-specific adjustment) is computed but no longer used, leaving dead code. If re-centering is no longer needed, remove these lines to avoid confusion.
tests/run_tests/driver_borehole_tem_test.py:113pytestin the test function signature will be treated as a fixture name by pytest and will raise a fixture lookup error during collection. Keep pytest-collected tests fixture-only and move this flag into a helper function or module-level constant.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.