Potentiel field method (2_layers)

[1]:
import gempy as gp
import numpy as np
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt
#import os
from geometron.geometries import gdf_to_points_gdf
# Setting options
np.random.seed(1515)
pd.set_option('precision', 2)
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
/tmp/ipykernel_563/3578500329.py in <module>
----> 1 import gempy as gp
      2 import numpy as np
      3 import pandas as pd
      4 import geopandas as gpd
      5 import matplotlib.pyplot as plt

ModuleNotFoundError: No module named 'gempy'

Importation of th geopackage into a geodataframe

[2]:
gdf = gpd.read_file('../../../../data/Parties exploitées - Caillette.gpkg', layer = 'Parties exploitées - Caillette')
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/4027187940.py in <module>
----> 1 gdf = gpd.read_file('../../../../data/Parties exploitées - Caillette.gpkg', layer = 'Parties exploitées - Caillette')

NameError: name 'gpd' is not defined

Rename of the column “Couche” into “layer”

[3]:
gdf.rename({'Couche ': 'layer'}, axis=1, inplace=True)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/64150993.py in <module>
----> 1 gdf.rename({'Couche ': 'layer'}, axis=1, inplace=True)

NameError: name 'gdf' is not defined

Research and selection of the 2 main layers because others are less important and too isolated

[4]:
gdf = gdf.query('layer=="10 Paumes" or layer=="Caillette"')
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/2234924413.py in <module>
----> 1 gdf = gdf.query('layer=="10 Paumes" or layer=="Caillette"')

NameError: name 'gdf' is not defined

Creation of a rectangle which includes the points of the 2 layers

[5]:
from shapely.geometry import Polygon
aoi = Polygon([[153400, 122500], [156400, 122500], [156400, 124250], [153400, 124250], [153400, 122500]])
aoi
[5]:
../../_images/examples_basic_Potential_field_method_2_layers_9_0.svg

Clip of the rectangle on the geodataframe

[6]:
gdf = gpd.clip(gdf, aoi, True)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/3850757922.py in <module>
----> 1 gdf = gpd.clip(gdf, aoi, True)

NameError: name 'gpd' is not defined

Plot of the geodataframe

[7]:
gdf.plot(column='layer', legend=True)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/2851015274.py in <module>
----> 1 gdf.plot(column='layer', legend=True)

NameError: name 'gdf' is not defined

Creation of a geodatframe simplier than the first one with only the half of the points because it’s enough

[8]:
gdf['geometry'] = gdf['geometry'].apply(lambda geom: geom.simplify(50))
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/554374802.py in <module>
----> 1 gdf['geometry'] = gdf['geometry'].apply(lambda geom: geom.simplify(50))

NameError: name 'gdf' is not defined

Plot of the second geodataframe

[9]:
gdf.plot(column='layer')
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/2402521189.py in <module>
----> 1 gdf.plot(column='layer')

NameError: name 'gdf' is not defined

Creation of the points from the geodataframe

[10]:
gdf_points = gdf_to_points_gdf(gdf, columns=['layer'])
gdf_points.tail()
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/4019922284.py in <module>
----> 1 gdf_points = gdf_to_points_gdf(gdf, columns=['layer'])
      2 gdf_points.tail()

NameError: name 'gdf_to_points_gdf' is not defined

Conversion of the geodateframe into a csv file

[11]:
gdf.to_csv('Parties exploitées - Caillette.csv')
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/2247996368.py in <module>
----> 1 gdf.to_csv('Parties exploitées - Caillette.csv')

NameError: name 'gdf' is not defined

Creation of the model with boundaries

[12]:
geo_model = gp.create_model('Parties exploitées - Caillette')
geo_model = gp.init_data(geo_model, extent=[gdf_points.bounds.minx.min(), gdf_points.bounds.maxx.max(), gdf_points.bounds.miny.min(),  gdf_points.bounds.maxy.max(), gdf_points.geometry.z.min(), gdf_points.geometry.z.max()], resolution=[100, 100, 40])
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/1519064730.py in <module>
----> 1 geo_model = gp.create_model('Parties exploitées - Caillette')
      2 geo_model = gp.init_data(geo_model, extent=[gdf_points.bounds.minx.min(), gdf_points.bounds.maxx.max(), gdf_points.bounds.miny.min(),  gdf_points.bounds.maxy.max(), gdf_points.geometry.z.min(), gdf_points.geometry.z.max()], resolution=[100, 100, 40])

NameError: name 'gp' is not defined
[13]:
gp.set_interpolator(geo_model, theano_optimizer='fast_compile', verbose=[])
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/3918367731.py in <module>
----> 1 gp.set_interpolator(geo_model, theano_optimizer='fast_compile', verbose=[])

NameError: name 'gp' is not defined

Creation of the surfaces in the right order (from the younger to the older)

[14]:
geo_model.add_surfaces(['Caillette', '10 Paumes','basement'])
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/950895534.py in <module>
----> 1 geo_model.add_surfaces(['Caillette', '10 Paumes','basement'])

NameError: name 'geo_model' is not defined

Creation of the surfaces points passing through each point for each layer

[15]:
for idx, row in gdf_points.iterrows():
    geo_model.add_surface_points(row.geometry.x, row.geometry.y,row.geometry.z, surface=row.layer)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/897335102.py in <module>
----> 1 for idx, row in gdf_points.iterrows():
      2     geo_model.add_surface_points(row.geometry.x, row.geometry.y,row.geometry.z, surface=row.layer)

NameError: name 'gdf_points' is not defined
[16]:
geo_model.surfaces
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/974260503.py in <module>
----> 1 geo_model.surfaces

NameError: name 'geo_model' is not defined

Creation of the orientation of each points and layers

Here we don’t have enough time to find how calculate the right orientation from points and surface point so we put a vertical orientation

[17]:
for idx, row in gdf_points.iterrows():
    geo_model.add_orientations(row.geometry.x, row.geometry.y,row.geometry.z, surface=row.layer, pole_vector=(0, 0, 1))
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/3086682523.py in <module>
----> 1 for idx, row in gdf_points.iterrows():
      2     geo_model.add_orientations(row.geometry.x, row.geometry.y,row.geometry.z, surface=row.layer, pole_vector=(0, 0, 1))

NameError: name 'gdf_points' is not defined
[18]:
geo_model.orientations
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/3587606811.py in <module>
----> 1 geo_model.orientations

NameError: name 'geo_model' is not defined

Compilation of the model

[19]:
gp.compute_model(geo_model)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/1433740912.py in <module>
----> 1 gp.compute_model(geo_model)

NameError: name 'gp' is not defined

Plotting of the model

[20]:
gp.plot_2d(geo_model, cell_number=5, legend='force')

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_563/19526558.py in <module>
----> 1 gp.plot_2d(geo_model, cell_number=5, legend='force')

NameError: name 'gp' is not defined

Plot the model in 3d

gp.plot_3d(geo_model, kwargs_plot_structured_grid={'opacity': .3})

Exportation of the model in vtk format

gp._plot.export_to_vtk(geo_model, './tmp_files/Caillette-10_Paumes')