Skip to content

GEOPY-3046 - #474

Open
domfournier wants to merge 23 commits into
developfrom
GEOPY-3046
Open

GEOPY-3046#474
domfournier wants to merge 23 commits into
developfrom
GEOPY-3046

Conversation

@domfournier

Copy link
Copy Markdown
Collaborator

No description provided.

# 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
@domfournier
domfournier marked this pull request as ready for review August 31, 2026 19:04
Copilot AI lite review requested due to automatic review settings August 31, 2026 19:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 develop and 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_matrix is 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:40
  • center (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:113
  • pytest in 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.

Comment thread simpeg_drivers/components/factories/entity_factory.py
Comment thread simpeg_drivers/utils/surveys.py
Comment thread tests/run_tests/oriented_ground_tem_receiver_test.py Outdated
Comment thread tests/run_tests/driver_borehole_tem_test.py

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 21 changed files in this pull request and generated 2 comments.

Comment thread simpeg_drivers-assets/uijson/borehole_tdem_forward.ui.json Outdated
Comment thread simpeg_drivers-assets/uijson/borehole_tdem_inversion.ui.json Outdated
domfournier and others added 3 commits September 1, 2026 13:15
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants