Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions grid_apps-assets/uijson/octree_mesh.ui.json
Original file line number Diff line number Diff line change
Expand Up @@ -231,10 +231,11 @@
"value": 1000.0
},
"out_group": {
"label": "group",
"group": "Output preferences",
"label": "UIJson group",
"value": "",
"groupType": "{61FBB4E8-A480-11E3-8D5A-2776BDF4F982}",
"visible": false,
"groupType": "{BB50AC61-A657-4926-9C82-067658E246A0}",
"visible": true,
"optional": true,
"enabled": false
}
Expand Down
15 changes: 13 additions & 2 deletions grid_apps/block_model_to_octree/driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@

import numpy as np
from discretize import TreeMesh
from geoapps_utils.base import Driver as BaseDriver
from geoh5py.data import FloatData, ReferencedData
from geoh5py.objects import BlockModel, Octree
from geoh5py.ui_json.utils import fetch_active_workspace
from scipy.spatial import cKDTree

from grid_apps.block_model_to_octree.options import BlockModel2OctreeOptions
from grid_apps.driver import BaseGridDriver
from grid_apps.utils import (
block_model_to_discretize,
boundary_value_indices,
Expand All @@ -33,13 +33,24 @@
logger = logging.getLogger(__name__)


class Driver(BaseGridDriver):
class Driver(BaseDriver):
"""
Convert a BlockModel object to Octree with various refinement strategies.
"""

_params_class = BlockModel2OctreeOptions

def run(self):
"""Create an octree mesh from input values."""
with fetch_active_workspace(self.params.geoh5, mode="r+"):
logger.info("Converting BlockModel to Octree mesh . . .")
octree = self.make_grid()
output = self.params.out_group or octree
self.update_monitoring_directory(output)
logger.info("Done.")

return octree

@staticmethod
def block_model_to_treemesh(
entity: BlockModel, diagonal_balance=True, finalize=True
Expand Down
4 changes: 2 additions & 2 deletions grid_apps/block_model_to_octree/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from pathlib import Path
from typing import ClassVar

from geoapps_utils.driver.data import BaseData
from geoapps_utils.base import Options
from geoh5py.data import FloatData, ReferencedData
from geoh5py.groups import UIJsonGroup
from geoh5py.objects import BlockModel
Expand All @@ -35,7 +35,7 @@ class OutputOptions(BaseModel):
out_group: UIJsonGroup | None = None


class BlockModel2OctreeOptions(BaseData):
class BlockModel2OctreeOptions(Options):
"""
Block model parameters for use with `block_models.driver`.

Expand Down
27 changes: 13 additions & 14 deletions grid_apps/block_models/driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,19 @@

import numpy as np
from discretize.utils import mesh_utils
from geoapps_utils.driver.data import BaseData
from geoapps_utils.base import Driver as BaseDriver
from geoh5py.objects import BlockModel
from geoh5py.shared.utils import fetch_active_workspace
from geoh5py.workspace import Workspace
from scipy.spatial import cKDTree

from grid_apps.block_models.options import BlockModelOptions
from grid_apps.driver import BaseGridDriver


logger = logging.getLogger(__name__)


class Driver(BaseGridDriver):
class Driver(BaseDriver):
"""
Create BlockModel from parameters.

Expand All @@ -37,6 +36,17 @@ class Driver(BaseGridDriver):

_params_class = BlockModelOptions

def run(self):
"""Create an octree mesh from input values."""
with fetch_active_workspace(self.params.geoh5, mode="r+"):
logger.info("Creating BlockModel mesh from parameters . . .")
block = self.make_grid()
output = self.params.out_group or block
self.update_monitoring_directory(output)
logger.info("Done.")

return block

def make_grid(self):
"""
Make block model object from input data.
Expand Down Expand Up @@ -190,17 +200,6 @@ def get_block_model( # pylint: disable=too-many-arguments, too-many-positional-

return object_out

@property
def params(self) -> BaseData:
"""Application parameters."""
return self._params

@params.setter
def params(self, val: BaseData):
if not isinstance(val, BaseData):
raise TypeError("Parameters must be a BaseData subclass.")
self._params = val


if __name__ == "__main__":
file = Path(sys.argv[1]).resolve()
Expand Down
4 changes: 2 additions & 2 deletions grid_apps/block_models/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from pathlib import Path
from typing import ClassVar

from geoapps_utils.driver.data import BaseData
from geoapps_utils.base import Options
from geoh5py.groups import UIJsonGroup
from geoh5py.objects import CellObject, Points
from geoh5py.objects.grid_object import GridObject
Expand Down Expand Up @@ -84,7 +84,7 @@ class BlockModelOutputOptions(BaseModel):
out_group: UIJsonGroup | None = None


class BlockModelOptions(BaseData):
class BlockModelOptions(Options):
"""
Block model parameters for use with `block_models.driver`.

Expand Down
91 changes: 0 additions & 91 deletions grid_apps/driver.py

This file was deleted.

Loading