Skip to content

Commit a42a200

Browse files
authored
Merge pull request #115 from MiraGeoscience/GEOPY-2690
GEOPY-2690: Block model export to OMF with offset by half cell
2 parents 82ac264 + 98fef79 commit a42a200

2 files changed

Lines changed: 9 additions & 20 deletions

File tree

omf/fileio/geoh5.py

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,20 +1167,17 @@ def collect_omf_attributes(cls, element: VolumeElement, **kwargs) -> dict:
11671167
f"{VolumeGridGeometry} with 3D rotation axes."
11681168
)
11691169

1170-
offsets = []
11711170
for key, alias in cls._attribute_map.items():
11721171
tensor = getattr(element.geometry, f"tensor_{key}")
1173-
axis = getattr(element.geometry, f"axis_{key}")
1174-
offsets.append(axis * tensor[0] / 2.0)
11751172
cell_delimiter = np.r_[0, np.cumsum(tensor)]
11761173
kwargs.update({f"{alias}_cell_delimiters": cell_delimiter})
1177-
offsets = np.c_[offsets].sum(axis=1)
1174+
11781175
kwargs["z_cell_delimiters"] *= element.geometry.axis_w[-1]
11791176
rotation = np.rad2deg(
11801177
np.arctan2(element.geometry.axis_u[1], element.geometry.axis_u[0])
11811178
)
11821179
kwargs.update({"rotation": rotation})
1183-
kwargs.update({"origin": np.r_[element.geometry.origin] - offsets})
1180+
kwargs.update({"origin": np.r_[element.geometry.origin]})
11841181

11851182
return kwargs
11861183

@@ -1203,20 +1200,11 @@ def collect_h5_attributes(
12031200
geometry["axis_v"] = rot.dot(np.c_[0.0, axis[1], 0.0].T).flatten()
12041201
geometry["axis_w"] = np.r_[0, 0, axis[2]]
12051202

1206-
offsets = []
1207-
for key in cls._attribute_map:
1208-
offsets.append(
1209-
geometry[f"axis_{key}"] * geometry[f"tensor_{key}"][0] / 2.0
1210-
)
1211-
1212-
offsets = np.c_[offsets].sum(axis=1)
12131203
if hasattr(entity, "origin"):
12141204
geometry.update(
12151205
{
12161206
"origin": np.r_[
1217-
entity.origin["x"] + offsets[0],
1218-
entity.origin["y"] + offsets[1],
1219-
entity.origin["z"] + offsets[2],
1207+
entity.origin["x"], entity.origin["y"], entity.origin["z"]
12201208
]
12211209
}
12221210
)

tests/convert_volume_test.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020

2121
import omf
2222
from omf import Project
23-
from omf.fileio.geoh5 import block_model_reordering
23+
from omf.fileio import OMFWriter
24+
from omf.fileio.geoh5 import GeoH5Reader, block_model_reordering
2425

2526

2627
def test_volume_to_geoh5(tmp_path: Path):
@@ -115,6 +116,9 @@ def test_volume_to_geoh5(tmp_path: Path):
115116

116117
omf.fileio.utils.compare_elements(omf_vol, vol)
117118

119+
reader = GeoH5Reader(file)
120+
OMFWriter(reader(), str(tmp_path / f"{__name__}.omf"))
121+
118122

119123
def test_volume_flip_origin_z(tmp_path):
120124
dims = [10, 15, 20]
@@ -136,10 +140,7 @@ def test_volume_flip_origin_z(tmp_path):
136140
block_model = workspace.get_entity("vol")[0]
137141

138142
assert block_model.z_cell_delimiters[-1] < 0
139-
assert (
140-
block_model.origin["z"]
141-
== vol.geometry.origin[2] + vol.geometry.tensor_w[0] / 2
142-
)
143+
assert block_model.origin["z"] == vol.geometry.origin[2]
143144

144145
with Workspace(file) as workspace:
145146
rotation = np.random.normal(-180, 180, 1)

0 commit comments

Comments
 (0)