from matengine.generation.generators import random_field, create_covariance_model
from matengine.generation.decisiontree import decision_tree, ellipse
from matengine.generation.plurigaussian import plurigaussian_simulation
from matengine.utils.plotting import array_to_vtk
dim = [50,50]
ls=5
var=1
kernel = 'gau'
seed1 = 123
seed2 = 1234
mdl = create_covariance_model(kernel, dim, var, ls)
z1 = random_field(mdl, dim, seed=seed1)
z2 = random_field(mdl, dim, seed=seed2)
fields = [z1, z2]
Config = {
'root': {
'type': 'decision',
'func': ellipse,
'args': {
'key1': 'Z1',
'key2': 'Z2',
'cx': 0,
'cy': 0,
'sx': 2.6,
'sy': 0.3
},
'yes_branch': 'phase1',
'no_branch': 'phase0'
},
'phase0': {
'type': 'leaf',
'action': 0
},
'phase1': {
'type': 'leaf',
'action': 1
},
}
tree_config = Config
tree = decision_tree()
tree.build_tree(tree_config)
L, P = plurigaussian_simulation(dim, tree, fields, ldim=500)
array_to_vtk(L, 'L')
array_to_vtk(P, 'P')