compute_model
是 Gempy 包中的一个函数,用于计算地质建模任务。它用来生成一组指定区域内的地层模型,并可用于将不同的地质属性(如岩层类型、压力、温度等)映射至这些模型中。
compute_model(interpolator: gempy.core.Interpolator, verbose: bool = False, **kwargs)
interpolator
: 必需参数,Gempy 中的 Interpolator
类型的实例。该实例用于定义模型区域、网格分辨率、模型边界条件、模型层数、模型中的不同地质单元及其权重等信息。verbose
: 可选参数,当值为 True
时,输出计算模型的详细信息。默认值为 False
。除此之外,本函数可接收多个可选参数,这些参数将被传递给插值器的方法以控制地质建模过程的某些细节。这些参数之间的区别和用法将在下节中详细介绍。
在计算完成后,函数将返回两个结果: computed_data
和 geo_model
。
computed_data
对象是一个包含计算后数据的字典(dictionary),其中包含了建好的地质模型的所有信息,包括网格、网格上的中点、每个中点的对应地质单元及其权重、各个单元的各个属性(如平均厚度、温度、岩相、石油储层品质等)。
geo_model
对象则是 Gempy 中的 GeoModel
类型的实例,它包含了一个完整的地质模型。该实例具有许多方法和属性,可用于控制、分析和可视化地质模型,如计算地质剖面、可视化时序、进行岩石物理建模等等。
compute_model
函数中,除了必需的插值器参数之外,还提供了一些可选的参数,用于在建模过程中控制数据的预处理、网格剖分、约束及其他一些特定的参数。具体的参数有:
rescale
: 缩放因子。如果选择启用,会变换网格的规模。implicit_kriging
: 使用隐式 kriging 方法。通过对模型中间点的层间方差建模,降低了中点约束格网上网格的大小。reset_weights
: 对网格权重进行重置。update_weights
: 更新网格权重。set_theano_shared
: 使用 Theano 来在计算中使用共享变量。如果系统安装了 Theano,这个参数有助于优化计算。solve
: 算法选择。目前支持 Linalg 和 Scipy 两种算法。n_cpu
: 设置使用的 CPU 数目,从而在并行计算中加速结果。如果数据量很大,建议启用多 CPU。timestep
: 时间步长。def_nodes
: 可以覆盖插值器中自动生成的节点。update_strati
: 更新岩层分布。max_chunksize
: 最大块大小。import gempy as gp
# 准备数据
geo_data = gp.create_data([0,2000,0,2000,-2000,0],[50,50,50],
path_o = '../input_data/simple_fault_model_orientations.csv',
path_i = '../input_data/simple_fault_model_points.csv')
# 定义插值器
interp = gp.Interpolator(geo_data, dtype="float64")
# 运行计算
_ = gp.compute_model(interp, verbose=False)
以上代码演示了如何准备地质数据、定义插值器、调用 compute_model
函数生成地质模型。