Skip to content

Commit 5ca8bab

Browse files
committed
[ENH] Add name_id_map support in orientation data manipulation
Integrated optional `name_id_map` parameter to the `add_orientation` method for mapping orientation names to IDs. Updated Hecho example with serialization validation and added save/load functionality for models.
1 parent 436f0f9 commit 5ca8bab

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

examples/examples/real/Hecho.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
# Aux imports
1414
import pandas as pn
15+
from gempy.modules.serialization.save_load import _validate_serialization
1516

1617
# Importing gempy
1718
import gempy as gp
@@ -149,7 +150,8 @@
149150
y=new_orientations.data['Y'],
150151
z=new_orientations.data['Z'],
151152
pole_vector=new_orientations.grads,
152-
elements_names=fn
153+
elements_names=fn,
154+
name_id_map=element.surface_points.name_id_map
153155
)
154156

155157
# %%
@@ -216,6 +218,11 @@
216218
# Setting verbose and condition number options for debugging
217219
geo_model.interpolation_options.kernel_options.compute_condition_number = True
218220

221+
gp.save_model(geo_model, 'Hecho.gempy')
222+
model_deserialized = gp.load_model('Hecho.gempy')
223+
224+
_validate_serialization(geo_model, model_deserialized)
225+
219226
# %%
220227
gp.compute_model(
221228
gempy_model=geo_model,

gempy/modules/data_manipulation/manipulate_points.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ def add_orientations(geo_model: GeoModel,
9696
elements_names: Sequence[str],
9797
pole_vector: Optional[Union[Sequence[np.ndarray], np.ndarray]] = None,
9898
orientation: Optional[Union[Sequence[np.ndarray], np.ndarray]] = None,
99-
nugget: Optional[Sequence[float]] = None
99+
nugget: Optional[Sequence[float]] = None,
100+
name_id_map: Optional[dict[str, int]] = None #: A mapping between orientation names and ids.
100101
) -> StructuralFrame:
101102
"""Add orientation data to the geological model.
102103
@@ -176,6 +177,7 @@ def add_orientations(geo_model: GeoModel,
176177
G_z=data['pole_vector'][..., 2],
177178
names=[element_name] * len(data['x']),
178179
nugget=data['nugget'],
180+
name_id_map=name_id_map
179181
)
180182

181183
element: StructuralElement = geo_model.structural_frame.get_element_by_name(element_name)

0 commit comments

Comments
 (0)