克隆SeismicCube并调整其大小

本文关键字:调整 SeismicCube 克隆 | 更新日期: 2023-09-27 18:29:23

我对海洋框架还是个新手。我有一个关于复制不同大小的SeismicCube对象的问题。我调整了立方体的K索引的大小,以便进行时间/深度重新采样。我只知道克隆一个具有完全相同属性的多维数据集。类似这样的东西:

 Template template = source.Template;
 clone = collection.CreateSeismicCube(source, template);

source是原始多维数据集,clone是结果。有没有可能找到一种方法将克隆大小调整为不同的大小?特别是索引K的大小(迹线长度)。我已经探索了CreateSeismicCube的重载方法,但仍然无法理解如何填充正确的参数。你们有解决这个问题的办法吗?提前谢谢。

克隆SeismicCube并调整其大小

当您使用从另一个地震立方体克隆的重载创建地震立方体时,您无法在任何方向(I、J或K)调整其大小。如果您希望新多维数据集有一个不同的K维度,那么您必须创建它,提供一长串参数,其中包括描述其旋转和间距的向量。可以使用最接近原始地震立方体的原点样本(0,0,0)的样本从原始立方体生成矢量。

假设您在多维数据集中有以下位置,这些位置由它们的I、J、K索引表示。由于K向量很容易生成,只需要采样率,所以我将在这里重点讨论I和J。

首先,获取原点的位置和两个相邻的轨迹。

Point3 I0J0 = inputCube.PositionAtIndex( new IndexDouble3( 0, 0, 0 ) );
Point3 I1J0 = inputCube.PositionAtIndex( new IndexDouble3( 1, 0, 0 ) );
Point3 I0J1 = inputCube.PositionAtIndex( new IndexDouble3( 0, 1, 0 ) );

现在在I和J方向上构建线段,并使用它们来创建向量。

Vector3 iVector = new Vector3( new Segment3( I0J0, I1J0 ) );
Vector3 jVector = new Vector3( new Segment3( I0J0, I0J1 ) );

现在从输入立方体采样创建K向量。请注意,您必须否定该值。

Vector3 kVector = new Vector3( 0, 0, -inputCube.SampleSpacingIJK.Z );