Skip to content

Commit 694aee8

Browse files
committed
[WIP] Towards a proper implementation for plotting transform data
1 parent 672dde3 commit 694aee8

File tree

3 files changed

+32
-6
lines changed

3 files changed

+32
-6
lines changed

gempy/core/data/geo_model.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,11 +170,15 @@ def solutions(self, value):
170170
def surface_points_copy(self):
171171
"""This is a copy! Returns a SurfacePointsTable for all surface points across the structural elements"""
172172
surface_points_table = self.structural_frame.surface_points_copy
173-
if self.input_transform is not None:
174-
transform = self.input_transform + self.grid.transform
175-
surface_points_table.model_transform = transform
176173
return surface_points_table
177-
174+
175+
@property
176+
def surface_points_copy_transformed(self):
177+
og_sp = self.surface_points_copy
178+
total_transform: Transform = self.input_transform + self.grid.transform
179+
og_sp.xyz_view = total_transform.apply(og_sp.xyz)
180+
return og_sp
181+
178182
@property
179183
def surface_points(self):
180184
raise AttributeError("This property can only be set, not read. You can access the copy with `surface_points_copy` or"
@@ -192,6 +196,14 @@ def orientations_copy(self) -> OrientationsTable:
192196
transform = self.input_transform + self.grid.transform
193197
orientations_table.model_transform = transform
194198
return orientations_table
199+
200+
@property
201+
def orientations_copy_transformed(self):
202+
# ! This is not done
203+
og_or = self.orientations_copy
204+
total_transform: Transform = self.input_transform + self.grid.transform
205+
og_or.xyz_view = total_transform.apply(og_or.xyz)
206+
return og_or
195207

196208
@property
197209
def orientations(self) -> OrientationsTable:

gempy/core/data/surface_points.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,14 @@ def id_to_name(self, id: int) -> str:
8888
@property
8989
def xyz(self) -> np.ndarray:
9090
return np.array([self.data['X'], self.data['Y'], self.data['Z']]).T
91+
92+
@property
93+
def xyz_view(self) -> np.ndarray:
94+
return self.data[['X', 'Y', 'Z']]
95+
96+
@xyz_view.setter
97+
def xyz_view(self, value: np.ndarray):
98+
self.data['X'], self.data['Y'], self.data['Z'] = value.T
9199

92100
@property
93101
def nugget(self) -> np.ndarray:

test/test_modules/.benchmarks/test_transformed_space.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
import gempy as gp
2+
from gempy import optional_dependencies
23
from gempy.core.data.enumerators import ExampleModel
4+
from gempy.modules.data_manipulation.engine_factory import interpolation_input_from_structural_frame
35
from gempy.optional_dependencies import require_gempy_viewer
46

57
PLOT = True
68

79

810
def test_plot_transformed_data():
9-
model = gp.generate_example_model(ExampleModel.ANTICLINE, compute_model=True)
11+
model = gp.generate_example_model(ExampleModel.ANTICLINE, compute_model=False)
1012
print(model.structural_frame)
1113

1214
if PLOT:
1315
gpv = require_gempy_viewer()
14-
gpv.plot_3d(model, image=True)
16+
gpv.plot_3d(
17+
model,
18+
image=False,
19+
transformed_data=True
20+
)
1521

1622

1723
def test_transformed_data():

0 commit comments

Comments
 (0)