예제 #1
0
def topology_fabian(one_fault_model_solution):
    """Return a GemPy Vista instance with basic geomodel attached."""
    geo_model = one_fault_model_solution

    edges, centroids = tp.compute_topology(geo_model, voxel_threshold=1)

    return edges, centroids
예제 #2
0
def topology_jan_unconf():
    geo_model = gp.create_data(
        [0, 1000, 0, 1000, 0, 1000],
        resolution=[50, 50, 50],
        path_o=data_path / "jan_models/model6_orientations.csv",
        path_i=data_path / "jan_models/model6_surface_points.csv")

    gp.map_series_to_surfaces(
        geo_model, {
            "Strat_Series1": ('rock3'),
            "Strat_Series2": ('rock2', 'rock1'),
            "Basement_Series": ('basement')
        })

    # with open("input_data/geomodel_jan_sol.p", "rb") as f:
    # geo_model.solutions = load(f)
    gp.set_interpolator(geo_model)
    gp.compute_model(geo_model)

    edges, centroids = tp.compute_topology(geo_model, voxel_threshold=1)
    return edges, centroids
예제 #3
0
def topology_fabian():
    """Return a GemPy Vista instance with basic geomodel attached."""
    geo_model = gp.create_data(
        [0, 2000, 0, 2000, 0, 2000], [50, 50, 50],
        path_o=data_path / 'tut_chapter1/simple_fault_model_orientations.csv',
        path_i=data_path / 'tut_chapter1/simple_fault_model_points.csv')

    gp.set_series(
        geo_model, {
            "Fault_Series": 'Main_Fault',
            "Strat_Series":
            ('Sandstone_2', 'Siltstone', 'Shale', 'Sandstone_1')
        })
    geo_model.set_is_fault(['Fault_Series'])
    gp.set_interpolator(geo_model)
    gp.compute_model(geo_model)

    # with open("input_data/geomodel_fabian_sol.p", "rb") as f:
    #     geo_model.solutions = load(f)

    edges, centroids = tp.compute_topology(geo_model, voxel_threshold=1)
    return edges, centroids
예제 #4
0
def topo_compute(topo_geodata):
    return compute_topology(topo_geodata)
예제 #5
0
def topology_jan_unconf(unconformity_model):
    geo_model = unconformity_model
    edges, centroids = tp.compute_topology(geo_model, voxel_threshold=1)
    return edges, centroids
예제 #6
0
# ## Topology
# To distinguish between different conceptual models, we utilize the concept of model topology \cite{thiele_topology_2016-1}. Topological graphs of geological models are an abstract representation of model units which are in direct contact. Depending on the uniqueness of these graphs, we can categorize between different conceptual models.
#
# For instance, the aforementioned input data of two conceptual models, with or without inferred data for the PCT base, would create models with different topological graphs. While model difference can also easily be estimated via visual inspection, the use of topological graphs facilitates analysis in case of many models.
#
# As this is the case in our study, where we analyse ensembles of uncertain geological structures, topological graphs allow for efficient ensemble analysis.

# In[20]:

from gempy.assets import topology as tp

# In[21]:

edges, centroids = tp.compute_topology(geo_model,
                                       cell_number=20,
                                       direction='x',
                                       n_shift=1,
                                       voxel_threshold=5)

# In[23]:

gp.plot.plot_2d(geo_model,
                show_data=False,
                show_block=True,
                show_boundaries=False,
                show_topography=True,
                show_results=True,
                direction='x',
                cell_number=20)
gp.plot.plot_topology(geo_model, edges, centroids, direction='x')
예제 #7
0
def topology_jan_unconf(unconformity_model):
    geo_model = unconformity_model
    gp.plot.plot_2d(unconformity_model)
    plt.show()
    edges, centroids = tp.compute_topology(geo_model, voxel_threshold=1)
    return edges, centroids
예제 #8
0
# GemPy sports in-built functionality to analyze the topology of its
# models. All we need for this is our geo_data object, lithology block and
# the fault block. We input those into *gp.topology_compute* and get
# several useful outputs:
# 
# -  an adjacency graph **G**, representing the topological relationships
#    of the model
# -  the **centroids** of the all the unique topological regions in the
#    model (x,y,z coordinates of their center)
# -  a list of all the unique labels (labels_unique)
# -  two look-up-tables from the lithology id's to the node labels, and
#    vice versa
# 

# %% 
edges, centroids = tp.compute_topology(geo_model)


# %%
# The first output of the topology function is the ``set`` of edges
# representing topology relationships between unique geobodies of the
# block model. An edge is represented by a ``tuple`` of two ``int``
# geobody (or node) labels:
# 

# %% 
edges


# %%
# The second output is the centroids ``dict``, mapping the unique geobody