get_interpolator(Model, output="geological")
get_interpolator
是 gempy
的一个函数,在给定的 Model
中返回插值器对象,可以用于预测模型中未知区域的属性。
Model
: gempy.Model
类型,模型对象。output
: 可选参数,字符串类型,指定输出类型。可选值包括:"geological" (默认) 、"scalar_field" 和 "laplacian_matrix"。返回一个 gempy.Interpolator
对象。
get_interpolator()
将创建一个 gempy.Interpolator
对象,其中包含了在给定模型中执行的一些计算。 Interpolator
可以被用于预测模型中未知区域的一些属性或者进行一些优化。
确定未知区域属性的过程可以分为几个步骤:
Grid
对象,表示未知区域网格,其中包含了 x
、y
、z
坐标。Interpolator
对象的 set_prediction_grid()
方法,将未知区域网格设置为插值函数的输入。Interpolator
对象的 predict()
方法,对未知区域进行预测。预测出来的结果是一个包含未知区域属性的 DataFrame
。如果 output
参数设置为 "scalar_field",get_interpolator()
返回的插值器可以用于计算标量场。如果设置为 "laplacian_matrix",插值器可以计算与模型的物理场有关的细节。
import gempy as gp
# 定义 grid
grid = gp.Grid3D([0, 1000, 0, 1000, 0, 1000], [50, 50, 50])
# 定义 model
model = gp.Model(grid)
# 在 grid 中添加区域
model.add_surfaces([["surface_1"]])
# 添加点和区域
model.add_surface_points(X=[500], Y=[500], Z=[500], surface='surface_1')
# 给点添加属性
model.add_surface_values([1], ['surface_1'])
# 执行 interpolation
interp = gp.get_interpolator(model)
# 定义要求预测的网格范围
prediction_grid = gp.Grid3D([200, 800, 200, 800, 200, 800], [20, 20, 20])
# 将 prediction_grid 设置为插值器的输入
interp.set_prediction_grid(prediction_grid)
# 进行预测
results = interp.predict()
以上代码将预测给定区域的 surface_1
属性。