Skip to content

Commit e2dbee9

Browse files
authored
Merge pull request #337 from MiraGeoscience/GEOPY-2659
GEOPY-2659: MVI: Add small value to reference amplitude if reference are used
2 parents 8a9f866 + 8c7db56 commit e2dbee9

2 files changed

Lines changed: 12 additions & 13 deletions

File tree

simpeg_drivers/components/models.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ def reference_model(self) -> np.ndarray | None:
233233
self.reference_inclination,
234234
self.reference_declination,
235235
)
236+
ref_model += 1e-8 # To avoid zeroing the angles
236237
ref_model = (field_vecs.T * ref_model).flatten()
237238

238239
return ref_model
@@ -271,11 +272,11 @@ def lower_bound(self) -> np.ndarray | None:
271272
else:
272273
bound_model = self._lower_bound.model
273274

274-
if (
275-
self.driver.params.inversion_type == "magnetic vector"
276-
and self._upper_bound.model is not None
277-
):
278-
bound_model = -self._upper_bound.model
275+
if self.driver.params.inversion_type == "magnetic vector":
276+
bound_model = None
277+
278+
if self._upper_bound.model is not None:
279+
bound_model = -self._upper_bound.model
279280

280281
if bound_model is None:
281282
lbound = np.full(self.n_active, -np.inf)

tests/run_tests/driver_mvi_test.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from geoh5py.groups.property_group import GroupTypeEnum
2121
from geoh5py.objects import Curve
2222
from geoh5py.workspace import Workspace
23+
from simpeg.utils.mat_utils import cartesian2amplitude_dip_azimuth
2324

2425
from simpeg_drivers.components.factories import DirectivesFactory
2526
from simpeg_drivers.potential_fields import (
@@ -213,7 +214,7 @@ def test_magnetic_vector_reference(
213214
tmi_uncertainty=5.0,
214215
data_object=components.survey,
215216
starting_model=components.model,
216-
reference_model=1.0,
217+
reference_model=0.0,
217218
reference_inclination=30,
218219
reference_declination=0,
219220
)
@@ -224,13 +225,10 @@ def test_magnetic_vector_reference(
224225
assert np.all(driver.models.reference_inclination == 30)
225226
assert np.all(driver.models.reference_declination == 0)
226227

227-
np.allclose(
228-
np.kron(
229-
np.r_[0, np.cos(-np.deg2rad(30)), np.sin(-np.deg2rad(30))],
230-
np.ones(driver.models.n_active),
231-
),
232-
driver.models.reference_model,
233-
)
228+
ref_model = driver.models.reference_model
229+
ref_spherical = cartesian2amplitude_dip_azimuth(ref_model.reshape(-1, 3, order="F"))
230+
np.allclose(ref_spherical[0, 1], 30)
231+
np.allclose(ref_spherical[0, 2], 0)
234232

235233

236234
if __name__ == "__main__":

0 commit comments

Comments
 (0)