GEOPY-1406: Implement arbitrary receiver orientations (u-v-w) for airborne EM surveys#361
GEOPY-1406: Implement arbitrary receiver orientations (u-v-w) for airborne EM surveys#361domfournier merged 21 commits intodevelopfrom
Conversation
…s. Update uijson and options.
There was a problem hiding this comment.
Pull request overview
Adds support for specifying receiver orientation (via PropertyGroup) across EM drivers, updates synthetics generation to support rotated surveys and optional plate-based mesh refinement, and introduces new integration tests to validate orientation handling.
Changes:
- Add
receivers_orientationsupport to FDEM/TDEM/Tipper options and expose it in corresponding UI JSONs (plus additional FDEM component channel UI fields). - Update synthetics survey generation to support rotation and improve FDEM transmitter offset computation.
- Add integration tests for oriented FEM/TEM receivers and add optional octree refinement around a plate model.
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/run_tests/oriented_fem_receiver_test.py | New run-test for FEM forward runs with varying receiver orientations. |
| tests/run_tests/oriented_airborne_tem_receiver_test.py | New run-test for airborne TEM forward runs with varying receiver orientations. |
| simpeg_drivers/utils/synthetics/surveys/frequency_domain/fdem.py | Change transmitter offset computation to follow local line direction. |
| simpeg_drivers/utils/synthetics/surveys/factory.py | Add survey rotation support in synthetic grid generation. |
| simpeg_drivers/utils/synthetics/options.py | Add rotation to SurveyOptions and refine_plate to synthetics options. |
| simpeg_drivers/utils/synthetics/meshes/octrees.py | Add optional octree refinement around a plate model. |
| simpeg_drivers/utils/synthetics/meshes/factory.py | Thread plate refinement option through mesh factory. |
| simpeg_drivers/utils/synthetics/driver.py | Pass plate model into mesh factory when refine_plate is enabled. |
| simpeg_drivers/natural_sources/tipper/options.py | Add receivers_orientation to tipper forward/inversion options. |
| simpeg_drivers/electromagnetics/time_domain/options.py | Add receivers_orientation to TDEM forward/inversion options. |
| simpeg_drivers/electromagnetics/frequency_domain_1d/options.py | Refactor FEM-1D options inheritance and required fields. |
| simpeg_drivers/electromagnetics/frequency_domain/options.py | Add orientation and x/y component toggles/channels to FDEM options. |
| simpeg_drivers/components/factories/survey_factory.py | Plumb local receiver indices into receiver factory builds. |
| simpeg_drivers/components/factories/receiver_factory.py | Compute/override receiver orientations from a provided PropertyGroup. |
| simpeg_drivers-assets/uijson/tipper_inversion.ui.json | Add UI field for receiver orientation selection. |
| simpeg_drivers-assets/uijson/tipper_forward.ui.json | Add UI field for receiver orientation selection. |
| simpeg_drivers-assets/uijson/tdem_inversion.ui.json | Add receiver orientation UI field + explanatory tooltip. |
| simpeg_drivers-assets/uijson/tdem_forward.ui.json | Add receiver orientation UI field + explanatory tooltip. |
| simpeg_drivers-assets/uijson/fdem_inversion.ui.json | Add receiver orientation + x/y channels and updated labels/tooltips. |
| simpeg_drivers-assets/uijson/fdem_forward.ui.json | Add receiver orientation + x/y component toggles and updated labels/tooltips. |
Comments suppressed due to low confidence (1)
simpeg_drivers/electromagnetics/frequency_domain_1d/options.py:79
directivesis defined twice inFDEM1DInversionOptions; this second definition overrides the earlier one (includingsens_wts_threshold=100.0). Remove the duplicate and keep the intended defaults in a singledirectivesfield.
directives: DirectiveOptions = DirectiveOptions()
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
simpeg_drivers/utils/synthetics/surveys/frequency_domain/fdem.py
Outdated
Show resolved
Hide resolved
simpeg_drivers/utils/synthetics/surveys/frequency_domain/fdem.py
Outdated
Show resolved
Hide resolved
benk-mira
left a comment
There was a problem hiding this comment.
Nice addition! couple suggestions to look at.
for more information, see https://pre-commit.ci
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #361 +/- ##
===========================================
+ Coverage 91.26% 91.28% +0.01%
===========================================
Files 120 120
Lines 6592 6652 +60
Branches 799 806 +7
===========================================
+ Hits 6016 6072 +56
- Misses 381 383 +2
- Partials 195 197 +2
🚀 New features to boost your workflow:
|
GEOPY-1406: Implement arbitrary receiver orientations (u-v-w) for airborne EM surveys