使用图层的1D速度模型的数据结构和算法



这是我正在创建的地球物理分析程序。我已经有代码可以完成所有这些,但是我正在寻找灵感和想法(好数据架构和算法(

我想建模的内容:

  • 速度作为深度(z(的函数
  • 该模型是由多层(< 10(建立的
    • 每一层都可以通过一个从最高层到n的索引,最底层的索引
  • 每个层都有速度作为深度的线性函数(梯度A_K和轴截距KTH层的B_K(
  • 每一层都有顶部和底部深度(z_k-1和z_k(
  • 模型已经完成,两层之间没有空间。两层之间的点直接属于下层

要求:

  • 在模型中以任意深度获得速度。这将以1K至10K次的顺序进行,因此应进行优化。
  • 访问图层索引的顶部和底部深度,梯度和截距

到目前为止我拥有的东西:
我有工作的python代码,其中每一层都被保存为一个具有Z_K(底部深度(,Z_K-1(顶部深度(的值的Numpy数组,A_K(速度梯度(和B_K(轴截距(。要在一定深度评估模型,我获得了层索引(,使用它来获取图层的参数并将其传递到评估线性速度梯度的函数。

因此,您具有分段线性依赖性,其中Z坐标端的末端不规则,并希望在给定的z处获得函数值。

请注意,对10件的二进制搜索没有意义(3-4轮BS可能比9个简单的比较慢(。

但是您的深度查询有什么精度?请注意,您可以存储1米分辨率和1毫米的表格 - 只有10^7个条目可提供O(1(访问任何预定的速度值

对于有限数量的零件,可以制作长度公式(涉及整数划分(,但结果也许应该较慢。

任意三件件具有边界点2和4.5的示例:

f = f0 + 0.2*int(z/2.0)*(z-2.0) + 0.03*int(z/4.5)*(z-4.5)

最新更新