GEOPY-2883: Remove dependency on Tx frequency for airborne FEM survey#416
Open
domfournier wants to merge 6 commits into
Open
GEOPY-2883: Remove dependency on Tx frequency for airborne FEM survey#416domfournier wants to merge 6 commits into
domfournier wants to merge 6 commits into
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the FDEM/Airborne FEM pipeline to stop relying on a per-transmitter “Tx frequency” data channel, shifting channel-dependent logic to positional (channel-index) lists derived from survey metadata and channel order.
Changes:
- Replace frequency-keyed mappings with channel-indexed lists for offsets/coaxial flags, observed data, uncertainties, and normalizations.
- Update survey construction and directive output assembly to consume the new list-based channel layout.
- Refresh dependency pins and conda lockfiles to use a SimPEG revision that includes the GEOPY-2883 changes.
Reviewed changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
simpeg_drivers/options.py |
Switch component data/uncertainty access to list-based (channel-indexed) structures. |
simpeg_drivers/electromagnetics/frequency_domain/options.py |
Return tx_offsets/coaxial as positional lists derived from metadata configs. |
simpeg_drivers/electromagnetics/base_1d_driver.py |
Remove reliance on mask for tiling size; use location count. |
simpeg_drivers/components/locations.py |
Remove mask/filtering machinery from location handling. |
simpeg_drivers/components/factories/survey_factory.py |
Update FEM argument assembly and stacking to use list-based channel data. |
simpeg_drivers/components/factories/entity_factory.py |
Stop applying inversion-data masks during entity copy. |
simpeg_drivers/components/factories/directives_factory.py |
Update normalization/data reshaping logic to use channel indices. |
simpeg_drivers/components/data.py |
Remove masking/filtering; change normalizations and IO to channel-indexed lists. |
pyproject.toml |
Point mira-simpeg dependency to the GEOPY-2883 revision. |
py-3.13.conda-lock.yml |
Regenerate conda lock for updated dependency set. |
environments/py-3.13-win-64.conda.lock.yml |
Regenerate platform lock for updated dependency set. |
environments/py-3.13-win-64-dev.conda.lock.yml |
Regenerate dev platform lock for updated dependency set. |
environments/py-3.13-linux-64.conda.lock.yml |
Regenerate platform lock for updated dependency set. |
environments/py-3.13-linux-64-dev.conda.lock.yml |
Regenerate dev platform lock for updated dependency set. |
environments/py-3.12-win-64.conda.lock.yml |
Regenerate platform lock for updated dependency set. |
environments/py-3.12-win-64-dev.conda.lock.yml |
Regenerate dev platform lock for updated dependency set. |
environments/py-3.12-linux-64.conda.lock.yml |
Regenerate platform lock for updated dependency set. |
environments/py-3.12-linux-64-dev.conda.lock.yml |
Regenerate dev platform lock for updated dependency set. |
Comments suppressed due to low confidence (2)
simpeg_drivers/electromagnetics/frequency_domain/options.py:65
tx_offsetsnow returns a positional list, and downstream code indexes it by channel index. To prevent hard-to-debugIndexError/misalignment, this accessor should validate that the frequency configuration list length matcheslen(self.data_object.channels)(or whatever channel count is used) and raise a clear error if not. Also, the error message currently says "dictionary" even though the metadata is a list of config dicts.
try:
configs = self.data_object.metadata["EM Dataset"][
"Frequency configurations"
]
tx_offsets = [k["Offset"] for k in configs]
except KeyError as exception:
msg = "Metadata must contain 'Frequency configurations' dictionary with 'Offset' key."
raise GeoAppsError(msg) from exception
simpeg_drivers/electromagnetics/frequency_domain/options.py:81
- Same concern for
coaxial: it now returns a positional list indexed by channel index, but there is no validation that the frequency configuration length matches the channel count. Add a length check and raise a clear error; also consider updating the KeyError message text (it mentions a "dictionary" but the configs are a list of dicts).
try:
configs = self.data_object.metadata["EM Dataset"][
"Frequency configurations"
]
coaxial = [k["Coaxial data"] for k in configs]
except KeyError as exception:
msg = "Metadata must contain 'Frequency configurations' dictionary with 'Coaxial data' key."
raise GeoAppsError(msg) from exception
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| #mira-simpeg = {version = ">=0.23.0.2, 0.23.0.* || >=0.25.0.1a, 0.25.0.*", source="pypi", allow-prereleases = true, extras = ["dask"]} | ||
| mira-simpeg = {git = "https://github.com/MiraGeoscience/simpeg.git", rev = "release/GA_4.8", extras = ["dask"]} | ||
| mira-simpeg = {git = "https://github.com/MiraGeoscience/simpeg.git", rev = "GEOPY-2883", extras = ["dask"]} |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## release/GA_4.8 #416 +/- ##
==================================================
+ Coverage 90.43% 90.61% +0.17%
==================================================
Files 110 110
Lines 6535 6479 -56
Branches 827 811 -16
==================================================
- Hits 5910 5871 -39
+ Misses 413 402 -11
+ Partials 212 206 -6
🚀 New features to boost your workflow:
|
benk-mira
approved these changes
May 26, 2026
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.
GEOPY-2883 - Remove dependency on Tx frequency for airborne FEM survey