Skip to content

Commit 1b86e39

Browse files
committed
Add warning on setting lower_bound for mvi
1 parent a89c150 commit 1b86e39

2 files changed

Lines changed: 42 additions & 24 deletions

File tree

simpeg_drivers/potential_fields/magnetic_vector/params.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313

1414
from pathlib import Path
1515
from typing import ClassVar
16+
from warnings import warn
1617

1718
from geoh5py.data import FloatData
19+
from pydantic import model_validator
1820

1921
from simpeg_drivers import assets_path
2022
from simpeg_drivers.params import BaseForwardOptions, BaseInversionOptions
@@ -131,3 +133,14 @@ class MVIInversionOptions(BaseInversionOptions):
131133
starting_declination: float | FloatData | None = None
132134
reference_inclination: float | FloatData | None = None
133135
reference_declination: float | FloatData | None = None
136+
137+
@model_validator(mode="after")
138+
def validate_lower_bound(self):
139+
if self.lower_bound is not None:
140+
warn(
141+
"Parameter 'lower_bound' for Magnetic Vector Inversion has been deprecated. "
142+
"Defaulting to the negative value of 'upper_bound'.",
143+
stacklevel=1,
144+
)
145+
self.lower_bound = None
146+
return self

tests/run_tests/driver_mvi_test.py

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from geoh5py.groups.property_group import GroupTypeEnum
1717
from geoh5py.objects import Curve
1818
from geoh5py.workspace import Workspace
19+
from pytest import warns
1920

2021
from simpeg_drivers.params import ActiveCellsOptions
2122
from simpeg_drivers.potential_fields import (
@@ -166,30 +167,34 @@ def test_magnetic_vector_bounds_run(
166167

167168
# Run the inverse
168169
active_cells = ActiveCellsOptions(topography_object=topography)
169-
params = MVIInversionOptions(
170-
geoh5=geoh5,
171-
mesh=mesh,
172-
active_cells=active_cells,
173-
inducing_field_strength=inducing_field[0],
174-
inducing_field_inclination=inducing_field[1],
175-
inducing_field_declination=inducing_field[2],
176-
data_object=tmi.parent,
177-
starting_model=1e-4,
178-
reference_model=0.0,
179-
s_norm=0.0,
180-
x_norm=1.0,
181-
y_norm=1.0,
182-
z_norm=1.0,
183-
gradient_type="components",
184-
tmi_channel=tmi,
185-
tmi_uncertainty=4.0,
186-
upper_bound=upper_bound,
187-
max_global_iterations=max_iterations,
188-
initial_beta_ratio=1e1,
189-
store_sensitivities="ram",
190-
save_sensitivities=True,
191-
percentile=100,
192-
)
170+
with warns(
171+
UserWarning, match="Parameter 'lower_bound' for Magnetic Vector Inversion"
172+
):
173+
params = MVIInversionOptions(
174+
geoh5=geoh5,
175+
mesh=mesh,
176+
active_cells=active_cells,
177+
inducing_field_strength=inducing_field[0],
178+
inducing_field_inclination=inducing_field[1],
179+
inducing_field_declination=inducing_field[2],
180+
data_object=tmi.parent,
181+
starting_model=1e-4,
182+
reference_model=0.0,
183+
s_norm=0.0,
184+
x_norm=1.0,
185+
y_norm=1.0,
186+
z_norm=1.0,
187+
gradient_type="components",
188+
tmi_channel=tmi,
189+
tmi_uncertainty=4.0,
190+
lower_bound=1e-6,
191+
upper_bound=upper_bound,
192+
max_global_iterations=max_iterations,
193+
initial_beta_ratio=1e1,
194+
store_sensitivities="ram",
195+
save_sensitivities=True,
196+
percentile=100,
197+
)
193198
params.write_ui_json(path=tmp_path / "Inv_run.ui.json")
194199

195200
driver = MVIInversionDriver(params)

0 commit comments

Comments
 (0)